找回密码
 注册会员
搜索附件  
MCU资讯论坛 附件中心 单片机论坛 51单片机论坛 5_20422_7e2a315e960de9c.jpg

5_20422_7e2a315e960de9c.jpg

 

触摸屏仿真之推箱子:三大经典游戏之仿真(俄罗斯方块、推箱子、:


本人工作和单片机一点关系都没有,玩玩单片机,写写单片机游戏,纯粹是个人爱好。记得第一个单片机游戏帖子是在两年以前发的了,发表在了Proteus论坛上,名为三大经典游戏之仿真(俄罗斯方块、推箱子、贪吃蛇),第二个单片机游戏帖子发表在了本论坛,名为单片机游戏之四九宫格数独,今天发表的是第三个贴子了。

在论坛里看到很多人仿真的都是计算器啦,万年历啦,数码管显示啦,波形发送器啦,用的液晶大多为12864或是1602,偶尔会看到有人用ST7920 或是T6963C驱动的液晶屏。12C ds1302 18b20 等驱动更是多于牛毛。但Proteus中唯一的一个串口12864(驱动器型号为SED1565)驱动却无人问津,最大号的256*256型液晶驱动无人问津,触摸屏就更是没人去搞了,(叫你搞,你也一时搞不出,哈哈),这次在我的仿真里你会全部看到,当然还有I2C的驱动(千锤百炼的驱动代码绝对精炼)。
因为本游戏,在我的第一个帖子中发表过了,人物移动逻辑还是一样的,在本仿真中由于加了触摸屏,自然就要有自动寻路的功能,这是一个很耗单片机资源的东东。刚写的时候我还在考虑RAM扩展,后来发现这样一来51单片机的引脚根本就不够,于是我又考虑到采用多机通信的方式代替扩展RAM,因为那样的话就相当于有64个引脚,可以专门用一个单片机来做寻路操作,并且RAM有512字节,已经足够了,但后来的测试发现,人物寻路一遍时间太长,并且在数据交互时处理的不是很好,偶尔会有数据丢失。最后经过仔细的硬件布局和精炼的数据算法,还是被我用一块单片机搞定全部功能,其中的功能块如下,触摸屏功能块响应鼠标点击液晶屏消息,12C 功能块保存和加载游戏数据,虚拟终端功能块负责响应PC机键盘消息操控游戏,12864功能块负责实时显示游戏进程数据,256*256液晶功能块负责显示游戏地图,按键功能块负责启动、复位、保存、加载、选关等等操作,两片74系列转换模块负责转换触摸屏数据,当然还有最最重要的单片机负责处理所有输入输出。
本仿真工程庞大,整个项目源代码全部公开,你下载后只要你装了Keil就可以编译通过(我用的是Keil4低版本能否通过不清楚)。为了达到复用的目的文件较多,不管是算法效率,游戏逻辑分析,各种芯片驱动,还是整个项目架构或是代码风格,都经过本人精心设计,可以说每个方面都有其独到之处,会让你有一种赏心悦目的感觉,不管你是新手还是老手都很难说这其中没有值得你学习的地方,特别是在处理游戏寻路逻辑那一块,在最开始时我用的算法是采用栈来处理,但后来发现这种方式找到的路径不一定是最短路径,所以又改用了队列算法来实现,但栈的代码并没有删除,而是采用了宏处理 你可以去掉#define USEQUEUE 这句宏定义而不需改变其它的任何代码,再次Build一次就可以看到采用栈寻路的效果了。本仿真中游戏关数只设了四关,如果你想多加关数,只要在数据文件中添加正确的关数据,并修改宏#define MAX_HURDLE 4的值再一次Build即可,下面是复制以前帖子的游戏看点内容:
本游戏之十大看点

游戏看点一:游戏采用LCD-KEYPAD液晶显示屏做为显示界面(256*256),大家不要去你自己的元器件库里搜索这块液晶,你永远都搜索不到,至于为什么我的仿真里会有,留你自己慢慢想,如果你够细心就会明白,只要你装了Proteus 仿真不是问题。
游戏看点二:游戏启动界面简洁,依然沿用了以前游戏的启动界面
游戏看点三:游戏所用的单片机为最原始的80C52单片机,不需要AVR也不需要ARM,小小的80系列单片机就能绰绰有余的实现游戏所有功能。
游戏看点四:游戏无需外加数据存取器,根本就用不完256字节的数据段(本游戏151.6字节,还有100多个字节空闲),很多朋友认为写游戏不扩展外部数据存储器几乎不可能,如果你看了我的仿真,你就会改变你的想法。
游戏看点五:本游戏属原创,绝无抄袭,也没地方抄袭。
游戏看点六:游戏的硬件电路,极其简单,由于采用了触摸屏,移动按钮被取消,但保留了虚拟终端。
游戏看点七:游戏采用了虚拟终端,能通过PC键盘完成游戏的所有操作,具体操作看终端显示。
游戏看点八:游戏代码相当规范,工程建立独到,如果你看了我的代码架构,再和论坛里大多数朋友的相比较一下,你就会明白高手和菜鸟的区别。
游戏看点九:Proteus的触摸屏看似引脚众多,其实驱动也没那么复杂,类似行列式键盘,但如果让你来写你还真不一定能写出来,不是我很狂,现在很多人都眼高手低的,说是简单,写起来却不是那么回事。
游戏看点十:游戏中用到了24C02C芯片,可以任意时间加载和保存游戏。
仿真注意:Proteus软件必须是7.4或7.4以上版本

下面是仿真截图,由于触摸屏效果在图中显示不出来,朋友们可以下载下来自己仿真看到
游戏启动界面



游戏中效果



软件工程

5_20422_7e2a315e960de9c.jpg

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 11:29 , Processed in 0.036910 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部