用原生javascript模拟经典FC游戏公路争霸

用原生javascript模拟经典FC游戏公路争霸

前几天看了园子里面的随笔 原生javascript开发仿微信打飞机小游戏一时兴起,自己也搞了一个小游戏,练习一下自己的js,dom及游戏编程的思维

其中还参考了 另外一个汽车游戏

在此说一下过程中一些细节吧 油门功能的实现是其中最大的难点,因为当你按住J键,J的keypress事件会一直持续,但再按其他键(如左右移动)时,相应的keydown事件会中断J的keypress,导致不能一直持续加油。不过在jb51中找到了一款类似游戏,DEMO后,发现能实现这个功能。 于是下载源代码,直接全目录搜索z的ascii代码,很快就找到了它的解决方法:keydown的时候注册一个状态,keyup的时候改变,然后把要处理的事情都放在整个程序主体的setInterval中。这样整个问题就迎刃而解了。

事后再想想,这个解决思路其实跟node的思路有点类似,不开多线程,而是把有的事情都放到一个队列中,CPU集中精力处理这个队列上的事情即可,回调函数执行完之后,又在队列中注册新的事件。

经典FC游戏公路争霸原图:

公路争霸

公路争霸

模拟游戏图:

模拟经典FC游戏公路争霸

DEMO

CODE

posted @   p2227  阅读(2323)  评论(12编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示