Erste sorry für mein schlechtes Englisch ...
Das Szenario: Ich habe Last 3 Art von Sprite
1. Spieler
2. Hindernis (Generieren Zufalls X-Koordinate)
3. Rechteck (Obstacle Kind
)Wie erkennt man kollidieren mit zufällig erzeugten Sprite AndEngine?
ich habe auto erzeugen erstellt Hindernis für jede Sekunde, Nachdem das Hindernis erzeugt wird mit der Schwerkraft nach unten fallen.
Jedes Hindernis hat Rechteck als sein Kind. Ich werde dieses Rechteck verwenden, um eine Kollision mit dem Spieler zu erkennen.
Wenn Spieler kollidieren mit diesem Rechteck muss ich die Partitur ändern, und wenn der Spieler das Hindernis treffen muss ich die Spieler
_scene.registerUpdateHandler(new TimerHandler(0.5f, true, new ITimerCallback() {
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
int _coorx = randInt(0,_constants.CAMERA_WIDTH);
// OBSTACLE
_obstacle = new Sprite(_coorx, -50, _obstacletr, getVertexBufferObjectManager());
_obstaclefd = PhysicsFactory.createFixtureDef(10.0f, 1.0f, 0.0f);
_obstaclebody = PhysicsFactory.createCircleBody(_physicsworld, _obstacle, BodyType.DynamicBody, _obstaclefd);
_physicsworld.registerPhysicsConnector(new PhysicsConnector(_obstacle, _obstaclebody, true, false));
// OBSTACLE RECTANGLE
_obstaclerectangle = new Rectangle(-_coorx, 0, _constants.CAMERA_WIDTH, 5, getVertexBufferObjectManager());
_obstaclerectangle.registerUpdateHandler(new IUpdateHandler(){
@Override
public void onUpdate(float pSecondsElapsed) {
if(_obstaclerectangle.collidesWith(_player1)) {
_obstaclerectangle.setColor(1, 0, 0);
} else {
_obstaclerectangle.setColor(0, 1, 0);
}
}
@Override
public void reset() {
// TODO Auto-generated method stub
}
});
_obstacle.attachChild(_obstaclerectangle);
_scene.attachChild(_obstacle);
}
}));
bereits gelöst .. Ich Array verwendet, um das Sprite zu speichern und alle Objekte durch Prüfen auf Array-Indizes onUpdate zu erkennen. Aber danke für deine Lösung, ich kann es für andere Probleme verwenden –