수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

GetKeyState에 대해 질문이요..

가이

2023.12.12



어설픈 겜 하나를 만들고 있는데 그냥 물체가 방향키로 입력받고 스페이스로 점프를 하는 내용이에요..하다보니까 문제가 키가 동시 입력이 안 받아진다는 거에요 ㅠㅠ찾아보니까 키를 동시입력 받게 해주는 GetKeyState 혹은 AsyncKeyState 가 있더라구요..저는 현재 방향키를 누르면서 스페이스를 누르면 예를 들면 앞으로 가는 키보드 ↑를 누르면서 스페이스 누르면 점프하면서 앞으로 가도록 하고 싶은데현재 동시입력이 안 받아지니까 ↑ 누르다가 스페이스 입력하면 제자리에 딱 멈춰서 점프를 해요그리고 스페이스 한번 입력받고 나면 계속 그 자리에멈춰있고..ㅠ (방향키 다시 뗐다가 누르기 전까지 그대로)어떤 식으로 하면 해결할 수 있을까요?일단 인터넷에서 보고 흉내는 내봤는데 하나도 안되네요 아래 코드입니다;GLvoid Keyboard(unsigned char key, int x,int y)
{if(GetAsyncKeyState(VK_SPACE) & 0x8000)
{
jump_command=1; //스페이스를 눌렀을시 전역변수 jump_command=0이 1로 바뀌어서 점프를 하게 함
}
glutPostRedisplay();
}void SpecialKeyboard(int key, int x, int y)
{
if(GetAsyncKeyState(VK_UP) & 0x8000) //앞으로
{
object_move_z=object_move_z-object_move1;
printf(현재 z 좌표값 = %f \n, object_move_z);
}if(GetAsyncKeyState(VK_LEFT) & 0x8000) //왼쪽으로
{
object_move_x=object_move_x-object_move3;
printf(현재 x 좌표값 = %f \n, object_move_x);

}
if(GetAsyncKeyState(VK_RIGHT) & 0x8000) //오른쪽으로
{
object_move_x=object_move_x+object_move3;
printf(현재 x 좌표값 = %f \n, object_move_x);
}glutPostRedisplay();
}void TimerFunction (int value) //이 함수가 점프를 하게 하는 함수입니다
{
if(jump_command==1) //스페이스를 눌러스 1로 바뀌었을시
{
if(!op)
{
if(object_move_y80) //y축 높이가 80이하일시 위로점프하게 함
{
object_move2=10.0f;
}

else if(object_move_y80) //y축 높이가 80을 넘으면 다시 아래로 내려오게 함
{
op=1;
object_move2=-10.0f;

}
}object_move_y=object_move_y+object_move2; //이 식이 점프하고 내려오는 식
if(object_move_y==0)
{
op=0;
jump_command=0;
}
}
glutPostRedisplay();
glutTimerFunc(100, TimerFunction, 1);
}지금 해보니까 방향키 값(방향키 값 안에다가 식을 넣은 형태)들은 동시 입력이 되네요대각선으로 움직여집니다만점프키는 안에 식을 넣은게 아니라 단순히 if문을 바꾸는 형태라 그런지 안 먹히네요;;

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 라임나무 2023-12-12

    점프하는 부분에서... 값을 입력 받은후에 바로 검사를 해야 점프 할거같은데요..?
    jumpcommand가 1로 바뀌는 if문 다음에 바로 TimerFunction을 선언해주셔야 하고
    그리고 매개변수를 선언했는데 사용하지 않는것같은데..
    value라는 매개변수를 없애던지.. 아니면 jumpcommand를 매개변수로 받아서 value값을 사용하시는게 맞을거 같고 점프 도중이동이 필요하다면... getasynkeystate 를 점프하는곳에 선언하셔서..

  • 활력초 2023-12-12

    감사합니다! 소스 더 붙였습니다
    지금 방향키들끼리는 동시입력이 됩니다 오른쪽, 앞쪽 누르면 오른쪽 대각선으로 움직이는데..
    점프는 여전히 반응이 없네요..
    추측컨데 방향키 값들은 각 if문 안에 object_move_x=object_move_x+object_move3;
    이런 식들을 포함하고 있어서 동작하는 것 같고
    jump 키는 단순히 jump_command=1; 이거 뿐이여서 동작을 안 하는 것 같은데..

  • 어둠 2023-12-12

    점프하는 소스를 보여주세요 뭔가 for문으로이루어 져있는건지... 아니면 저 점프 커멘드라는 변수 하나만으로 점프를 하는건지.. 함수가 또 있는건지... 단지 위에있는 소스만으로는 대답해드릴수있는게 한정되어있기때문에 소스를 더 공개해주셔야할거같네요..

  • 똘끼 2023-12-12

    다중 if문을 이용하면 스페이스바 클릭이 동작할때 다시 getAsyncKeyState를 써서 앞으로누르면 앞으로 가고 뒤로 누르면 뒤로 가는 방식으로 하면되지않을까요??

번호 제 목 글쓴이 날짜
2694582 IE & 파이어폭스 (2) 흙이랑 2025-05-12
2694553 무비클립안의 duplicate 발동이 안돼네요; 딥보라 2025-05-12
2694523 자바 애플릿 질문좀 ^^ (6) 동이 2025-05-12
2694494 [질문] JAVA 또는 C++ 로 프로그램 개발시.. 레지스터리 등록 관련 의문점? (3) 우람늘 2025-05-11
2694469 익스6에서 css버그 나오는것 해결방법좀요 !!!! (6) 원술 2025-05-11
2694442 로컬에선 잘 나오는데 운영에 반영하면 이상하게 나와요. (8) 목화 2025-05-11
2694412 [질문] 이미지 로딩후 사이즈 조절할때 (1) 아담 2025-05-11
2694391 설치형 블로그 쓰시는 분들 어떤거 쓰세요?? (7) AngelsTears 2025-05-10
2694362 Microsoft SQL Server에서 서버만드는법 어둠 2025-05-10
2694333 for문으로 돌린 이름의 제어 (4) 레이 2025-05-10
2694308 이미지 css 도와주세요 ㅠㅠ (2) 애기 2025-05-10
2694223 [급질문]스크롤스파이의 offset값 진나 2025-05-09
2694195 li에 이미지 넣고 세로로 메뉴 구성하는 경우 (1) 예님 2025-05-09
2694167 canvas 질문요. (4) 찬늘봄 2025-05-08
2694136 왜 이렇게 나오는지 이해가 잘 가지 않네요. 부탁드리겠습니다... (2) 세련 2025-05-08
2694111 div , css 공부하고있는데요 잘모르겠어요.. 도와주세요 ㅠ_ㅠ (10) 모람 2025-05-08
2694035 작업관리자 창에.. CPU사용 현황처럼 만들고 싶습니다. (1) 다올 2025-05-07
2694004 Linux에서 java사용 (2) 한빛 2025-05-07
2693978 CS5.5 베타 버젼이라도 다운받을 수 있는 사이트 아세요? (4) 콩순 2025-05-07
2693922 프로그램 시간을 측정하는 클래스나 매써드.. (3) 꽃짱구 2025-05-06
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com