设为首页 加入收藏

TOP

(Visual C++)游戏开发笔记之十二:游戏输入消息处理(一)键盘消息处理 (四)
2014-11-23 20:17:27 来源: 作者: 【 】 浏览:138
Tags:Visual 游戏 开发 笔记 十二 输入 消息 处理 键盘

break;
case 1:
w = 53;
h = 77;
break;
case 2:
w = 60;
h = 74;
break;
case 3:
w = 60;
h = 74;
break;
}
//按照目前的X,Y的值在mdc上进行透明贴图,然后显示在窗口画面上
BitBlt(mdc,x,y,w,h,bufdc,num*w,h,SRCAND);
BitBlt(mdc,x,y,w,h,bufdc,num*w,0,SRCPAINT);

BitBlt(hdc,0,0,640,480,mdc,0,0,SRCCOPY);

tPre = GetTickCount(); //记录此次绘图时间

num++;
if(num == 8)
num = 0;

}

//****消息处理函数***********************************
// 1.按下【Esc】键结束程序
// 2.按下方向键重设贴图坐标
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_KEYDOWN: //按下键盘消息
//判断按键的虚拟键码
switch (wParam)
{
case VK_ESCAPE: //按下【Esc】键
PostQuitMessage( 0 ); //结束程序
break;
case VK_UP: //按下【↑】键
//先按照目前的移动方向来进行贴图坐标修正,并加入人物往上移动的量(每次按下一次按键移动10个单位),来决定人物贴图坐标的X与Y值,接着判断坐标是否超出窗口区域,若有则再次修正
switch(dir)
{
case 0:
y -= 10;
break;
case 1:
x -= 1;
y -= 8;
break;
case 2:
x += 2;
y -= 10;
break;
case 3:
x += 2;
y -= 10;
break;
}
if(y < 0)
y = 0;
dir = 0;
break;
case VK_DOWN: //按下【↓】键
switch(dir)
{
case 0:
x += 1;
y += 8;
break;
case 1:
y += 10;
break;
case 2:
x += 3;
y += 6;
break;
case 3:
x += 3;
y += 6;
break;
}

if(y > 375)
y = 375;
dir = 1;
break;
case VK_LEFT: //按下【←】键
switch(dir)
{
case 0:
x -= 12;
break;
case 1:
x -= 13;
y += 4;
break;
case 2:
x -= 10;
break;
case 3:
x -= 10;
break;
}
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇(Visual C++)游戏开发笔记之十.. 下一篇(Visual C++)游戏开发笔记十三..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: