2012-03-28 6 views
0

Ich möchte das Programm machen, dass, wenn der Benutzer die rechte Seite des Bildschirms bewegte Animation nach rechts und wenn links, dass auf der linken Seite. nichtBewegen Sprite in AndEngine Ohne digitalonscreencontrol

if (pSceneTouchEvent.getY() > 400) 
{ 
    AnimatedSprite _AnimSprite = new AnimatedSprite(70, 400, _TiledSprite_TR); 
_AnimSprite.registerEntityModifier(new MoveModifier(5, 70, Camera_width 
    - _AnimSprite.getWidth(), 400, 400)); 
         _AnimSprite.animate(50); 
         xPos = _TiledSprite_TR.getTexturePositionX(); 
    } 
        else 
    { 
         if ((pSceneTouchEvent.getY() < 400)&& 
    pSceneTouchEvent.getY() > 0)) 
     { 
          AnimatedSprite _AnimSprite = new 
     AnimatedSprite(70, 400, _TiledSprite_TR); 
          _AnimSprite.registerEntityModifier(new MoveModifier(5, 
      400, Camera_width - _AnimSprite.getWidth(), 70, 400)); 
          _AnimSprite.animate(50); 
          xPos = _TiledSprite_TR.getTexturePositionX();  
       } 
         else{         
       Sprite _Sprite = new Sprite(xPos, 400, _Sprite_TR); 
           MainScene.attachChild(_Sprite); 
          } 
          }   
+0

Wofür sind CAMERA_WIDTH UND CAMERA_HEIGHT eingestellt? Ich würde vorschlagen, relative Werte für Ihre Breite und Höhe in Ihren if-Anweisungen zu verwenden. – Lokiare

Antwort

0

Warum pSceneTouchEvent.getY() Hier Code arbeiten? Das ist oben/unten, nicht links/rechts. Ich denke, Sie berühren wahrscheinlich immer einen Bereich, dessen Y-Koordinate kleiner als 400 ist. Versuchen Sie, mit getX() zu ersetzen, und sehen Sie, was passiert.

+0

Das funktioniert nicht ((kann ich unsichtbare große digitale Steuerung verwenden, aber ich weiß nicht, wie ich die Steuerungsgröße ändern kann). – user1298718

0

Es sieht für mich so aus, als würden Sie jedes Mal, wenn der Bildschirm berührt wird, ein neues Sprite erzeugen. Dies ist wahrscheinlich nicht das, was Sie tun möchten. Ich würde vorschlagen, dass Sie Ihre Hauptklasse erweitern (normalerweise Ihre BaseGameActivity oder ähnliche Aktivität), um den IOnSceneTouchListener zu verwenden, so dass Sie sowohl auf die Berührungsdaten zugreifen als auch auf Ihre animierten Sprites zugreifen können, anstatt einen neuen IOnSceneTouchListener zu erstellen Ihrer animierten Sprites.

public class Game extends BaseGameActivity implements IOnSceneTouchListener 
{ 
     private AnimatedSprite animatedSprite; 
     @Override 
    public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) 
    { 
     // Access your animated sprites here and make them move based on the touch data 
     return true; 
    } 
} 

Etwas in diese Richtung.