2012-08-02 3 views
0

문제점 : 기본 WASD 키를 사용하여 우주선 스프라이트를 화면에서 움직이고 싶습니다. 이 작업을 완료했지만 문제는 두 개의 키 (예 : W와 D)를 누를 때 배가 예상대로 대각선으로 이동하지 않는다는 것입니다. 대신 가장 최근에 어떤 키가 눌 렸는지에 따라 이동합니다.openFrameworks : 동시에 두 개의 이벤트 키를 허용하는 방법

하나의 키를 잡고 있으면 길게 움직입니다. 2 (및 여러)에 대한 설정은 무엇입니까?

내 코드 (blueship 표시된 자명 메소드와 클래스) 미리

void testApp::keyPressed(int key) 
{ 
    if (key == 'w') 
    { 
     blueship.move_up(); 
    } 
    if (key == 's') 
    { 
     blueship.move_down(); 
    } 
    if (key == 'a') 
    { 
     blueship.move_left(); 
    } 
    if (key == 'd') 
    { 
     blueship.move_right(); 
    } 
} 

감사합니다.

답변

1

keyRelease 이벤트?

key W is pressed -> move up 
key W is release -> stop moving 
key A is pressed -> move left 
key S is pressed -> move left + move down (key A is not released,yet) 
관련 문제