Como faço para contar quantas vezes houve colisao!

9 respostas
L

Bom galera como todo bom brasileiro deixei p a ultima hora!

Tenho que terminar um trabalho de java para entregar hoje!

É o seguinte o professor quer um jogo!

Meu jogo esta com 2 personagens que ao colidirem em um objeto, aparece uma pergunta.

Gostaria de saber como faço para contar quantas vezes cada personagem colidiu com o objeto, e como faço para identificar quem esta colidindo, para atribuir os pontos para o personagem certo!!!

Se puderem me ajudar!!! estarei olhando o forum a cada meia hora! se for preciso passo o codigo!!!

Uso o JCreator

Classe principal

import java.awt.Color;
import java.util.Random;

public class DoisMacacos extends GameBaseUI {

	public static FixedText saldoAtual1;
	public static FixedText saldoAtual2;

	public DoisMacacos(int width, int height) {
		super(width, height);
		
		Macaco macaco2 = new Macaco(60, 100);
		macaco2.setKeySet(new GameControlWASDSet());
		add(macaco2);

		add(new Macaco(0, 100));
	
		saldoAtual1 = new FixedText(10, 10);
		saldoAtual1.setForeground(Color.BLACK);
		saldoAtual1.setText("Jogador 1:");
		
		saldoAtual2 = new FixedText(350, 10);
		saldoAtual2.setForeground(Color.BLACK);
		saldoAtual2.setText("Jogador 2:");
		
		
		GamePainel painel = new GamePainel(0, 0, 640, 40);
		painel.setAlpha(25);
		painel.setColor(Color.BLUE);
		add(painel);

		add(saldoAtual1);
		add(saldoAtual2);
		
		
		
		Random r = new Random();

		for (int i = 0; i < 10; i++) {
			int x = r.nextInt(width - macaco2.getWidth() - 100);
			int y = r.nextInt(height - macaco2.getHeight() - 100);
			int valor = r.nextInt();
			add(new Coracao(x + 100, y + 100, valor));
		}
		
	}

	public static void main(String[] args) {
		DoisMacacos g = new DoisMacacos(640, 480);
		g.show();
	}

}

classe do bjeto de colisao:

import java.text.DecimalFormat;

public class Coracao extends GameChar {

	private double valor;

	public Coracao(int x, int y, double valor) {
		super("images/coracao.png", x, y, 32, 32);
		this.valor = valor;
	}

	public boolean colideTo(GameChar movable) {
		message("AKI ENTRA A PERGUNTA!");
		
		getParent().remove(this);
		return false;
	}

}

Se precisar de mais alguma coisa é so falar!

Abraço a todos!!!

9 Respostas

maquiavelbona

Bom dia,

Com esse título, sua chance de ter ajuda tende a menos infinito, boa sorte.

Ainda bem que agora sou espanhol.

luga214:

Tenho que terminar um trabalho de java para entregar hoje!

É o seguinte o professor quer um jogo!

Meu jogo esta com 2 personagens que ao colidirem em um objeto, aparece uma pergunta.

Gostaria de saber como faço para contar quantas vezes cada personagem colidiu com o objeto, e como faço para identificar quem esta colidindo, para atribuir os pontos para o personagem certo!!!

Se puderem me ajudar!!! estarei olhando o forum a cada meia hora! se for preciso passo o codigo!!!

Abraço a todos!!!


Estás fazendo isso utilizando o que? Quer que adivinhemos seu código fonte? Quando fores mais objetivo e menos “apelão”, mais gente vai te ajudar.

Até!

Rafael_Nunes

BTW, apaguei os outros dois tópicos duplicados.

E especifique qual a sua dúvida e qual parte do código está tendo dificuldade.

Marck

Mas isso é fácil:

if(colisao == true){

   qtde_colisao++;
}

:wink:

LPJava

maquiavelbona uhau vc nao deixa passar uma ne? pegou pesado um pouco… mais… se ele colocar o codigo fonte… e dizer aonde ta com duvida… ele poderia obter sucesso… no help dele… agora… tentar advinhar como ele ta implementando o codigo… ou fazer pra ele uhauha… ai ta dificil…
Mas vou ser bonzinho veja aqui a resposta… nao se acostuma… viu

L

Marck:
Mas isso é fácil:

if(colisao == true){

   qtde_colisao++;
}

:wink:

Po valew cara!!! mas onde que vai entrar isso :slight_smile: :-o??? :?:

zirocool

luga214:
Marck:
Mas isso é fácil:

if(colisao == true){

   qtde_colisao++;
}

:wink:

Po valew cara!!! mas onde que vai entrar isso :slight_smile: :-o??? :?:

Tu tah fazendo o eskema de colisão por coordenadas? Algo do tipo, tu tá controlando onde o objeto tá por algum tipo de posicionamento, por coordenadas??
Aih tu faz o seguinte, se o carinha tiver na
(9,6) e o objeto na (9,5), ou na (8,6) na (7,6), usando um sistema de coordenadas x,y, houve colisão… :smiley:

Mas o código tu pode enfiar onde quiser… até no… HUAhuhaua

andreiribas

cara acho mais fácil você usar a classe Rectangle2D pra testar as colisões, faz cada objeto ter um rectangle e por ese rectangle você testa se colidiram.

Por exemplo, no método main(), você faz um while(true) e primeiro testa a input, depois testa se houve colisão, então você “pinta” a tela. essa é a lógica super básica de um jogo.

L

po para os que tentaram me ajudar vlw… mas desisti n to conseguindo!!! obrigado assim mesmo!

W

bom parace que vc ta usando uma engine de um jogo , ai tem que ver como ele trabalha a colisão , poderia fazer como o amigo acima citou, usar o Rectangle2D , se não me engano ele tem um metodo intersect ( colidiu ) , a ideia e que o retangulo seja do tamanho do objeto ( desenhado ).

Criado 27 de junho de 2007
Ultima resposta 28 de jun. de 2007
Respostas 9
Participantes 8