首页 > C++开发 > C++与MFC轻松实现:走迷宫小游戏(四)通过键盘控制人物动

C++与MFC轻松实现:走迷宫小游戏(四)通过键盘控制人物动

作者: 分类:C++开发 点击: 9,528 次

    上节我们实现了人物动起来了,但是是人物自已在动,作为我们,却无法控制它的动向。我们玩游戏基本上都是通过键盘来控制人物的动向的。本节,我们就来实现“通过键盘来控制人物的动向”。

    第1步:在构造函数前声明2个全局变量:x和y

    第2步:右键GameWnd——>add windows message handler (添加信息处理)

    在左边的窗口中选择WM_KEYDOWN,保存,然后在其代码中添加如下代码:

    CClientDC dc(this); //获取构造函数当前的内存地址

    dc.BitBlt(x,y,93,100,mdc,0,0,WHITENESS); //用白色来隐藏人物走过的痕迹

    if(nChar==VK_DOWN) //判断键盘按下向下键

    {

    y+=20;

    if(dir==0)  //16张图片中,前4张是向下走的,dir==0时向下走

    {

    index++; //前4张从1.1.bmp不断加1,

    if(index==4)// 直到加到1.4.bmp

    {

    index=0; // 再从1.1.bmp开始

    }

    }

    else

    {

    index=0; // 从1.1.bmp开始

    dir=0; //方向向下

    }

    }if(nChar==VK_UP) //判断键盘按下向上键

    {

    y-=20;

    if(dir==3) //方向向上

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=3;

    }

    }if(nChar==VK_RIGHT)//判断键盘按下向右键

    {

    x+=20;

    if(dir==2)

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=2;

    }

    }if(nChar==VK_LEFT)//判断键盘按下向左键

    {

    x-=20;

    if(dir==1)

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=1;

    }

    }

    mdc->SelectObject(bitmap[dir][index]); //选择要控制的人物图片

    dc.BitBlt(x,y,93,100,mdc,0,0,SRCCOPY); //输出人物图片

    第3步:将OnCreate里面的SetTimer(1,100,NULL);前面加//注释掉。

    这样,我们就实现了通过键盘来控制窗口中的人物的动向,叫它向东,它决不敢向西。



文章作者:码不停蹄
本文地址:https://wanlimm.com/7720140110809.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

上一篇:
下一篇:

或许你会感兴趣的文章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.