用canvas制作酷炫射擊游戲--part1


 

好久沒寫博客了,因為過年后一直在學游戲制作方面的知識。學得差不多后又花了3個月時間做了個作品出來,現在正拿着這個作品找工作。

作品地址:https://betasu.github.io/Crimonland/new/

 

這個游戲差不多有3000行代碼,實現了基本的游戲引擎、碰撞檢測並基於canvas繪制。等回過頭來看自己前面寫的很多東西已經記不清了,為了鞏固一下學過的知識並給有需要的朋友一些幫助,在此記錄下整個游戲的制作過程。

 

接下來的講解將圍繞源碼進行,需要的朋友可以自行下載並跟着我的步驟一步步來。今天開篇主要介紹下源碼文件的構成,下一篇將結合文件講講游戲的實現原理

游戲源碼:https://github.com/BetaSu/Crimonland/tree/master/new

 

整個程序一共包括4個文件夾和一個頁面。

images 文件夾用於存儲游戲過程中要用到的圖片,值得一提的是其中的sprite.png文件,這個文件儲存了所有人物以及怪物的每一幀動作(術語叫“精靈表”),也就是說怪物每走一步的動作都來源於這個文件。然后每個動作相對於sprite.png的位置坐標保存在js文件夾下的data.js文件。

 

             這就是精靈表

 

sounds 文件夾用於存儲游戲的音效。

css 文件夾存儲所有樣式。

index.html不用多說。

 

js文件夾重點說一下,這其中data.js主要存儲游戲的一些信息以及動畫的坐標。

dom.js主要處理dom操作。

game-loop.js 用一個函數封裝了游戲循環,也就是說每次調用這個函數就會重啟一次新游戲。為什么要把整個游戲過程封裝到一個函數里?這是因為你必須保證每次開始新的游戲所有東西都是新的(玩家的血量得是滿的,不能游戲剛開始玩家就殘血是吧)。

game-engine.js 是整個游戲的心臟----引擎。他構建了整個游戲的底層架構以及所有游戲都可以復用的部分。也就是說這個js文件配合不同種類的game-loop.js可以實現不同類型的游戲(射擊類,棋牌類,rpg······)。

 

簡單的介紹完文件構成,下一篇將會介紹制作游戲的基本原理。

 


免責聲明!

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



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