2012-12-10 2 views
2

안녕하세요 BlueJ ..에서 스크린 세이버를하고 있습니다. 그리고 나는 몇 개의 원을 만들었지 만, 새로운 원이 무작위로 생성되도록 루프를 만들어야합니다. 어떻게해야할지 모르겠지만 ... 이것이 얼마나 많은지입니다. 끝난.서클을 사용하여 스크린 세이버 만들기 .. 서클을 만들면서 새로운 서클을 만들려면 어떻게해야합니까?

public class ScreenSaver 
    { 
    // instance variables - replace the example below with your own 
    private Circle a; 
    private Circle b; 
    private Circle c; 
    private Circle d; 

    /** 
    * Constructor for objects of class ScreenSaver 
    */ 
    public ScreenSaver() 
     { 
     // initialise instance variables 
     //x = 0; 
     } 
    public void draw() 
     { 
     a = new Circle(); 
     a.moveVertical(70); 
     a.changeSize(70); 
     a.slowMoveVertical(-100); 
     a.makeVisible(); 

     b= new Circle(); 
     b.changeColor("red"); 
     b.moveHorizontal(30); 
     b.makeVisible(); 
     b.slowMoveVertical(-100); 
     b.slowMoveVertical(100); 

     } 

새로운 원이 무작위로 생성되도록 루프를 만들려면 어떻게해야합니까?

+0

우선 bluej를 사용해야합니다. 왜 몇 가지 시도해 보지 않으시겠습니까? 그렇다면 아직도 CS 실습실에 가야합니다. – aglassman

+0

* "나는 스크린 세이버를하고있다"* SaverBeans (Java 스크린 세이버 API)에 대해 7 년 늦었다. –

+0

여러 개의 타원을 만들려면 [이 답변] (http://stackoverflow.com/questions/13795236/get-mouse-detection-with-a-dynamic-shape/13796268#13796268)을 참조하십시오. –

답변

0

나는 "지금 당장 가지고있는 것과 가장 가까운 것"만을 근거로 대답하려고 노력할 것입니다. 그리고 이것은 무언가 일어날 때까지 while 루프에 코드 draw()을 넣는 것이 될 것입니다.

는 원 임의의 장소에서, 당신은 단지 while 루프 전에 new java.util.Random()을 만들 수 있고 의사 임의의 정수를 얻을 원하는 범위로 강제로 모든 반복에서의 nextInt(int) 메소드를 호출 보이게합니다. 랜덤

0

사용 클래스 :

Random random = new Random(); 
int x = random.nextInt(screenWith); 
int y = random.nextInt(screenyheight); 
int radius = minradius + random.nextInt(50); 
0

나는 이런 식으로 루프에 대한지지합니다 :

while(true) 
{ 
    //code goes here 
    if (<something happens>) 
    { 
     break; 
    } 
} 

이것이 수행하는 것은 iftrue 온다 때 루프를 영원히가는 다음 나누기 유지하다 . 당신은 waitForClick() 방법 또는 그 라인을 따라 무엇인가 가지고 있습니다. 또한 랜덤 포인트에 Random 클래스를 사용하는 것이 명시되어 있습니다. 그냥 내 제안!

이 도움이 되길 바랍니다. :)