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.其他的创意因子

暂时想到的可玩因素就只有这些了。大家有兴趣的话也可以去写个玩玩。最后说明,偶只是个新手,高手勿喷,呵呵


posted @ 2012-02-05 15:12  magic_box  阅读(498)  评论(2编辑  收藏  举报