2013-02-12 6 views
0

J'ai personnalisé BoundCamera et ont overrided la méthode de mise à jour comme:AndEngine entité BoundCamera ne chassez pas dans le bon sens

@Override 
public void onUpdate(float pSecondsElapsed) { 
    // TODO Auto-generated method stub 
    super.onUpdate(pSecondsElapsed); 
    if(chaseEntity != null) { 

     tempHeight = (chaseEntity.getY() * PIXEL_TO_METER_RATIO_DEFAULT) + PlayLevelActivity.CAMERA_HEIGHT/2; 

     if(tempHeight < heightCovered) { 
      setBounds(0, 0, PlayLevelActivity.CAMERA_WIDTH, tempHeight); 

      heightCovered = tempHeight; 
     } 
    } 

} 

et ont initialisé l'appareil photo comme:

mCamera = new MyBoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT, 0, CAMERA_WIDTH, 0, CAMERA_HEIGHT); 

Je veux garder l'entité chase au centre tout le temps. Maintenant, le problème auquel je suis confronté est qu'au début, la caméra poursuit l'entité. Lorsque l'entité va de plus en plus haut, elle dépasse les limites de l'écran dans la direction y. Je mets à jour les limites de la caméra dans la méthode de mise à jour pour garder l'entité toujours au centre mais ne fonctionne pas. Le chaseEntity.getY() obtient la position du corps physique y. Est-ce que quelqu'un sait où je vais mal?

+0

AndEngine dispose déjà d'une fonction fournissant la fonctionnalité requise. Cela fait un moment mais je crois que c'est quelque chose comme: * this.mBoundChaseCamera.setChaseEntity (Sptite); * – Tobrun

+0

J'ai déjà défini l'entité de poursuite. –

+0

puis la caméra que vous suivez l'entité sans que vous ayez à mettre à jour l'appareil photo manuellement? – Tobrun

Répondre

0

Si vous utilisez

this.mBoundChaseCamera.setChaseEntity(Sptite); 
setBoundsEnabled(false); 

alors le sprite sera toujours au centre de l'écran tout le temps. L'inconvénient est que le sprite peut aller au-delà des limites. Vous devrez implémenter votre propre méthode pour garder le sprite dans les limites.

Dans les commentaires, vous avez mentionné qu'à un certain moment, vous voulez que l'image-objet tombe, mais ne voulez pas qu'elle reste au centre pendant qu'elle tombe. Vous pouvez simplement utiliser

this.mBoundChaseCamera.setChaseEntity(null); 

puis de déposer l'image-objet en bas de l'écran. Cela devrait fournir un effet similaire au saut de papi.

Questions connexes