2017-12-05 1 views
0

그래서 text() 함수를 통해 한 번에 하나씩 화면에 표시 할 문자열 배열이 있습니다. 그러나 인덱스에 추가 할 때 이전 배열 요소가 화면에 그대로 남아 있으며이를 제거하는 방법을 알 수 없습니다. 화면의 텍스트를 스크롤하여 다음 배열 요소를 화면에 표시합니다.이전에 표시된 배열 요소 숨기기

Dialog[] main = new Dialog[12]; 
int index; 

void setup() { 
    for (int index = 0; index < main.length; index++) { 
    main[index] = new Dialog(); 
} 

void draw() { 
    for (int index = 0; index < main.length; index++) { 
    main[index].readDialog(); 
    } 
} 

if (mousePressed) { 
    index++: 
} 

String[] textScroll = new String[12]; 


class Dialog { 
Dialog() { 
    textScroll[0] = "Welcome to the game!"; 
    textScroll[1] = "Are you ready to play?"; 
    etc... 
} 
void readDialog() { 
    text(textScroll[index], width/2, 100); 
    } 
} 
+0

질문을 편집하고 사용중인 프로그래밍 언어에 대한 태그를 추가하십시오. – Dmitry

+0

코드를 읽을 수있는 형식으로 포맷하십시오. – csmckelvey

+0

처리를 사용해야하므로 text() 함수를 사용할 때 미리 준비된 창에 표시됩니다. 그러나 그것은 화면의 이전 문자열을 대체하지 않습니다. –

답변

1

먼저 구문이 유효하지 않습니다. 중괄호가 누락되어 있고 유효하지 않은 함수 외부에 if 문이 있습니다. 연결이 끊긴 코드 스 니펫 대신 유효한 구문을 사용하여 MCVE을 게시하십시오.

일반적인 질문에 답하려면 background() 함수를 호출하여 이전 프레임을 지울 수 있습니다. 마우스가 어디에 있든

<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.6.6/processing.js"></script> 
 
<script type="application/processing"> 
 

 
void draw(){ 
 
    background(32); 
 
    ellipse(mouseX, mouseY, 20, 20); 
 
} 
 

 
</script> 
 
<canvas> </canvas>

이 첫 번째 코드는 원을 그립니다, 그리고 그것을하지 않습니다 :이 코드에

<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.6.6/processing.js"></script> 
 
<script type="application/processing"> 
 

 
void draw(){ 
 
    ellipse(mouseX, mouseY, 20, 20); 
 
} 
 

 
</script> 
 
<canvas> </canvas>

:이 코드를 비교 이전 프레임을 모두 지워 이전에 그려진 모든 원을 볼 수 있습니다. 두 번째 코드는 마우스가있는 모든 곳에 원을 그으나 가장 최근에 그려진 원만 볼 수 있도록 이전 프레임을 지 웁니다.

이전 프레임을 지우려면 비슷한 작업을 수행하고 싶습니다. 더 많은 정보는 the reference에서 찾을 수 있습니다.

0

배경색을 인자로 사용하여 background();을 원하는 색상으로 사용하십시오. 예를 들어 background(0,0,100);은 파란색 배경입니다. 이렇게하면 각 draw() 루프의 시작 부분에서 화면이 지워집니다. 그러나 프로그램 루프가 매번 draw()을 통해 화면에서 모든 것을 지우고 싶지 않다면 배경과 동일한 색상과 텍스트 상단에 rect()을 사용하면 이전 텍스트를 덮을 수 있습니다.

관련 문제