2016-07-19 8 views
-1

kann jemand mich erleuchten.Problem beim Verschieben eines Objekts über den Bildschirm

Ich mache ein Spiel, wo ein Ball automatisch erstellt werden muss und über den Bildschirm von einer Ecke zur anderen bewegen.

Ich konnte Bälle erstellen und sie von der unteren rechten Ecke nach oben links und umgekehrt bewegen, aber ich kann nicht herausfinden, wie man es von der unteren linken Ecke nach oben rechts macht.

Beigefügt ist ein Teil des Codes und eine Grafik meiner Logik. Logic of how the balls will move

case 1: // From one side to the other, in two axes 

     switch (subScenario) { 
     case 0: // Bottom right corner to top left corner. 
      posX = panelWidth; 
      posY = panelHeight; 
      directionX = (rnd.nextInt(2) + 1)*-1; 
      directionY = directionX; 
     case 1: // Top left corner to bottom right 
      posX = 0; 
      posY = 0; 
      directionX = (rnd.nextInt(2) + 1)*1; 
      directionY = directionX; 
     case 2: // Bottom left corner to top right corner 
      posX = 0; 
      posY = panelHeight; 
      directionX = directionY; 
      directionY = (rnd.nextInt(2) + 1)*-1; 
     } 
     break; 
    } 
+0

Also wo ist der Fehler? –

+0

Versuchen Sie, RichtungX und RichtungY Linien in Fall 2 zu wechseln – 17slim

+0

Vergiss meinen letzten Kommentar, dachte nicht für eine Sekunde dort. Setze 'directionX = (rnd.nextInt (2) + 1) * 1' und verlasse' directionY', wie es – 17slim

Antwort

1

Wenn Sie nach rechts wollen, um nach links, wie in case 2, directionX muss positiv sein. Deshalb:

directionX = (rnd.nextInt(2) + 1)*1; 

directionY negativ sein sollte, so:

directionY = directionX*-1; 

Denken Sie auch daran break nach jedem case zu setzen, so dass sie alle nicht aktivieren.

+0

arghh, danke :) – Aaron

Verwandte Themen