1. 程式人生 > >Flaapy Bird項目筆記

Flaapy Bird項目筆記

Flappy Bird

最近做了個像素鳥小遊戲,整理下筆記心得:
不管頁面上有多少個演員,只有一個定時器,這個定時器的業務超級簡單:
setInterval(function(){
//讓所有演員更新
//讓所有演員渲染
},20)
1.所有的演員都必須提供update() render()方法,這實際上叫做面向接口編程。Java中,“類”是一種比較抽象的概念,比"類"還抽象一層的東西叫做接口,就是制定必須有哪些方法的特殊類,所有的類都必須實現這兩個方法。JS中沒有接口這個概念,但是我們可以用Java類比,要求所有的演員都必須有update render的方法,提供相應的實現
2.game類必須要維護一個演員清單,所有的演員在new出來的時候必須註冊,所謂的註冊就是把自己加入到game類的演員清單中,this.actors = [ ] game.actors.push(this)

中介者模式:一個對象處於中央控制管理地位,其他所有對象都是自己的屬性
背景、大地、鳥、分數、按鈕。。。都是game的屬性,這樣做的好處:
1.全局作用域幹凈,只有game一個全局對象,小鳥在哪?game.bird 大地在哪?game.land
2.互相通信簡單,比如鳥要得到管子的位置,通過game類中轉即可
3.game類可以一統每個演員new出來的時間點,game就能控制當圖片讀取完畢之後再new大地,當幀數%70 == 0的時候 再new管子

Flaapy Bird項目筆記