Hi Guys. Im having problems to check the collision between my missile and my enemy plane.
In java2D i have the intersect method, but it aint working correctly. Does libgdx have an intersection method?
heres the exactly part of the code that i need to fix :
for (int i = 0; i < missiles.size(); i++) {
Missile m1 = missiles.get(i);
//If is out of Screen Bound
if ((m1.posY) > screenHeight) {
missiles.remove(m1);
System.out.println("missile removed!" + m1.id);
}
missileSprite.getBoundingRectangle().setX(m1.posX);
missileSprite.getBoundingRectangle().setY(m1.posY);
//If missile hit enemyplane
for (int k = 0; k < enemyPlanes.size(); k++)
{
EnemyPlane ep1 = enemyPlanes.get(k);
enemyPlaneSprite.getBoundingRectangle().setX(ep1.getPosX());
enemyPlaneSprite.getBoundingRectangle().setY(ep1.getPosY());
/**FIX ME :D */
if(Intersector.(enemyPlaneSprite.getBoundingRectangle()))
{
gameupdate.getShooterGame().getMissile().getMissiles().remove(m1);
gameupdate.getShooterGame().getEnemyPlanes().getEnemyPlanes().remove(ep1);
System.out.println("Yay,Enemy Plane was hit!");
gameupdate.getShooterGame().addNewEnemyPlane();
}
}
}
Heres the whole method :
public void checkCollision() {
ArrayList<Missile> missiles = gameupdate.getShooterGame().getMissile().getMissiles();
Plane plane = gameupdate.getShooterGame().getPlane();
ArrayList<EnemyPlane> enemyPlanes = gameupdate.getShooterGame().getEnemyPlanes().getEnemyPlanes();
//
int screenHeight = Gdx.graphics.getHeight();
int width = Gdx.graphics.getWidth();
//
for (int i = 0; i < missiles.size(); i++) {
Missile m1 = missiles.get(i);
//If is out of Screen Bound
if ((m1.posY) > screenHeight) {
missiles.remove(m1);
System.out.println("missile removed!" + m1.id);
}
missileSprite.getBoundingRectangle().setX(m1.posX);
missileSprite.getBoundingRectangle().setY(m1.posY);
//If missile hit enemyplane
for (int k = 0; k < enemyPlanes.size(); k++)
{
EnemyPlane ep1 = enemyPlanes.get(k);
enemyPlaneSprite.getBoundingRectangle().setX(ep1.getPosX());
enemyPlaneSprite.getBoundingRectangle().setY(ep1.getPosY());
/**FIX ME :D */
if(Intersector.(enemyPlaneSprite.getBoundingRectangle()))
{
gameupdate.getShooterGame().getMissile().getMissiles().remove(m1);
gameupdate.getShooterGame().getEnemyPlanes().getEnemyPlanes().remove(ep1);
System.out.println("Yay,Enemy Plane was hit!");
gameupdate.getShooterGame().addNewEnemyPlane();
}
}
}
}
Does anyone have a light for this
And yes i did research but
http://libgdx.l33tlabs.org/docs/api/com/badlogic/gdx/math/Intersector.html#intersectRectangles(com.badlogic.gdx.math.Rectangle, com.badlogic.gdx.math.Rectangle)
static boolean intersectRectangles(Rectangle a, Rectangle b)
Returns wheter the two rectangles intersect
doesnt exists?