2016-03-20 2 views
2

Этот код заставляет мяч двигаться вперед, как я могу вернуть мяч обратно?Возвращение мяча обратно в апплет

Какое выражение я могу добавить в цикл, чтобы вернуть мяч влево.

Applet Viewer

public class NewJApplet extends JApplet {  
     public void paint(Graphics g) 
     { 
      final int X=0; 
      final int Y=50; 
      final int DIAMETER=15; 
      final Color COLOR= Color.BLACK; 
      final int SPACE =5; 
      // instantiate the ball as a Circle object 
      Circle baall = new Circle(X,Y,DIAMETER,COLOR); 

// get ball diameter and width & height of the applet window 
      int ballDiam = baall.getDiameter(); 
      int windWidth= getWidth(); 
      int windHeight=getHeight(); 

// rolling horizontally 
    // check whether ball is at right edge of window 
      while(baall.getX()+ballDiam<windWidth) 
      { 
       baall.draw(g); 

       try { 
         Thread.sleep(50); 
        } catch (Exception e) { 
         System.out.println("There is an error in sleep ! "); 
       } 
// clear the window 
       g.clearRect(0, 0, windWidth, windHeight); 
// position to next location for drawing ball 
       baall.setX(baall.getX()+SPACE); 

      } 
      baall.draw(g); // draw the ball in the current position 
     } 
    } 
+0

Для лучшей помощи раньше, опубликовать [MCVE] или [Short, Self Содержится , Правильный пример] (http://www.sscce.org/). –

ответ

1

Когда мяч находится на правом краю окна, вы хотите, чтобы довести его до 0,50 я предполагаю. Просто делайте противоположные шаги, которые вы делаете, чтобы перевести их на правый край.

• Установка X координату к правому краю (старайтесь не делать X, Y, ДИАМЕТР, ЦВЕТ как окончательный) и reinstantiating Круг объект baall

X = getWidth()-15; 
baall=new Circle(X,Y,DIAMETER,COLOR); 

• Проверка мяча находится на левый край и рисунок его.

while(baall.getX()-ballDiam>0) { 
    baall.draw(g); 
    try { 
     Thread.sleep(50); } 
    catch(Exception e){ 
     System.out.println("There is an error in sleep ! "); 
    } 

• Очистка окна и позиционирования следующее местоположение

g.clearRect(0, 0, windWidth, windHeight); 
baall.setX(baall.getX()-SPACE); 
} //while 

Я предполагаю, что это будет работать нормально :)