2017-11-11 14 views
1

Backstory : 처리 중 첩자 게임 만들기. 두더지를 클릭하면 머리 위로 빈 (bock)이 인쇄되고 두더지가 사라집니다. 첫 번째 클릭시 텍스트가 인쇄되지 않는 문제가 발생합니다. 필자는 텍스트의 위치와 채우기를 세 번 검사했다.처리 중 : mousePressed()의 첫 번째 활성화시에만 텍스트가 인쇄되지 않습니다.

나를 혼란스럽게하는 것은 텍스트 바로 앞에 인쇄 문을 넣으면 인쇄가 콘솔에 나타나지만 텍스트 앞에 어떤 종류의 모양을 넣어도 인쇄되지 않는다는 것입니다.

다시 말씀 드리지만이 오류는 첫 번째 클릭에서만 발생합니다.

추가 테스트 결과 keyPressed와 동일한 문제가 발생 했으므로 여기에 오류를 보여주는 매우 짧은 프로그램이 있습니다.

void setup() { 
} 

void draw() { 
    background(0); 
} 

void keyPressed() { 
    textAlign(CENTER); 
    textSize(16); 
    fill(255, 255, 0); 
    println("test"); 
    text("Test", width/2, height/2); 
} 
+0

전체 프로젝트 대신 [mcve]를 게시하면 훨씬 더 나은 행운을 얻게됩니다. 문제를 격리하려면 [프로그램 디버깅] (http://happycoding.io/tutorials/processing/debugging)이 필요합니다. 어떤 코드 줄이 예상 한 것과 다른 방식으로 작동합니까? –

+0

나는 전체 프로그램을 게시하지는 않았지만, 같은 문제가있는 비 특정 사례로 단축했습니다. – Tristan

답변

0

draw() 기능은 초당 60 번 호출 마음, 각 프레임 화면을 지우고 검정색 배경을 그리는 background() 함수를 호출하고하십시오.

사용자가 키를 누를 때만 호출되는 keyPressed() 함수와 비교하십시오. 그 안에, 당신은 화면에 텍스트를 그리는 중입니다.

문제는 draw() 함수가 즉시 호출되어 방금 그린 것만을 지 웁니다. 대신 keyPressed() 기능을 사용

, 당신은 아마이처럼 draw() 함수에서 keyPressed 변수를 사용하려면 :

void draw(){ 
    background(255, 0, 0); 

    if(keyPressed){ 
     background(0, 255, 0); 
    } 
} 

뻔뻔 자체 승진 : 나는 here 사용할 수 처리에 입력에 자습서를 썼다.

+0

문제가 모든 키를 누를 때마다 일관 적이면 background() 문제라는 것에 동의합니다. 그러나 제가 말씀 드렸듯이, 그것은 오직 첫 번째 언론에서만 일어나고 다른 언론에서는 일어나지 않습니다. – Tristan

+0

@Tristan 화면에 그려지는 텍스트를 실제로 볼 수 있도록'background()'에 대한 호출을 주석 처리 해보십시오. 그렇게하면 처음 키를 누를 때까지 텍스트를 볼 수 있습니다. –