2017-02-28 2 views
0

Ich weiß nicht, was mit diesem Code falsch ist. Das Sprite soll sich nach links bewegen, wenn es die rechte Ecke erreicht. aber dieser Code tut, wenn es (Sprite) die rechte Endecke erreicht, stoppt das Sprite einfach.Android libgdx ... Verschieben von Sprite hin und her horizontal

Die Startm ist die linke Ende Ecke, und die ENDM ist die rechte Ende Ecke

//in constructor 
position = new Vector2(ShootingTreys.WIDTH*0.48f, ShootingTreys.HEIGHT*0.025f); 

    // in update 
delta = Gdx.graphics.getDeltaTime(); 
if(ps.touch == false){ 

     if(leftEnd == false && (startM <= ballMeter.getX())){ 
      position.x = ballMeter.getX(); 
      position.x += 20 *delta; 

      if(endM == ballMeter.getX()){ 
       leftEnd =true; 
      } 
     } 
     else { 
      position.x = ballMeter.getX(); 
      position.x -= 20 *delta; 

      if(startM == ballMeter.getX()){ 
       leftEnd = false; 
      } 
     } 

     ballMeter.setPosition(position.x , ballMeter.getY()); 

Antwort

1

kleine Änderung im Code machen.

if(endM == ballMeter.getX()){ 
     leftEnd =true; 
} 

Umrechnen in

if(endM <= ballMeter.getX()){ 
     leftEnd =true; 
} 

Und

if(startM == ballMeter.getX()){ 
    leftEnd = false; 
} 

zu

if(startM >= ballMeter.getX()){ 
     leftEnd = false; 
} 
+0

Ja vielen Dank, es geht nach links, als es die rechte Ecke erreichte. Aber als es die linke Endecke erreichte, stoppt das Sprite. Wie kann ich das Sprite wieder nach rechts gehen lassen? –

+0

Ich habe Ihren Code nicht ausprobiert, vielleicht, wenn (leftEnd == false || (startM <= ballMeter.getX())) kann ersetzt werden durch if (! LeftEnd) und warum vergleichen Sie Boolean wie If (b = = true) anstatt einfach if (b) zu verwenden und für if (b == false) write if (! b). – Aryan

0

Danke

@AbhishekAryan
Verwandte Themen