Optimize collision processing

This commit is contained in:
Victor 2014-01-14 23:51:22 +02:00
parent a42acb0d59
commit 407a3b4f5b
2 changed files with 10 additions and 16 deletions

View File

@ -23,7 +23,10 @@ public class InfluenceXXII implements ApplicationListener {
enemies.setScreenParameters(width, height); enemies.setScreenParameters(width, height);
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
enemies.addEnemy(); enemies.addEnemy();
}} }
pointer.setEnemiesController(enemies);
}
@Override @Override
public void dispose() { public void dispose() {
@ -39,10 +42,6 @@ public class InfluenceXXII implements ApplicationListener {
// Draw enemies // Draw enemies
enemies.draw(renderer); enemies.draw(renderer);
// Check collide
boolean isCollide = enemies.isCollide(pointer.getX(), pointer.getY());
pointer.setMode(isCollide ? Pointer.READY : Pointer.POSITIONING);
// Draw pointer // Draw pointer
pointer.draw(renderer); pointer.draw(renderer);
} }

View File

@ -10,7 +10,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
*/ */
public class Pointer { public class Pointer {
public static final int POSITIONING = 0, READY = 1; private static final int POSITIONING = 0, READY = 1;
private boolean isAccelerometerSupports, isHardwareKeyboardSupports; private boolean isAccelerometerSupports, isHardwareKeyboardSupports;
@ -18,6 +18,8 @@ public class Pointer {
private float x, y; private float x, y;
private int mode; private int mode;
private EnemiesController enemies;
public Pointer(float width, float height) { public Pointer(float width, float height) {
x = width / 2; x = width / 2;
y = height / 2; y = height / 2;
@ -31,16 +33,8 @@ public class Pointer {
} }
} }
public float getX() { public void setEnemiesController(EnemiesController controller) {
return x; this.enemies = controller;
}
public float getY() {
return y;
}
public void setMode(int mode) {
this.mode = mode;
} }
public void setScreenParameters(float width, float height) { public void setScreenParameters(float width, float height) {
@ -56,6 +50,7 @@ public class Pointer {
public void draw(ShapeRenderer renderer) { public void draw(ShapeRenderer renderer) {
control(); control();
mode = enemies.isCollide(x, y) ? READY : POSITIONING;
DrawUtils.drawPointer(renderer, x, y, screenWidth, screenHeight, mode); DrawUtils.drawPointer(renderer, x, y, screenWidth, screenHeight, mode);
} }