精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品chinese在线观看| 99reav在线| 99在线|亚洲一区二区| 亚洲欧美日韩成人| 天天综合网日韩| 污污在线观看| 国产亚洲va综合人人澡精品| 国产成人涩涩涩视频在线观看| 萌白酱视频在线| 久久精品国产亚洲blacked| 精品视频免费在线| 91九色丨porny丨国产jk| 黄色网址在线播放| 国产精品香蕉一区二区三区| 欧美综合在线第二页| 日韩精品一区二区亚洲av性色 | 亚洲超碰97人人做人人爱| 奇米精品在线| 日韩一级片免费观看| 久久99久久99小草精品免视看| 992tv成人免费视频| 中国毛片直接看| 欧洲杯什么时候开赛| 日韩美女一区二区三区| 在线观看高清免费视频| xx欧美xxx| 亚洲综合激情另类小说区| 亚洲欧美日韩精品在线| 欧美另类自拍| av亚洲精华国产精华精| 97av影视网在线观看| 亚洲天堂狠狠干| 久色成人在线| 欧美亚洲激情视频| 久久精品视频国产| 午夜欧美视频| 欧美成人剧情片在线观看| 国产午夜精品久久久久久久久| 日韩欧美黄色| 亚洲国产精品嫩草影院久久| 日本成人在线免费观看| 91精品国产自产观看在线 | 91精品国产沙发| 精品亚洲永久免费| 综合视频在线| 欧美成人四级hd版| 波多野结衣亚洲色图| 综合天天久久| 欧美高清自拍一区| 久久视频免费看| 欧美人成网站| 久久免费精品视频| 国产一级特黄毛片| 亚洲激情综合| 国产91成人video| www亚洲视频| 免费亚洲一区| 国产99视频在线观看| 99精品人妻国产毛片| 欧美亚洲自偷自偷| 国产精品久久久久99| 最新国产中文字幕| 久草精品在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品伦一区二区三区| 精品在线播放午夜| 51精品国产人成在线观看| 国产成人麻豆精品午夜在线| 高清国产午夜精品久久久久久| 成人av资源| 天堂v在线观看| 久久新电视剧免费观看| 亚洲va韩国va欧美va精四季| 乱人伦中文视频在线| 一区二区三区不卡视频| 男人靠女人免费视频网站| 春暖花开亚洲一区二区三区| 欧美日韩一区在线观看| 奇米777在线| 老牛影视av一区二区在线观看| 国产丝袜一区二区| 1024手机在线观看你懂的| 羞羞答答成人影院www| 欧美激情国产高清| 无码人妻精品一区二区蜜桃色欲| 麻豆91精品91久久久的内涵| eeuss一区二区三区| 亚洲AV第二区国产精品| 亚洲欧美自拍偷拍色图| 日本人体一区二区| 欧美成人xxxx| 亚洲精品一区二区三区四区高清 | 91视频免费版污| crdy在线观看欧美| 精品亚洲夜色av98在线观看| 99re6热在线精品视频| 日韩天堂av| 成人免费视频97| 日本在线丨区| 亚洲女与黑人做爰| 十八禁视频网站在线观看| 99视频有精品高清视频| 亚洲天天在线日亚洲洲精| 青青草原国产视频| 日韩电影在线观看网站| 粉嫩av一区二区三区免费观看| 免费在线高清av| 一级中文字幕一区二区| 999精彩视频| 日韩成人动漫在线观看| 久热精品视频在线观看| 无码人妻久久一区二区三区| 成人永久免费视频| 一区二区高清视频| 三级成人黄色影院| 亚洲国产精彩中文乱码av在线播放 | 在线视频精品一| 国产一二三四在线| 久久66热偷产精品| 色就是色欧美| 周于希免费高清在线观看| 日韩写真欧美这视频| 久久午夜精品视频| 久久激情视频| 狠狠干一区二区| 秋霞在线视频| 91精品国产高清一区二区三区蜜臀| 亚洲自拍偷拍一区二区| 99国产精品久久久久久久成人热| 亚洲一区二区三区久久| 麻豆av在线导航| 欧美日韩久久不卡| 丁香激情五月少妇| 久久久精品日韩| 精品午夜一区二区| 高清电影在线观看免费| 欧美一区永久视频免费观看| 99久久精品久久亚洲精品| 日本美女视频一区二区| 日韩精品一区二区三区丰满| 性国裸体高清亚洲| 精品一区二区三区电影| 久久国产黄色片| 99riav久久精品riav| 国产男女免费视频| 爱高潮www亚洲精品| 久久久久久18| 日本美女一级视频| 欧美性xxxxxxx| 99久久久无码国产精品性 | 热99久久精品| 九一国产在线| 欧美在线一二三四区| 少妇视频在线播放| 久久丁香综合五月国产三级网站 | 黄色免费在线看| 91麻豆精品国产自产在线 | 色女孩综合影院| av网在线播放| 美女性感视频久久| 国内精品国产三级国产99| 无人区乱码一区二区三区| 欧美黄色性视频| 婷婷在线观看视频| 色综合久久久久综合体| 国产午夜福利一区| 激情丁香综合五月| 屁屁影院ccyy国产第一页| 日韩伦理一区二区三区| 国产精品va在线播放| 尤物视频在线免费观看| 欧美一级黄色录像| 亚洲黄色小说图片| 国产精品色婷婷久久58| 国产精品无码自拍| 久久99伊人| www.午夜色| 加勒比色综合久久久久久久久| 国产mv久久久| 免费av在线播放| 亚洲国产高清福利视频| 亚洲图片视频小说| 亚洲一区在线观看视频| 日韩精品电影一区二区| 精品一二线国产| 欧美日韩成人免费视频| 日韩理论电影院| 999精品视频一区二区三区| 亚洲伊人av| 九九综合九九综合| 久久久久久久久亚洲精品| 欧美一区二区三区日韩视频| 久久久久久久黄色片| 国产精品成人免费| 六十路息与子猛烈交尾| 精品制服美女丁香| 日本福利视频在线| 羞羞色午夜精品一区二区三区| 国产尤物91| 国产区一区二| 国产成人精品久久久| 免费不卡av| 日韩中文字幕网| 日本v片在线免费观看| 日韩手机在线导航| 在线免费av片| 欧美午夜久久久| 久久国产在线视频| 最新热久久免费视频| 国产三级av在线播放| 成人网在线播放| 伊人五月天婷婷| 另类小说综合欧美亚洲| 亚洲精品无码久久久久久| 欧美二区不卡| 永久久久久久| 欧美三级三级| 蜜桃导航-精品导航| aaa国产精品| 亚洲最大福利网站| 欧洲亚洲精品| 国产精品狠色婷| 波多野结衣亚洲一二三| 性日韩欧美在线视频| 日本三级在线观看网站| 久久精品国产精品亚洲| 在线观看完整版免费| 国产一区二区三区丝袜| 欧美孕妇孕交| 亚洲免费av电影| 无码国产伦一区二区三区视频| 欧美成va人片在线观看| 国产黄a三级三级三级| 欧美久久高跟鞋激| 91久久国语露脸精品国产高跟| 欧美在线观看一区二区| 中文在线第一页| 色综合天天综合狠狠| 亚洲欧美在线观看视频| 亚洲6080在线| 日韩成人免费观看| 欧美视频免费在线观看| 成人午夜淫片100集| 欧美视频一二三| 亚洲第一网站在线观看| 高跟丝袜欧美一区| 99久热在线精品996热是什么| 亚洲mv在线观看| 国产精品成人av久久| 亚洲国产精品久久久久婷婷884| 久草视频中文在线| 亚洲福利视频一区| 亚洲精品午夜国产va久久成人| 狠狠综合久久av一区二区小说| 青青草免费观看视频| 在线欧美日韩国产| 一区精品在线观看| 91精品午夜视频| 亚洲精品国产精品国| 亚洲电影av在线| 精品视频一二三| 日韩中文字幕视频| 日本理论片午伦夜理片在线观看| 欧美精品九九久久| 欧美舌奴丨vk视频| 国产精品日韩专区| 日韩一区二区三区在线看| 韩国一区二区三区美女美女秀| 在线亚洲a色| 亚洲永久一区二区三区在线| 欧美高清一区| 激情六月丁香婷婷| 麻豆传媒一区二区三区| 无码av免费精品一区二区三区| 91在线云播放| 天堂网中文在线观看| 亚洲制服丝袜一区| 国产伦精品一区二区三区视频网站| 欧美日韩日日骚| 亚洲第一天堂影院| 亚洲色图50p| 超碰在线观看免费| 668精品在线视频| 不卡精品视频| 久久久久资源| 91超碰成人| 黄色片久久久久| 国产综合色精品一区二区三区| 国产麻豆剧传媒精品国产av| 国产精品污污网站在线观看 | 欧美天堂在线观看| 国产一区二区三区中文字幕| 亚洲国产精品久久久| 91精品专区| 欧美亚洲成人网| 日韩视频在线直播| 色噜噜色狠狠狠狠狠综合色一| 亚洲天堂偷拍| 最新免费av网址| 国产亚洲福利社区一区| 久久免费黄色网址| 欧美日韩国产另类不卡| 神马亚洲视频| 欧美成在线观看| 成人亚洲免费| 欧美日韩精品免费看| 狠狠噜噜久久| 五月天开心婷婷| 国产色综合一区| 好吊妞视频一区二区三区| 欧美一级在线免费| 永久免费av片在线观看全网站| 欧美有码在线观看| 盗摄牛牛av影视一区二区| 在线免费观看一区二区三区| 老司机精品福利视频| 国产精品无码电影| 亚洲午夜精品久久久久久久久| 91久久久久久久久久久久| 亚洲人av在线影院| 亚洲人体影院| 久久超碰亚洲| 在线日韩欧美| 欧美激情 亚洲| 亚洲精品老司机| 国产免费叼嘿网站免费| 日韩在线视频中文字幕| 粉嫩91精品久久久久久久99蜜桃| 久久精品久久精品国产大片| 影音先锋中文字幕一区| 最新中文字幕日本| 一区二区三区精品视频| 99精品免费观看| 在线播放精品一区二区三区| 伊人色综合一区二区三区影院视频| 国产精品一区二区三区免费观看| 欧美女人交a| 日韩成人av影院| 亚洲国产婷婷综合在线精品| 亚洲精品第五页| 国内精品久久久久久久| youjizzjizz亚洲| 日韩精品一区在线视频| bt欧美亚洲午夜电影天堂| 国产精品99re| 日韩av在线电影网| 中文av在线全新| 日韩精品第一页| 男人的j进女人的j一区| 乱老熟女一区二区三区| 制服丝袜激情欧洲亚洲| 18视频在线观看| 国产精品免费一区二区三区| 亚洲另类自拍| 伊人网伊人影院| 欧美午夜精品久久久久久孕妇| www.中文字幕久久久| 成人高清视频观看www| 先锋资源久久| 日本五十肥熟交尾| 一本一道久久a久久精品| 电影av在线| 91成人免费视频| 亚洲经典三级| 亚洲av毛片基地| 91精品麻豆日日躁夜夜躁| 欧美hdxxx| 鲁丝一区鲁丝二区鲁丝三区| 奇米四色…亚洲| 欧美卡一卡二卡三| 日韩电影在线观看永久视频免费网站| 中文字幕乱码在线播放| 正在播放一区二区三区| 国产成人精品一区二区三区四区| 丰满少妇乱子伦精品看片| 亚洲无限av看| 最新国产一区二区| 国产aaa一级片| 中文字幕字幕中文在线中不卡视频| 国产综合视频在线| 国产精品久久久久久久av大片| 亚洲欧美色图| 黄色片视频免费观看| 欧美日韩亚洲综合一区| 美女尤物在线视频| 视频一区视频二区视频| 国产电影精品久久禁18| 日韩一级片中文字幕| 欧美wwwxxxx| 超碰97在线人人| 日韩成人精品在线观看| 久久亚洲成人av| 这里只有精品在线观看| 国产日韩三级| 久久久久久综合网| 色先锋aa成人| 国产天堂在线播放视频| 亚洲不卡中文字幕| 风间由美一区二区三区在线观看| 日韩精选在线观看|