首页 JS游戏介绍 正文

推箱子游戏代码分享,简单几步就能自己做!

今天心血来潮,想搞个推箱子游戏玩玩,顺便把过程记录下来跟大家分享一下。 准备工作 我先在网上找些资料,看看别人是怎么做的。发现大部分都是用字符来表示游戏元素,比如用 '@' 表示人,用 '#' 表示墙,用 '$' 表示箱子等等。我也打算这么干,简单直接。 ...

今天心血来潮,想搞个推箱子游戏玩玩,顺便把过程记录下来跟大家分享一下。

准备工作

我先在网上找些资料,看看别人是怎么做的。发现大部分都是用字符来表示游戏元素,比如用 '@' 表示人,用 '#' 表示墙,用 '$' 表示箱子等等。我也打算这么干,简单直接。

我用的开发工具是 VS2022,用啥都一样,VScode,Dev-C++ 啥的都能搞。主要还是看个人习惯。

画地图

得有个地图,我直接用一个二维数组来表示,不同的数字代表不同的元素。比如:

小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

  • 0 代表空地
  • 1 代表墙
  • 2 代表箱子
  • 3 代表人
  • 4 代表目标点

然后我就手动敲一个简单的地图,就是一个 12x13 的数组,里面填上对应的数字,一个简陋的地图就出来。

显示地图

有地图数据,接下来就是把它显示出来。我找个 graphics.h 的库,可以用来画图。然后根据数组里的数字,在对应的位置画上不同的字符,比如是 1 就画个 '#',是 2 就画个 '$',以此类推。

人物移动

显示搞定,接下来就是让人物动起来。我用个 while 循环,不断监听键盘输入,如果是方向键,就改变人物的坐标,然后根据新的坐标重新绘制地图。这里要注意判断边界和障碍物,不能让人物走出地图或者穿墙。

为让人物移动,我还找一个获取键盘输入的函数,具体是啥我给忘,反正就是监听键盘的输入,然后根据输入的方向键来更新地图上人物的位置。

推箱子

人物能动,接下来就是推箱子。这块稍微麻烦一点,要判断人物前方是不是箱子,如果是箱子,还要判断箱子前方能不能移动。如果能移动,就把箱子和人物一起移动。这里要多加几个判断条件,逻辑稍微有点绕。

判断胜利

就是判断游戏是否胜利。我的想法很简单,就是遍历整个地图,看看是不是所有的目标点上都有箱子。如果都放好,那就提示游戏胜利。

经过一番折腾,总算是把推箱子游戏的基本功能给实现。虽然画面比较简陋,但是基本的可玩性还是有的。以后有时间再慢慢完善,比如加个关卡选择,或者美化一下界面啥的。

这回的分享就到这里,希望能给想做小游戏的朋友们提供一点思路。