這次的游戲的編寫難度比之前的都高很多。本次鄙人用了js的繼承以及設計模式的工廠模式,也算是一個突破。。。
游戲的大致設計思路:
1,玩家類Player:一個人能左右移動,以及上下移動的小人。
擁有的基本方法:{
左右移動 : 單純的鍵盤左右移動,
向下移動 : 屬於向下加速度移動,每次移動都會加一個重力加速度的值,
向上移動 : 其實是跟著方塊一起向上移動, 勻速向上運動,
彈跳 : 就是玩家先向上一個減速度運動,然後,當速度小於1時,像下加速度運動
}
2,方塊基類BlockBase:所有方塊的基類,擁有公共的方法以及接口。
擁有的基本方法:{
移動 : 方塊的向上勻速移動,
檢測玩家是否在方塊上 : 判斷玩家是否停留在方塊上
}
以及一些抽象的接口函數,只有名字,需要在子類中實現,具體看源碼。
3,各種子類,如 普通方塊類NormalBlcok、彈跳方塊類FlipBlock等
繼承的實現方式如下:
在構造函數中:BlockBase.call(this);繼承非prototype的屬性與方法
在函數外部:子類方塊.prototype = new BlockBase(); 繼承基類的prototype的屬性與方法
4, 工廠類BlockFactory:負責生產方塊,以及擊中處理方塊
擁有的基本方法:{
生成方塊 : 重點的方法,就是隨機生成一塊方塊
}
其實我也不知道怎麼說,還是看源碼吧。裡面我注釋得很具體了。
還有,bug肯定是會有的,希望大家諒解。。。
最後獻上預覽吧。希望大家多多拍磚,能讓我多些提高。最好在代碼的編寫上。
方向左右控制移動,界面是做得比較丑。。。大家見諒。
演示代碼:http://demo.jb51.net/js/DownFloor/index.html
完整源碼打包>> /201011/yuanma/DownFloor.rar