用原生javascript模擬經典FC游戲公路爭霸


#用原生javascript模擬經典FC游戲公路爭霸 前幾天看了園子里面的隨筆 [原生javascript開發仿微信打飛機小游戲](http://www.cnblogs.com/Mr-Nobody/p/3537718.html)一時興起,自己也搞了一個小游戲,練習一下自己的js,dom及游戲編程的思維 其中還參考了 [另外一個汽車游戲](http://wd.jb51.net:81/200910/yuanma/car_game_js.rar) 在此說一下過程中一些細節吧 **油門**功能的實現是其中最大的難點,因為當你按住J鍵,J的keypress事件會一直持續,但再按其他鍵(如左右移動)時,相應的keydown事件會中斷J的keypress,導致不能一直持續加油。不過在jb51中找到了一款類似游戲,DEMO后,發現能實現這個功能。 於是下載源代碼,直接全目錄搜索`z`的ascii代碼,很快就找到了它的解決方法:keydown的時候注冊一個狀態,keyup的時候改變,然后把要處理的事情都放在整個程序主體的setInterval中。這樣整個問題就迎刃而解了。 事后再想想,這個解決思路其實跟`node`的思路有點類似,不開多線程,而是把有的事情都放到一個隊列中,CPU集中精力處理這個隊列上的事情即可,回調函數執行完之后,又在隊列中注冊新的事件。 經典FC游戲公路爭霸原圖: ![公路爭霸](https://images0.cnblogs.com/blog/84053/201402/071935515502741.jpg) ![公路爭霸](https://images0.cnblogs.com/blog/84053/201402/071935584536266.jpg) 模擬游戲圖: ![模擬經典FC游戲公路爭霸](https://images0.cnblogs.com/i/84053/201403/022336453608672.jpg) [DEMO](http://p2227.github.io/demo/gameRoadFighter/?v=0.12) [CODE](https://github.com/p2227/demo/tree/gh-pages/gameRoadFighter)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM