精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HTML 5街頭霸王游戲(開放源碼)

開發 前端
每天的業余時間不太固定, 有時候一天能寫三小時, 有時候一天能寫三分鐘. 代碼也寫的相當潦草. 總的來說有點虎頭蛇尾。

[[78619]]

試玩地址:  http://alloyteam.github.com/StreetFighter/

下載地址: https://github.com/AlloyTeam/StreetFighter

主機控制鍵:

移動: W: 上, D: 前, A: 后, S:下

攻擊: J: 輕拳, K: 重拳, U: 輕腿, I: 重腿

特殊技能: 下→前→拳: 波動拳, 下→后→腿:旋風腿, 前→下→前→拳:升龍拳

副機(小鍵盤):

移動: ↑: 上, ←: 前, →: 后, ↓:下

攻擊: 1: 輕拳, 2: 重拳, 4: 輕腿, 5: 重腿

特殊技能: 下→前→拳: 波動拳, 下→后→腿:旋風腿, 前→下→前→拳:升龍拳

其他:

按F2暫停游戲, 1鍵大戰電腦ai, 2鍵雙人對打.

如果控制不了, 注意切換下輸入法哈.

圖片素材來自互聯網, 原作者Random. 游戲版權歸CAPCOM公司所有.歐洲杯之前加上websocket和3D音效.

開發過程介紹

大概是1個月前開始學習HTML5, 就寫了這樣一個東東練手. 不過說來慚愧, 至今也只學會了canvas的drawImage. 每天的業余時間不太固定, 有時候一天能寫三小時, 有時候一天能寫三分鐘. 代碼也寫的相當潦草. 總的來說有點虎頭蛇尾. 本來準備找個時間再重構一下, 突然發現失去了興致, 歐洲杯又馬上開始了. 對我來說, 已經差不多達到練手的目的, 所以還是罷了.

非常簡單的記錄一些實現思路. 暫且不討論api. 一是因為api到處可以查閱, 二是因為我確實只認識drawImag. 本人技術也十分有限, 請輕砸.

代碼里只有幾個js文件, 每個文件的功能如下:

Class.js   創建類和對象.

Game.js   游戲入口文件.

Map.js    繪制地圖.

Config.js  各種游戲人物動作打架挨打等等配置.

Interface.js 各種接口

Main.js    負責游戲邏輯

Ai.js      Ai

Timer.js   全局定時器

Class.js.

為什么要搞這樣一個東西呢. 保護原型, 繼承的時候修正constructor什么的, 反正現在不搞個Class.create都有點不太好意思. 

這里也借鑒了prototype框架里的一些思路. 相對于prototype里的換湯不換藥. 這兒的class.create選擇返回一個普通的object對象, 有點像jquery里$的搞法. 

這樣可以自由的擴展Class的各種方法,而不用再搭理Function的原型. 舉個例子, Class.empty()可以秒殺這個類生成的所有對象. 比如現在正在設計一個飛機游戲. 有個大招可以清除屏幕上的所有子彈和敵機. 那么, 哼哼.. 

因為Class.create返回的是一個普通的object. 所以不能用new Function的方式生成對象. 具體使用方法如下例.

