C++ 贪吃蛇 ——学习笔记(星星拌饭)

写这个小游戏的时候用了一个图形库

 首先在.h文件里面定义了两个结构体和一个枚举 一个结构体里面包括蛇的所有信息 另一个包含食物的所有信息 枚举类型里面是蛇的四个移动方向

这里的数组表示我设定蛇的坐标 并且蛇的长度没有超过一百(数组最大一百所以坐标值小于一百)

 然后在.c文件里面定义需要的函数 我写的比较潦草 定义了八个(分别是 初始化蛇 画蛇 蛇的移动 按键检测 初始化食物 画食物 吃食物 判断蛇是不是死亡 这八个函数) 有一些游戏的细节没有完善(比如蛇碰到自己的身体也会死 蛇在向左移动的时候不能向右移动等待) 但我主要以学习为主所以没有在意

函数一 初始化蛇  刚刚开始的时候在左上角初始化三节向右移动的蛇 并且一个节蛇的长度是10

函数二 画蛇 这里i<蛇的长度方便后面吃掉食物之后增加蛇的长度

 函数三 蛇的移动 分为蛇头移动和蛇身移动 蛇头的移动主要是用按键控制 而蛇身移动是数组元素的移动 并且舍弃掉蛇尾

 函数四 按键控制 这里只写了上下左右控制 还可以加WSAD四个键控制等等 或者写两个蛇写成双人游戏也可以

函数五 食物初始化 这里用了随机数 不能写%800这样没办法保证食物的坐标是10的倍数 就没办法让蛇头坐标与食物坐标重合来判断是否吃掉食物 至于为什么是800 600是因为我主函数绘制的窗口大小是800*600 取余是为了保证食物的可以出现在窗口 坐标不会太大

 函数六 画食物

 函数七 吃食物

 函数八 判断蛇死亡

 hwnd我在前面定义了 这里直接写NULL也可以 MessageBox最后一个参数是为了让窗口弹出最前

 主函数 这里用extern是因为我在 Init_snake.c文件里面已经定义了但是我又需要在主文件里面使用所以加了关键字extern 大概意思是说我要用这个 但是我不是在这里定义的 让程序去其他地方找找吧

 

Sleep()函数主要是控制蛇的移动速度

最后附上一张运行的图 和死亡弹窗

源码在这里

C++贪吃蛇小游戏源码资源-CSDN文库

大概就这样吧

希望我的笔记对与我一样的C++初学者有所帮助

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值