wordpress CMS主题 微信
Home > C++开发 > C++与MFC轻松实现:走迷宫小游戏(六)人物在迷宫中行走

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

高时银博客 C++开发 点击: 3,312 次 0 0

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

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

把前面在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);

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


文章作者:高时银博客
本文地址:http://wanlimm.com/7720140112844.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

目前还没有评论。赶快来坐沙发吧。

发表评论