windowsSDK贪吃蛇
上几天看了人家用c语言在控制台上面写俄罗斯方块,觉得自己应该能在SDK上写个贪吃蛇出来。毕竟贪吃蛇比俄罗斯方块简单一点吧。
运用知识
1.GUI绘图
2.计时器
3.键盘控制
思路
(一)蛇的产生机制
1.蛇身体的绘制(n个正方形,创建结构体存放4个点坐标,创建结构体数组)
2.运用键盘改变蛇的前进方向(其实改变的只有头尾,并递推改变数组)
(二)食物的产生机制
1.获取当前窗口大小
2.利用随机函数产生x,y为食物(用正方形或圆形函数绘制)的左上角坐标
3.绘制食物
(三)吃食物机制
1.必须验证是蛇头吃到食物
2.吃到食物后食物消失并且重新产生食物(重新产生的食物最好不与蛇的身体重合)
3.蛇的身体的增长(与当前蛇前进的方向有关,数组的扩增)
(四)死亡机制
1.蛇头碰到自己的身体就算死亡
2.蛇头超过窗口就算死亡
因为以前写过模拟钢琴游戏和随机数生成器,所以写起来还是比较顺手的,下面是代码:
这里我用 NUM 表示蛇身体的长度rect[num-1]表示的是蛇头,很多处理都用到了这个。
写的时候可能代码有点乱,是按照顺序写下来的,关键代码都放在VM_TIMER里面了
也没有写函数,所以看起来确实有点乱的。
具体的话写了点注释,应该不难理解吧。
还有不完善的地方可以修改:
1.身体增长机制
我是根据方向在尾部增长的,有时候看起来比较突兀,这里可以改进
2食物产生机制
产生食物的时候食物可能会落在窗口外面,这个时候蛇无论如何也吃不到食物了,这里有个BUG
3.难度控制
可以写个菜单,调节蛇的速度
4.窗口应该设置为固定的
5.结束机制
结束后选择重新玩,或者退出游戏
不过这个只是实现了基本功能,还不能称为游戏。我觉得应该把它称作 "移动和增长方块"比较合适吧
如果想称之为游戏,那必须还得添加一些可玩因素,比如
1.积分机制
2.过关机制
3.蛇的移动速度调节
4.食物的种类,不同类型食物可以增加身体长度不同,增加分数不同
5.背景音乐
6.把蛇画的好看点
7.其他的创意因子
暂时想到的可玩因素就只有这些了。大家有兴趣的话也可以去写个玩玩。最后说明,偶只是个新手,高手勿喷,呵呵