#p#

  1. var Hero = Class.create( function( name ){      
  2. this.name =  name;       
  3. } , {       
  4. addSkill: function(  skill ){       
  5. .......      
  6. }       
  7. })       
  8. var hero1 = Hero.getInstance(  "半人馬酋長"  );     
  9. hero1.addSkill(  "六級跳大"  );      
  10. var hero2 = Hero.getInstance(  "山嶺巨人"  )       
  11. hero2.addSkill(  "六級跳大"  )       
  12. var hero3 = Hero.getInstance(  "黑暗游俠"  );       
  13. hero3.addSkill(  "六級跳大">"  );   

Timer.js

用js做動畫, 無非就是用setInterval或者setTimeout讓圖片的top和left, 或者圖片本身的src在很短的時間內間隔變換. 達到視覺的動畫效果. 跟動畫片一樣.

雖然屏幕上有很多精靈在同時運動. 但在一個游戲中, 只有也應該只有一個全局的定時器. 

一是從性能出發.  setInterval的開銷相當不小.

二是為了統一管理, 比如方便的實現暫停功能.

北京時間X點X分X秒X毫秒, 東經X度北緯X度在發生什么. 整個世界就是這樣組成.

定時器從游戲開始一直在不停執行, 像地鐵環線. 每隔1小時回到起點. 也像我們自己, 每隔24小時回到原點, 周而復始. 

  1. var timer = Timer.add( function(){       
  2. alert (1)       
  3. })       
  4. timer.start();  //上車       
  5. timer.stop();  //下車      
  6. timer.slow( 1000 ) 地鐵減速   

Interface.js

我之前寫過幾個小游戲, 每個都搞了很多類在里面. 比如坦克大戰, 子彈是一個類, 移動是一個類. 碰撞是一個類. 坦克先繼承碰撞類, 再繼承移動類. 這樣一來坦克既能碰撞也能移動. 非常酷.

可是真的需要那么多類么. 有種方式或許更輕巧敏捷, 那就是接口. 

讓精靈可以移動只需要Spirit.interface( ’Animate’, Interfaces.Animate );

上帝創造生命的時候, 沒有讓腔腸動物和環節動物實現眼睛的接口.

人類當然實現了眼睛的接口, 但人類不是從眼睛繼承來的.

接口在未被聲明之前, 只是一個普通的函數, 沒有構造器, 沒有prototype. 基本不占內存開銷. 

對于每個宿主( 實現者 )來說, 比如精靈1的animate和精靈2的animate. 它們像兩個平行的宇宙. 每個都有各自的scope. 局部變量. 

接口之間不贊成互相通信. 但可以通過宿主來通信. 就像人類實現了耳朵接口和嘴巴接口. 

耳朵聽到聲音先把信息報告給大腦. 大腦再控制嘴巴說話. 但耳朵和嘴巴是不應該長到一起的. 這樣不至于耳朵壞了的時候要修理嘴巴. 其實就是三個字, 要解耦!

Intanfances里面的主要接口有這些:

Event: 一個簡單的自定義事件機制, 以便在Animate,Frame和碰撞檢測的時候實現有限狀態機.

Lock: 動作鎖.

Queue: 一個簡單隊列機制. 

StatusManage: 管理精靈的各種狀態.

Shadow: 精靈的陰影.

Animate: 移動.

SpiritFrames: 精靈的動畫幀.

KeyManage: 鍵盤管理器, 收集玩家輸入.

Collision: 檢測碰撞.

AttackEffect: 攻擊效果.

Audio: 音效.

Main.js

游戲的具體邏輯都在里面, 這個模塊里一共實現了三個類. 精靈類, 戰斗類, 還有一個類有點別扭, 它是波動拳類. - -!.  

整個游戲里也只有這3個類. 不過因為邏輯較多. 時間消耗基本都花在了這里. 畢竟它不像貪食蛇, 只要判斷食物, 墻壁和尾巴. 

Ai.js

這個模塊負責Ai所有邏輯, 也是寫的最輕松的一個模塊. 寫好之后基本沒改過.

對于電腦ai來講, 它明白對方的每一個動作. 所以對每一組動作, 都給ai設計了一組反應動作. 比如你出旋風腿, 電腦就出升龍拳. 

但這樣的話就沒人打的過電腦了, 所以電腦的每次反應都有一組對的和一組錯的, 可以調節ai的難度, 當ai越難的時候, 隨到正確那組動作的可能性越大.

寫游戲和寫普通的應用有點不一樣的地方是, 游戲需要更好的抽象出每個場景之間的共同點, 或者找出他們的不同點. 要盡量盡量少寫if else. 除非是逼不得已. 當你寫了一個if, 就意味著可能要寫N個else if. 當邏輯越來越多的時候, 維護這些if會異常痛苦.

街頭霸王里面的動作有很多種, 比如跳躍的時候不能移動, 攻擊的時候既不能跳躍也不能移動, 跌倒的時候既不能跳躍也不能攻擊也不能移動. 死亡之后啥也干不了. 那么怎么處理這些邏輯呢. 想想如果是寫這樣的代碼.

  1. If ( isJump ){       
  2. If ( move ) return false;       
  3. }else if( isAttack ){       
  4. If ( move || jump ) return false;       
  5. }else if ( fall_down ){       
  6. If ( move || jump || attack ) return false;       
  7. }...   

游戲里的具體邏輯比這復雜的多, 我也想不到得寫多少個if else, if else. 閉上眼睛就是if else.

現在我是這樣實現的. 給每種動作在配置文件里加一個鎖. 精靈在動的時候, 總是被它鎖住的. 移動的鎖是0級, 跳躍是1級, 攻擊是2級. 摔倒是3級. 

當要執行一個新的動作的時候, 比如攻擊的時候突然被踢倒. 會先比較2個動作的鎖的級別. 如果后面動作的級別大于之前動作的級別. 就會打破之前的鎖, 執行新的動作. 反之會無視新的動作. 比如攻擊的時候移動和跳躍都是沒用的.

原文鏈接:http://www.alloyteam.com/2012/05/html5-streetfighter-demo/

責任編輯:張偉 來源: 騰訊Web前端
相關推薦

2011-04-11 13:49:57

JavaScript

2013-09-17 15:46:47

惠普開放源碼云計算

2021-01-22 15:49:55

低代碼開源UBML

2011-08-01 09:15:25

惠普OpenStack云端建構

2009-03-31 08:27:18

谷歌美女感情紐帶

2011-08-01 13:32:22

惠普OpenStack云端架構

2012-10-09 10:43:19

開發者開放源碼

2013-11-26 17:47:11

開放源碼開源微軟

2009-04-20 08:38:04

Symbian諾基亞開源

2009-02-04 17:33:20

ibmdw開放源代碼

2011-12-08 20:23:11

BlackBerry

2009-12-11 09:06:37

Windows 7下載工具

2009-07-10 09:13:00

SymbianNokia開源

2020-01-13 08:15:01

Sweet Home 室內設計系統應用

2018-09-11 11:07:00

2022-06-22 07:54:35

OSS源碼軟件

2009-02-07 13:12:29

VMware View桌面虛擬化VMware

2012-03-16 09:35:52

HTML 5

2010-01-21 13:34:31

HTML 5Youtube

2011-08-08 15:21:04

筆記本評測
點贊
收藏

51CTO技術棧公眾號

日韩在线视频二区| 日本精品视频一区二区三区| 国产精华一区二区三区| 日本少妇性高潮| 夜夜春成人影院| 欧美三电影在线| 国产一级做a爰片久久毛片男| 污污视频在线观看网站| 日韩影院免费视频| 欧美激情国产精品| 亚洲中文字幕一区| 亚洲一区二区av| 欧美性xxxxxxxxx| 香蕉视频在线网址| 飘雪影院手机免费高清版在线观看 | 国产乱码精品| 大胆人体色综合| 波多野结衣片子| 北条麻妃一区二区三区在线观看 | 污污动漫在线观看| 136福利第一导航国产在线| 国产精品女人毛片| 久久久久久欧美精品色一二三四| 国产日韩欧美一区二区东京热| 免费日韩av| 国a精品视频大全| 侵犯稚嫩小箩莉h文系列小说| 伊人春色精品| 精品国产乱码久久久久久免费 | 高清不卡一二三区| 国产日韩在线亚洲字幕中文| 亚洲欧美偷拍一区| 亚洲国产91| 欧美成人精品不卡视频在线观看| 一级在线观看视频| 国产一区二区三区91| 亚洲国产精品小视频| 一级黄色大片免费看| 99视频有精品高清视频| 欧美亚洲综合在线| 国产天堂在线播放| 亚洲精品动漫| 欧美视频国产精品| 欧美在线观看成人| 丝袜老师在线| 欧美小视频在线观看| 人妻熟妇乱又伦精品视频| av影视在线| 一级精品视频在线观看宜春院| 26uuu成人| 日本中文字幕在线2020| 国产亚洲1区2区3区| 欧美一区视久久| 蝌蚪视频在线播放| 久久久www成人免费毛片麻豆| 久久精品中文字幕一区二区三区| 欧美自拍偷拍一区二区| www.亚洲国产| 免费h精品视频在线播放| 欧美视频综合| 国产片一区二区| 亚洲 国产 日韩 综合一区| 成人精品一区二区| 国产精品久久久久天堂| 精品国产无码在线| 国产乱码在线| 高跟丝袜欧美一区| 国产97色在线 | 日韩| 成人在线视频观看| 欧美福利视频导航| 少妇献身老头系列| 欧美大胆a级| 亚洲视频在线观看| 欧美性x x x| 精品1区2区3区4区| 91干在线观看| 中文字幕一区二区三区波野结| 韩国一区二区在线观看| av资源站久久亚洲| 外国精品视频在线观看| 亚洲国产精品传媒在线观看| 中文字幕一区综合| av网址在线免费观看| 欧美极品xxx| 成人毛片100部免费看| jizzjizz中国精品麻豆| 在线观看欧美日本| 少妇丰满尤物大尺度写真| 欧美偷窥清纯综合图区| 色先锋资源久久综合5566| 欧美黄色一级网站| 久久久久久黄| 91沈先生播放一区二区| 免费观看成年在线视频网站| √…a在线天堂一区| 国产综合av在线| 欧美视频精品| 日韩精品中文字幕在线| 欧美三级黄色大片| 国产美女诱惑一区二区| 成人性生交大片免费观看嘿嘿视频| 欧美一级一区二区三区| 国产精品久久看| 日韩a∨精品日韩在线观看| 黄色日韩网站| 亚洲精品视频网上网址在线观看| 免费精品在线视频| 久久xxxx精品视频| 91久久国产综合久久蜜月精品| 麻豆app在线观看| 一区2区3区在线看| 五月激情五月婷婷| 亚洲丝袜啪啪| 欧美激情2020午夜免费观看| 欧美激情一区二区三区免费观看 | 日本欧美一区| 精品国精品国产尤物美女| 欧美日韩国产一二三区| 午夜综合激情| 国产精品一区二区三区在线观| 最近高清中文在线字幕在线观看| 精品国产31久久久久久| 国产精品偷伦视频免费观看了| 日韩精品永久网址| 国产成人久久久| 少妇激情av一区二区| 亚洲视频中文字幕| 日韩在线不卡一区| 欧洲视频一区| 国产精品成人av在线| 婷婷丁香花五月天| 亚洲成人动漫在线观看| 爱情岛论坛亚洲自拍| 欧美丝袜一区| 国产精品白嫩初高中害羞小美女| 五月激情婷婷综合| 欧美日韩激情视频8区| 亚洲成av人片在线观看无| 欧美日韩p片| 超碰97国产在线| 国产成人l区| 欧美一区二区三区视频在线| 999精品视频在线观看播放| 美女视频黄免费的久久| 亚洲欧洲精品一区| 久久女人天堂| 日韩网站免费观看| 国产喷水吹潮视频www| 国产精品免费看片| 九一精品久久久| 国产精品久久久久久久免费观看| 国产日韩欧美成人| 国产视频在线播放| 日韩午夜激情电影| 国产精彩视频在线| 97aⅴ精品视频一二三区| 久久国产成人精品国产成人亚洲| 偷窥自拍亚洲色图精选| 日本国产一区二区三区| 国产视频二区在线观看| 欧美性大战久久久| 三上悠亚作品在线观看| 国产精品1区2区| 国产日本在线播放| 亚洲成在人线免费观看| 国产精品日韩电影| a在线免费观看| 亚洲精品一区二区三区99| 亚州国产精品视频| 日本一区二区三区免费乱视频 | 91精品国产综合久久久蜜臀九色| www欧美成人18+| 亚洲第一中文av| 欧美另类女人| 欧洲在线视频一区| 四虎国产精品永久在线国在线| 九九热这里只有精品6| 婷婷五月综合久久中文字幕| 欧美综合在线视频| 成熟的女同志hd| 91香蕉视频在线| 中文字幕亚洲乱码| 亚洲欧洲一区二区天堂久久| 日韩福利一区二区三区| 久久久精品区| 日av在线播放中文不卡| 国产剧情在线| 亚洲另类欧美自拍| 99免费在线视频| 色综合天天综合给合国产| 国产尤物在线播放| 久久天堂av综合合色蜜桃网| 国产一二三区av| 亚洲人成高清| 色乱码一区二区三区熟女| 欧美日韩一本| 91视频-88av| 亚洲天堂资源| 欧美日本国产在线| chinese偷拍一区二区三区| 精品女同一区二区| 在线视频欧美亚洲| 天天综合色天天| 欧美三级在线免费观看| 国产日韩精品一区二区浪潮av| 亚洲国产日韩在线一区| 免费成人av在线| 婷婷五月综合缴情在线视频| 羞羞色午夜精品一区二区三区| 久久综合伊人77777麻豆| 日韩一二三区| 成人网页在线免费观看| 日本成人片在线| 91国内在线视频| caoporn免费在线| 上原亚衣av一区二区三区| 青青草免费在线| 亚洲国产精品小视频| 亚洲精品.www| 欧美一区二区三区四区五区| 夜夜嗨av禁果av粉嫩avhd| 在线精品视频一区二区三四| 国产又爽又黄的视频| 一区二区三区在线视频免费| 久草手机视频在线观看| 亚洲国产精品精华液ab| 成人精品999| 97se亚洲国产综合自在线不卡| 特黄特色免费视频| 国产激情视频一区二区三区欧美| 鲁一鲁一鲁一鲁一av| 日本亚洲视频在线| 色诱视频在线观看| 噜噜噜在线观看免费视频日韩| 国产一区二区视频播放| 国产一区视频在线观看免费| 免费cad大片在线观看| 亚洲精品小说| 日本人妻伦在线中文字幕| 欧美福利电影在线观看| 欧美一二三不卡| 激情国产一区| 一卡二卡三卡视频| 亚洲精品麻豆| 欧美二区在线视频| 亚洲免费婷婷| 成人性视频欧美一区二区三区| 丝袜国产日韩另类美女| 一区二区三区入口| 麻豆国产精品官网| 伊人国产精品视频| 国产成人自拍网| 偷偷色噜狠狠狠狠的777米奇| www.爱久久.com| 成人免费看aa片| 国产亚洲精品资源在线26u| 亚洲午夜精品久久久久久高潮 | 亚洲人成77777| 久久riav| 欧美色图国产精品| 91免费网站视频| 欧美色123| 国产免费毛卡片| 日韩精品电影在线观看| 成人综合久久网| 国产成a人亚洲精品| 亚洲久久久久久| 国产日韩三级在线| 免费中文字幕日韩| 精品久久久久久中文字幕一区奶水 | wwwww在线观看免费视频| 啊v视频在线一区二区三区| 三级资源在线| 日韩免费中文字幕| www.久久热| 国产一区二区免费在线观看| 精品视频亚洲| 成人国产在线看| 久久一日本道色综合久久| 黄色一级片免费的| 国产v日产∨综合v精品视频| 亚洲专区区免费| 亚洲三级理论片| 色网站在线播放| 欧美精选午夜久久久乱码6080| 99久久国产免费| 亚洲男人天堂2023| 最新黄网在线观看| 琪琪亚洲精品午夜在线| 成人免费观看49www在线观看| 国新精品乱码一区二区三区18| 欧美日韩国产传媒| 成人毛片100部免费看| 免费在线欧美视频| ccyy激情综合| 成人免费小视频| 免费看一级一片| 欧美丝袜丝交足nylons图片| 精品毛片在线观看| 亚洲人成在线电影| 亚洲资源一区| 国产精品第一视频| 国产精品对白| 宅男噜噜99国产精品观看免费| 一区免费视频| 亚洲第一成肉网| 亚洲国产精品ⅴa在线观看| 国产亚洲精品久久久久久无几年桃 | 6080国产精品一区二区| 天堂资源最新在线| 色综合久久久久久中文网| 欧美色网一区| 国产高清在线精品一区二区三区| 日韩在线观看电影完整版高清免费悬疑悬疑| 国产精品视频网站在线观看| 捆绑调教一区二区三区| 熟女俱乐部一区二区视频在线| 依依成人综合视频| 亚洲图片欧美在线| 亚洲色图五月天| 女人让男人操自己视频在线观看| 91中文精品字幕在线视频| 热久久天天拍国产| 97在线免费公开视频| 成人国产精品免费网站| 国模无码国产精品视频| 欧美精品免费视频| 999国产在线视频| 国产成人在线视频| 偷拍亚洲色图| 成人免费毛片网| 99国产精品久| 亚洲男人第一av| 亚洲护士老师的毛茸茸最新章节| 影音先锋在线视频| 亚洲综合色激情五月| 伊人色**天天综合婷婷| 日韩欧美亚洲另类| 国产精品不卡在线观看| 在线免费看av片| yw.139尤物在线精品视频| 欧美天堂一区二区| 致1999电视剧免费观看策驰影院| 热久久一区二区| 精品女人久久久| 欧美久久一区二区| 精品自拍一区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美日韩天天操| 久久精品九九| 中国女人特级毛片| 在线亚洲免费视频| 波多野结衣在线影院| 国产欧美日韩丝袜精品一区| 欧美国产一级| 天堂网成人在线| 亚洲午夜久久久久久久久电影院| 高潮毛片7777777毛片| 久久免费高清视频| 欧美成人午夜77777| 亚洲成熟丰满熟妇高潮xxxxx| 国产女同性恋一区二区| 一级片在线观看视频| 久久久999精品免费| 91蝌蚪精品视频| www.爱色av.com| 亚洲国产激情av| 国产av一区二区三区精品| 久久久天堂国产精品女人| 亚洲第一论坛sis| 欧美美女一级片| 亚洲综合自拍偷拍| 日韩在线免费看| 国产自摸综合网| 中文字幕一区二区av| av无码一区二区三区| 欧美性做爰猛烈叫床潮| 草莓福利社区在线| 精品伊人久久大线蕉色首页| 日韩av一区二区三区四区| 中文字幕五月天| 日韩国产激情在线| 先锋影音网一区二区| 欧美精品一区二区三区三州| 国产农村妇女精品| 丰满人妻一区二区| 国产精品aaa| 激情欧美日韩一区| 亚洲综合欧美综合| 欧美v国产在线一区二区三区| 在线视频超级| www.69av| 国产精品欧美久久久久无广告| 性一交一乱一乱一视频| 国产精品高潮呻吟久久av无限| 亚洲天天影视网| 91成人在线免费视频| 精品粉嫩超白一线天av| 久久青草免费| 成年人黄色片视频|