2017-09-21 7 views
0

'e'키를 누르고 있으면 그려지는 선의 색과 크기가 변경되는 간단한 그리기 프로그램을 만들려고합니다. 그러나 keyPressed을 사용하려고하면 한 번만 실행되므로 전체 선을 변경하는 대신 파란색 점 하나가 그려집니다. 기본적으로, 제가 알아야 할 것은 키가 눌려지면 무언가를 만드는 방법입니다. 왜냐하면 오직 한 번만 프레스를 등록하기 때문입니다. 이것은 내가 지금까지 무엇을 가지고 :p5.js에서 키를 눌렀을 때 무언가를 만드는 방법

function keyTyped() { 
     if (key === 'e') { 
     if (mouseY < 417) { 
      fill(0,0,255,100); 
      ellipse(mouseX,mouseY,5,5); 
     } 
     } 
    } 

대신

function draw() { 
    if (mouseY < 417) { 
     noStroke(); 
     fill(0,100); 
     ellipse(mouseX,mouseY,20,20); 
    } 
    } 
+0

당신은 이것을 알아 냈습니까? –

+0

@Kevin Workman 결국 모든 것이 해결되어 도움을 주셔서 감사합니다. –

+0

문제 없습니다. 도움이 되었다면 허용 된 것으로 표시 할 수 있습니다. –

답변

0

당신은 그냥이처럼 draw() 함수에서 확인할 수 있습니다 :

function draw() { 
    if (keyIsPressed && key == 'e') { 
    noStroke(); 
    fill(0,100); 
    ellipse(mouseX,mouseY,20,20); 
    } 
} 

아니면 할 수 키가 눌려지고 있는지 여부를 추적하는 변수를 만듭니다. keyPressed() 함수에서 true으로 설정하고 keyReleased() 함수에서 false으로 설정하십시오. 그런 다음 draw() 함수의 변수를 확인하십시오.

자세한 내용은 the reference에서 확인할 수 있습니다.

+0

확실히 도움이 되겠지만 여전히 반투명의 검은 색 원을 그리는 중입니다. http://i66.tinypic.com/2d1n668.png - 의견이 있으십니까? –

+0

@KatK 바로이 코드가 기대하는 바입니다. 너는 무엇을 기대 했는가? 이전 프레임을 지우고 싶다면'draw()'의 맨 위에서'background()'함수를 호출해야한다. –

+0

배경을 호출하면 흔적을 남기지 않고 내 마우스를 따라 파란색 점이 생깁니다. –