单片机游戏设计之贪吃蛇用C语言也是有可能的
第二就是时钟:这个其实是游戏的速度,对于一般的弱智类游戏机,他也代表了难度,物体在每个时钟到 达的时候就传动一次,例如俄罗斯方块没个时刻向下跑一层。赛车游戏每个时刻想前走一 步。一般这类时钟的时间在0.X秒到1秒之间,物体有规律地匀速运动,让人看到感觉是连动。
第三运动:在这里,我先介绍两种比较普遍的弱智游戏机的物体运动规则:柔体传动,刚体传动。 刚体传动 代表作是俄罗斯方块,所谓刚体,就是硬硬的一个东东,运动的时候也不怎么旋转(注 意,俄罗斯方块是会旋转,但其实他是没有经过算法的旋转,纯提取数组的方式,也就是 把一个放块做成4个模式的点阵结构,其实就是4个方向,呵呵)对于刚体的传动,在每个 时钟到达的时候向一个方向(很可能是用户输入的)运动一个固定点阵。如果以坐标来表 达,就是物体的所有基本点阵同时向一个方向(X或Y)移动一个单位。 柔体传动
代表作是贪吃蛇,贪吃蛇跑动的时候并不是整条蛇向一个方向动的(呵呵,蛇蛇身体僵硬 了),而是在每个时钟的到来,物体由能量头带动(如蛇头),每个点的方向都向下一个 点传播,然后自己向新的方向走动一步,走动后,下一个点由于得到了上一个点的方向并
同样地运动一步,所以,他会马上填补上一个点的地方,如此类推。 说的好象没说,看不懂没关系,因为实际的算法可以简化(傻瓜才会一个个点来走的), 实际上在设计贪吃蛇的时候,只需要把蛇尾巴的那个点阵去掉,然后在蛇头的新方向放一 个点阵就是了。期间需要记录下每个蛇身的固定点阵的位置,并且在每个运动时刻过后刷 新一次每个点的位置。
第四显示接口: 我们用的一般是点阵式LCD,就是一大片点点,128*64,132*64,240*128等等等等啦,这 些又叫条屏,就是一写就写一条——8个点(有的也提供写一个点的功能,但贵,至少我没 有),那么如果你只想写一个点怎么办?那就得先把这个点所在的条读出来,然后通过 与,或,的运算后,再放回到LCD上,这时候就要涉及到一个读LCD的问题了,有的LCD提供 读的功能,你写过什么在上面他记的很清楚,但有的便宜货 就不行了,那么我们怎么办?没关系,你在内存中提取出一片空间,虚拟一个LCD出来,每 次写在真实LCD上面的时候,也同时写到内存的哪个虚拟LCD上,那么你要读出LCD的值的时 候实际就是读出虚拟LD上的数据,然后与或后,再重新写到LCD上,记得也要写到虚拟LCD 上哦。你可以把这片缓冲叫做显存,
第五。游戏流程:蛇向一个固定方向进行柔体传动,没个运动时钟到达要做:1。判断食物标志,没有食物了 就放一个,放的时候判断,不能和蛇身重叠 2。得到用户按键值,蛇走一步,并判断是否 撞死了,没撞死,再判断是否吃到东西了,没有吃到,就等下一个运动时钟,吃了?就增 长一点。置一个没有食物的标志。然后等待下一个时刻的来临。 呵呵,其实程序就是这么简单,基本设计只有LCD部分和按键部分是和单片机有关的,其他 都是程序思维和
单片机游戏设计贪吃 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)