2017-05-15 4 views
-3
void setup() { 
    size(800,600); 
    smooth(); 
} 
void draw() { 
int circlex = 0; 
int circley = 0; 
while(true){ 
    ellipse(circlex,circley,50,50); 
    circlex = circlex + 2; 
    circley = circley + 1; 
} 
} 

저는 Java에 매우 익숙하며 배경이 보이고 아무 것도 나타나지 않는 이유를 알고 싶습니다.무효 상태에서이 문제를 어떻게 해결할 수 있습니까?

+0

이 처리 중이십니까? –

+3

* 배경에 왜이 배경 만 표시되어 있는지 * 코드의 배경이 보이지 않습니다 ... 'while (true) {'Swing을 사용하고 있습니까? 그것은 EDT를 막고 GUI를 영원히 멈추게 할 것입니다. 그러나 더 나은, 올바른 [mcve]를 게시하고 수행 할 코드는 무엇입니까? – Frakcool

+0

은 아마도 그려지는 타원의 채우기 및 선 색상을 설정해야합니다. 현재의 색은 배경색과 동일하고 추측에 불과합니다. 이 https://processing.org/reference/fill_.html을 시도해보십시오. –

답변

1

무한 while 루프가 렌더링을 차단하므로 스케치가 프레임 렌더링을 완료하지 않습니다. draw() 함수는 초당 여러 번 호출됩니다. 즉 무한 루프로 사용하십시오.

로컬 변수를 코드 상단으로 이동하여 처리 스케치를 통해 볼 수 있도록하십시오. 이렇게하면 항상 값을 0으로 다시 설정하지 않고 위치 증분을 취소하지 않습니다.

int circlex = 0; 
int circley = 0; 

void setup() { 
    size(800, 600); 
    smooth(); 
} 
void draw() { 


    ellipse(circlex, circley, 50, 50); 
    circlex = circlex + 2; 
    circley = circley + 1; 
} 
+0

이전에 그렇게했을 때 오류가 발생했지만 지금은 제대로 작동합니다. 기묘한. – WhyIsCode