-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial JPlay Colisões
Lucas S edited this page Apr 28, 2018
·
1 revision
Para descobrir se um objeto colidiu com outro você pode usar o método que está presente em todas as classes.
//Retorna true se houve colisão, ao contrário, retorna false.
public boolean collided(GameObject);
Também se pode verificar se houve uma colisão usando a classe estática Collision, com o método
boolean collided(GameObject obj1, GameObject obj2);
Exemplo:
if( Collision.collided(barcoAmarelo, barcoVermelho) == true)
imprime("colidiram");
A classe Collision pode ser usada para verificar colisão entre quaisquer um dos objetos: GameObject, GameImage, Animation, Sprite.
Exemplo: Verificando colisões entre objetos.
package Colisao001;
import jplay.Animation;
import jplay.GameImage;
import jplay.Window;
import jplay.Sprite;
/**
* @author Gefersom Cardoso Lima
* Federal Fluminense University
* Computer Science
*/
public class Colisao001
{
//At the time the bird colliding with the rock it explodes
public static void main(String[] args)
{
Window janela = new Window(800,600);
GameImage pedra = new GameImage("pedra.png");
pedra.x = 396;
pedra.y = 63;
GameImage ceu = new GameImage("ceu.png");
Sprite passaro = new Sprite("passaro.png", 3);
passaro.setTotalDuration(360);
Animation explosao = new Animation("explosao.png",20);
explosao.setTotalDuration(1400);
explosao.setLoop(false);//The animation will run only once.
passaro.x = 100;
passaro.y = 460;
boolean colidiu = false;
while(true)
{
ceu.draw();
pedra.draw();
if (colidiu == false)
{
passaro.draw();
passaro.update();
passaro.moveTo(600, passaro.y, 0.8);
if (passaro.collided(pedra))
{
colidiu = true;
System.out.println(explosao.width);
explosao.x = passaro.x - 70;
explosao.y = passaro.y - 50;
}
}
else
{
explosao.update();
explosao.draw();
}
if (explosao.isPlaying() == false && colidiu == true)
explosao.hide();
janela.update();
janela.delay(10);
}
}
}
UFF - Universidade Federal Fluminense - Institudo de Computação - Ciência da Computação
FGA - The Endless Game