HTML5移動遊戲開發高階程式設計 2:從玩具到遊戲
2.1 引言
新增一些敵方飛船,並設定各種遊戲元素,這樣才能讓敵我雙方交戰
2.2 建立GameBoard物件
第一步是新增一種機制來同時處理頁面上的一群精靈。
儘管Game物件提供了一種切換皮膚進出的機制,但在把任意數量的精靈新增至頁面這方面,並未提供什麼簡易的做法。所以,我們要把GameBoard物件加進來。
GameBoard物件的作用更像是跳棋遊戲中的遊戲棋盤,它提供放置所有元件的場所,然後指明它們的移動方式,職責可分為4種不同型別:
- 負責儲存一個物件列表,以及把精靈新增到列表中及從列表中刪除精靈。
- 此外,它還需要遍歷該物件列表
- 需要以與之前的皮膚相同的方式來進行響應,它必須擁有step和draw函式,這兩個函式會呼叫物件列表中每個物件的相應方法。
- 需要檢測物件之間的碰撞
2.3 發射導彈
繫結空格鍵,讓它發射一對炮彈
新增炮彈精靈:
連線導彈和玩家:
2.4 新增敵方飛船
計算敵方飛船的移動: 也可用TweenJS之類的補間引擎
vx = A + B * sin(C * t + D)
vy = E + F * sin(G * t + H)
構建Enemy物件:
2.5 重構精靈類
JavaScript沒有類的概念,所以不要定義類來表示被繼承的屬性,你要建立一個原型物件,當某個引數並未在實際物件中定義時,JavaScript就會到這個原型中查詢。
建立一個通用的Sprite類:
重構PlayShip:
重構PlayerMissile:
重構Enemy:
2.6 處理碰撞
炸掉對方,就碰撞而言,Alien Invasion可以使用兩種機制。第一種機制主動在每個物件的step函式中進行檢查,檢視該物件與其互動的其他所有物件的碰撞情況。第二種機制提供通用的碰撞階段,在這個階段中,物件在擊中彼此時觸發碰撞事件。前一種機制的實現較為簡單,但後一種提供了更好的綜合效能,且能夠被更好地優化。
新增物件型別:
讓導彈和敵方飛船碰撞:
讓敵方飛船和玩家碰撞:
製造爆炸:
2.7 描述關卡
一個把關卡資料和把敵方飛船新增到螢幕上的機制整合起來的部件
設定敵方飛船:
相關文章
- 從初級到高階,如何設計出好的遊戲掩體遊戲
- Supercell開發分享:從創意到最佳遊戲設計遊戲設計
- 從設計階段提高遊戲留存遊戲
- 【程式設計師的遊戲開發之路】 遊戲架構程式設計師遊戲開發架構
- 學習程式設計從遊戲開始程式設計遊戲
- 遊戲開發與設計遊戲開發
- 電子遊戲互動簡史:從“電子玩具”到“第九藝術”遊戲
- 室內設計遊戲為何風靡移動遊戲市場?遊戲
- 【遊戲設計】從“通關率”檢驗遊戲設計遊戲設計
- 【譯】闖入遊戲開發 #3:程式設計遊戲開發程式設計
- 從逃離到成為遊戲開發,40歲了我才學會程式設計遊戲開發程式設計
- 《Unity移動遊戲開發》讀後感Unity遊戲開發
- 遊戲開發—協議設計遊戲開發協議
- 2020遊戲研發力量調查(移動遊戲篇)遊戲
- 遊戲大地圖開發指南:遊戲外部空間設計遊戲地圖
- 鴨鴨星球遊戲系統程式設計開發丨NFT鏈遊遊戲開發技術語言程式設計遊戲開發
- 新手開發者如何著手遊戲設計? 從解剖桌遊開始!遊戲設計
- 從like到lite,在遊戲設計的角度思考roguelike遊戲成功的原因遊戲設計
- 從遊戲登入簽到介面看留存設計遊戲
- 《五行》從0到1設計遊戲——策劃向開發記錄遊戲
- 遊戲陪玩app開發,高併發系統如何設計?遊戲APP
- 使用Xamarin開發移動應用示例——數獨遊戲(二)建立遊戲介面遊戲
- 使用Xamarin開發移動應用示例——數獨遊戲(七)新增新遊戲遊戲
- 如何設計高難度遊戲遊戲
- 手遊開發者談能從投幣街機遊戲的設計中學到什麼遊戲
- 從“遊戲批評”到“玩遊戲批評”遊戲
- Minecraft 從入門到入坑(邊玩遊戲邊學程式設計)Raft遊戲程式設計
- 作為遊戲設計師,能從動森的設計中學到什麼?遊戲設計師
- HTML5遊戲開發(二):使用TypeScript編寫程式碼HTML遊戲開發TypeScript
- 遊戲文件與遊戲設計遊戲設計
- 遊戲開發者的思考:什麼是遊戲設計的核心?遊戲開發遊戲設計
- 《超級幻影貓2》的故事:從畫素遊戲到“社會遊戲”遊戲
- 拳拳到肉! 動作遊戲肉搏動作如何設計?遊戲
- GameFi+NFT鏈遊開發技術/NFT鏈遊遊戲系統程式設計開發程式碼示例GAM遊戲程式設計
- 全景探祕遊戲設計藝術(2):遊戲機制遊戲設計
- 2021 移動遊戲市場報告:手遊發展到新高度遊戲
- 遊戲AI探索之旅:從AlphaGo到MOBA遊戲遊戲AIGo
- 【遊戲關卡設計集】從平面佈局到遭遇戰設計遊戲
- 從STG射擊遊戲歷史看遊戲設計的演化遊戲設計