2013-02-27 2 views
0

PShape의 색상과 불투명도를 변경하는 코드가 있습니다. 디버깅 중이 었으며 모든 메서드가 제대로 작동하는지 99 % 확신합니다. 프로세싱에는 내장 된 지연 방법이 더 이상 없으므로 지연 메소드를 만들었습니다. 내가 디버깅 할 때 모든 딜레이 호출이 끝난 후에 (지연이 더 이상 없을 때 PShape의 최신 버전을 그릴 것임) 완료된 후에 만 ​​예상했던 것만 그리는 것으로 나타났습니다. 그래서 나는 나의 지연 방법을 보았고 나는 그것으로 혼란 스러웠지 만 여전히 정확한 결과는 없다. 누군가 PShape가 업데이트되지 않는 이유를 설명해 줄 수 있습니까?draw() 메서드가 작동하지 않습니다.

EDIT * noLoop()을 사용하라는 답변을 받았지만이를 사용하는 방법을 찾았지만 정확한 위치를 찾을 수없는 것 같습니다. 나는 설정에서, 플래시 방법의 첫 번째 라인을 시도했다 (그러나 나는 업데이트되지 않은 라이브 버튼을 깨달았다)

그 아래의 코드는 PShape의 플래시를 두 번합니다 :

noLoop();  
root.setVal(newVal); 
root.highlight(0,255,0); 
root.setopacity(200); 
redraw(); 
try {Thread.sleep((long)1500);} 
catch (InterruptedException ex) {println("Error!");} 
root.setopacity(0); 
redraw(); 
try {Thread.sleep((long)1500);} 
catch (InterruptedException ex) {println("Error!");} 
root.setopacity(200); 
root.clearHL();//just to make sure I repeated these methods 
root.highlight(0,255,0); 
redraw(); 
try {Thread.sleep((long)1500);} 
catch (InterruptedException ex) {println("Error!");} 
root.clearHL(); 
redraw(); 
loop(); 
return root; 

답변

0

더 많은 코드 (예 : setup 함수),
을 표시해야하지만 수동으로 객체를 다시 그리기 전에 noLoop();을 호출하지 않았을 수 있다는 사실 때문에 문제가 발생하는 것으로 보입니다.

이렇게하면 Processings 자동 다시 그리기로 덮어 쓰기 전에 개체가 프레임에 대해 깜박입니다.

지연을 원하는 경우 Timer을 사용할 수 있습니다.

또는 사용 Sleep :

import java.lang.Thread.*; 

noLoop(); 
root.setVal(newVal); 
root.highlight(0,255,0); 
root.setopacity(200); 
redraw(); 
Thread.sleep(1500);; 
root.setopacity(0); 
redraw(); 
Thread.sleep(1500); 
root.setopacity(200); 
root.clearHL();//just to make sure I repeated these methods 
root.highlight(0,255,0); 
redraw(); 
Thread.sleep(1500); 
root.clearHL(); 
redraw(); 
+0

그래서 난 그냥) (noLoop을 넣어한다 모든 redraw() 함수와 호출 루프()가 끝난 직전에? – Runeony1

+0

@ Runeony1 아니요,'noloop'을 실행하면 모든 사용자 지정 그리기를 지우고 싶지 않으면 다시 루프를 실행하면 안됩니다. – Serdalis

+0

괜찮 았어, 그 방법의 첫 번째 줄에 noLoop()을 넣고 아무 곳에서나 loop() 또는 noLoop()을 호출하면 ... 작동하지 않는다 – Runeony1

관련 문제