千家信息网

如何利用c++实现推箱子小游戏

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍如何利用c++实现推箱子小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果图相信各位都肯定完整这种推箱子的小游戏。游戏玩法很简单,那就是一个人把所有的箱子
千家信息网最后更新 2024年11月23日如何利用c++实现推箱子小游戏

这篇文章主要介绍如何利用c++实现推箱子小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

效果图

相信各位都肯定完整这种推箱子的小游戏。游戏玩法很简单,那就是一个人把所有的箱子推动到对应的位置那就可以赢了。

那么我们接下来看看这个推箱子的游戏改怎么写

char map[10][10]=        {                {'#','#','#','#','#','#','#','#','#','#'},                {'#','#','#','#',' ',' ','!',' ',' ','#'},                {'#',' ',' ',' ',' ','o',' ',' ',' ','#'},                {'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},                {'#','#',' ','#','#','#',' ','#','#','#'},                {'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},                {'#',' ',' ',' ',' ',' ',' ',' ',' ','#'},                {'#','#',' ','#',' ','#','#','#','#','#'},                {'#','#',' ',' ',' ',' ',' ','x','#','#'},                {'#','#','#','#','#','#','#','#','#','#'}        };        void DrawMap(){                for(int i=0;i<=9;i++){                        for(int j=0;j<=9;j++){                                cout<

首先先画出地图,这里面的#是墙壁,x是终点,o是推动的箱子,然后!是人,空的字符就是通道。别看界面比较简陋,我们学的是算法,只要思想学会了,随便移植到哪个有界面的程序都是可以的。

int r,l;              //人的下标                 for(int i=0;i<=9;i++){                        for(int j=0;j<=9;j++){                                if(map[i][j]=='!'){                                        r=i;          //r,l相当于地图的宽度和长度                                         l=j;                                }                        }                 }

在一开始我们需要遍历,并且获取人的坐标。

cout<<"please enter w(up) s(down) a(left) b(right)"<>ch;                 if(ch=='w'||ch=='W'){                                 if(map[r-1][l]==' '){   //若往上走没有障碍物                                 map[r][l]==' ';                                      map[r-1][l]='!';    //走上去                            }                        if(map[r-1][l]=='o'){    //若上面有箱子                                 if(map[r-2][l]==' '||map[r-2][l]=='x'){    //因为要推着箱子走,所以要确保上面的上面还可以走或者到达终点                                         map[r-2][l]='o';                                        map[r-1][l]='!';                                        map[r][l]=' ';                                 }                         }                }                if(ch=='s'||ch=='S'){                        if(map[r+1][l]==' '){                                map[r][l]=' ';                                map[r+1][l]='!';                        }                        if(map[r+1][l]=='o'){                                if(map[r+2][l]==' '||map[r+2][l]=='x'){                                        map[r+2][l]='o';                                        map[r+1][l]='!';                                        map[r][l]=' ';                                }                        }                }                if(ch=='a'||ch=='A'){                        if(map[r][l-1]=' '){                                map[r][l]=' ';                                map[r][l-1]='!';                        }                        if(map[r][l-1]=='o'){                                if(map[r][l-2]==' '||map[r][l-2]=='x'){                                        map[r][l-2]='o';                                        map[r][l-1]='!';                                        map[r][l]=' ';                                }                        }                }                if(ch=='d'||ch=='D'){                        if(map[r][l+1]==' '){                                map[r][l+1]='!';                                map[r][l]=' ';                        }                        if(map[r][l+1]=='o'){                                if(map[r][l+2]==' '||map[r][l+2]=='x'){                                map[r][l+2]='o';                                map[r][l+1]='!';                                map[r][l]=' ';                        }                                                        }                                        }

这里就是进行wsad的上下左右操作。然后操作时候需要判空,判断人是否可以走动。如果是墙壁就不能走动。如果是箱子,那还有判断箱子的前一格是否可以走动,可以的话就直接推箱子了。

总的来说这种游戏并不算太难。如果是多个关卡的话,可以选择加一个关卡地图配置文件。然后让游戏策划进行配置。设计游戏的地图才是这游戏的难点所在。

以上是"如何利用c++实现推箱子小游戏"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0