Hi,
bin auch gerade dabei mein erstes Space Invader Spiel zu programmieren, nur leider häng ich an der Kollisionserkennung.. also ich will das über diese Rectangles prüfen, nur irgendwie funktioniert das ganze nicht, d.h. der Schuss fliegt einfach durch den Feind durch, ohne dass irgend etwas passiert. In seltenen Fällen klappt es, aber naja...
jemand ne Idee?
die getRectangle Methoden sehen so aus:
die Kollisionsabfrage steht übrigens in der Drawmethode meiner Spiellogikklasse. Diese Methode wird bei jedem neuzeichnen des Panels aufgerufen. Exceptions kommen keine. Und grad eben is mir noch aufgefallen, dass der Sound wenn überhaupt nur 1 mal abgespielt wird. Das mit dem Zeichnen der Explosion geht auch nicht, der Gegner verschwindet einfach und das wars, aber ich denk mal das is ein anderes Problem ~~ oje
bin auch gerade dabei mein erstes Space Invader Spiel zu programmieren, nur leider häng ich an der Kollisionserkennung.. also ich will das über diese Rectangles prüfen, nur irgendwie funktioniert das ganze nicht, d.h. der Schuss fliegt einfach durch den Feind durch, ohne dass irgend etwas passiert. In seltenen Fällen klappt es, aber naja...
Code:
// Collisions
// check for every shot
for (int i = 0; i < shots.length; i++)
{
if (shots[i] != null)
{
// if there is collision with enemy
for (int j = 0; j < enemys.length; j++)
{
if (enemys[i] != null)
{
// getRectangle returns object of class java.awt.Rectangle
if (shots[i].getRectangle().intersects(enemys[i].getRectangle()))
{
shots[i].collision();
enemys[i].collision();
for (int k = 0; k < 20; k++)
{
if (explosions[k] == null)
{
explosions[k] = new Explosion(enemys[i].getXCoordinate(),
enemys[i].getYCoordinate(),
panel,
explosionImage);
explosionSound.play();
}
}
}
}
}
}
}
jemand ne Idee?
die getRectangle Methoden sehen so aus:
Code:
// class shot
public Rectangle getRectangle()
{
return new Rectangle(xCoordinate,yCoordinate,4,8);
}
die Kollisionsabfrage steht übrigens in der Drawmethode meiner Spiellogikklasse. Diese Methode wird bei jedem neuzeichnen des Panels aufgerufen. Exceptions kommen keine. Und grad eben is mir noch aufgefallen, dass der Sound wenn überhaupt nur 1 mal abgespielt wird. Das mit dem Zeichnen der Explosion geht auch nicht, der Gegner verschwindet einfach und das wars, aber ich denk mal das is ein anderes Problem ~~ oje