질문이요 급해요...
세여닝
게임 만들어 오기 과제인데요...
공피하기 할때 2인용을 만들었거든요???
wasd 키 1인용 방향키 2인용
근데 동시에는 안눌러져요 ...
1인용임 움직이면 2인용이 못움직이고 2인용이 움직이면 1인용이 못움직여요... 도와 주세요(턴방식 처럼)
case WM_KEYDOWN : // 방향키로 조작
switch(wParam)
{
case VK_LEFT:
x1 = x1 - 10 ;
x2 = x2 - 10 ;
if(x10)
x1=0;//바가 왼쪽 벽에서 멈춘다
x2=x1+22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_RIGHT:
x1 = x1 + 10 ;
x2 = x2 + 10 ;
if(x2cxClient)
x2=cxClient;//바가 오른쪽 벽에서 멈춘다
x1=x2-22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_UP:
y1 = y1 - 10 ;
y2 = y2 - 10 ;
if(y30)
y1=0;//바가 위쪽 벽에서 멈춘다
y2=y1+22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_DOWN:
y1 = y1 + 10 ;
y2 = y2 + 10 ;
if(y2cyClient)
y2=cyClient;//바가 아래쪽 벽에서 멈춘다
y1=y2-22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_A:
x3 = x3 - 10 ;
x4 = x4 - 10 ;
if(x30)
x3=0;//바가 왼쪽 벽에서 멈춘다
x4=x3+22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_D:
x3 = x3 + 10 ;
x4 = x4 + 10 ;
if(x4cxClient)
x4=cxClient;//바가 오른쪽 벽에서 멈춘다
x3=x4-22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_W:
y3 = y3 - 10 ;
y4 = y4 - 10 ;
if(y30)
y3=0;//바가 위쪽 벽에서 멈춘다
y4=y3+22;
InvalidateRect(hWnd, NULL,NULL);
break;
case VK_S:
y3 = y3 + 10 ;
y4 = y4 + 10 ;
if(y4cyClient)
y4=cyClient;//바가 아래쪽 벽에서 멈춘다
y3=y4-22;
InvalidateRect(hWnd, NULL,NULL);
break;
}
return 0 ;
-
빛글 2023-12-05
멀티 쓰레드 보다는 핫키를 통한 입력이 더 좋지않을까요?
-
통꽃 2023-12-05
멀티쓰레드로 한번 해보세요.