c语言推箱子代码_用C语言做推箱子游戏

33d7675ad720ff5afcb57b25abe9f1e2.png

第一步标题

推箱子小游戏制作流程

用到的知识点

1.二维数组(表示地图)

2.循环

3.条件判断

4.加载图片

loadimage();

5.绘制图片

putimage();

游戏三部曲

1、加载游戏数据(初始化 InitGame();)

2、绘制图形(绘图 RenderGame();)

3、玩家操作(数据更新 UpdateGame();)

InitGame(); //初始化游戏

while(1)

{

RenderGame(); //绘制游戏
UpdateGame(); //数据更新

}

游戏设计

空地 0

墙 1

箱子 2

人物 3

目的地 4

人可以占在目的地上 3+4-->7

箱子推到目的地 2+4-->6

就这样我们可以用一个二维数组来表示地图

int map[6][12] = { //加载地图资源

0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,

1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1,

1, 0, 0, 0, 1, 1, 1, 1, 2, 2, 0, 1,

1, 0, 0, 3, 6, 4, 4, 4, 2, 0, 0, 1,

1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,

0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0

};

利用图形库里面的贴图函数putimage来完成游戏绘制

325c54683b0d5a19a4d2f28f767533ae.png

第二步
用到的知识点

1.二维数组

2.循环

3.条件判断

4.getch()的使用

5.kbhit()的功能

6.上下左右键的ASCII值

7.MessageBox()的使用

知识点详解

1、getch()和getchar()的区别

getchar()在用户输入一个字符后需要按Enter键才会获取那个字符

getch()在用户键盘抬起的时候就获取那个键盘的ASCII值

写游戏时我们不需要等待确认操作,所以写游戏的时候用getch()

2、kbhit()的功能

检查键盘是否按下,按下返回true,否则返回false.

3、上下左右的ASCII码

72:上

80:下

75: 左

77: 右

4、MessageBox()的使用

消息盒子,弹出一个对话框,这是windows里面的一个API函数,当你赢或输之后弹出一个对话框,达到游戏胜利和失败的效果。

游戏设计

以向右为例

小人右侧是空地

414d82f3d74c90b183355b65e74fd36b.png

小人右侧是目的地

eefed0ca01fca2160ff8e1a2a4dce393.png

小人直接过去

小人右侧箱子的旁边是空地

bcbc9c9db3347a0605b59f7296715c71.png

小人箱子的旁边是目的地

5ee9302f71f32878fd7f479be691dbc2.png

小人将箱子推过去

判断输赢

地图中没有黄色的箱子

518bd2a4a036690ee5469ea8ff4bfb09.png

箱子相邻的两个或两个方向以上有障碍物(箱子或墙)

fc54c5034c7501c17d436d300b01d620.png

喜欢的点赞加关注哦

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值