首页 > C++开发 > C++与MFC轻松实现:走迷宫小游戏(六)人物在迷宫中行走

C++与MFC轻松实现:走迷宫小游戏(六)人物在迷宫中行走

作者: 分类:C++开发 点击: 13,988 次

    前面,我们已经将迷宫布置好,人物也在入口处了。

    本节我们就来实现人物在迷宫中行走的功能。

    把前面在ONKEYDOWN里的所有代码改成下面的代码:

     

     

     

     

    CClientDC dc(this);dc.BitBlt(n*93+x,m*100+y,93,100,mdc,0,0,WHITENESS);if(nChar==VK_DOWN){y+=100;

    k=(n*93+x)/93;

    l=(m*100+y)/100;

    if(maze[l][k]==1)

    {

    y-=100;

    }

    if(dir==0)

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=0;

    }

    }

    if(nChar==VK_UP)

    {

    y-=100;

    k=(n*93+x)/93;

    l=(m*100+y)/100;

    if(maze[l][k]==1)

    {

    y+=100;

    }

    if(dir==3)

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=3;

    }

    }

    if(nChar==VK_RIGHT)

    {

    x+=93;

    k=(n*93+x)/93;

    l=(m*100+y)/100;

    if(maze[l][k]==1)

    {

    x-=93;

    }

    if(dir==2)

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=2;

    }

    }

    if(nChar==VK_LEFT)

    {

    x-=93;

    k=(n*93+x)/93;

    l=(m*100+y)/100;

    if(maze[l][k]==1)

    {

    x+=93;

    }

    if(dir==1)

    {

    index++;

    if(index==4)

    {

    index=0;

    }

    }

    else

    {

    index=0;

    dir=1;

    }

    }

    k=(n*93+x)/93;

    l=(m*100+y)/100;

    if(maze[l][k]==3)

    {

    dc.TextOut(120,350,"走出去了!");

    }

    mdc->SelectObject(bitmap[dir][index]);

    dc.BitBlt(n*93+x,m*100+y,93,100,mdc,0,0,SRCCOPY);

    这样,我们就完了人物在迷宫中行走,只要我们按下向下的键,人物就会向下走;同理,按下向上、向左、向右的键,可以达到相应的行走,并且,一旦前面是墙壁,人物就走不进去,只有在不是墙壁的地方才能达到行走的目的。到这里,整个迷宫行走游戏就全部完成。下一节,我们会对迷宫行径实现回放功能。



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

上一篇:
下一篇:

或许你会感兴趣的文章:

发表评论

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

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