溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Flaapy Bird項(xiàng)目筆記

發(fā)布時(shí)間:2020-05-26 11:50:59 來(lái)源:網(wǎng)絡(luò) 閱讀:575 作者:喝醉的熊 欄目:web開(kāi)發(fā)

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

中介者模式:一個(gè)對(duì)象處于中央控制管理地位,其他所有對(duì)象都是自己的屬性
背景、大地、鳥(niǎo)、分?jǐn)?shù)、按鈕。。。都是game的屬性,這樣做的好處:
1.全局作用域干凈,只有g(shù)ame一個(gè)全局對(duì)象,小鳥(niǎo)在哪?game.bird 大地在哪?game.land
2.互相通信簡(jiǎn)單,比如鳥(niǎo)要得到管子的位置,通過(guò)game類中轉(zhuǎn)即可
3.game類可以一統(tǒng)每個(gè)演員new出來(lái)的時(shí)間點(diǎn),game就能控制當(dāng)圖片讀取完畢之后再new大地,當(dāng)幀數(shù)%70 == 0的時(shí)候 再new管子

小鳥(niǎo)物理下落模型 :動(dòng)畫(huà)間隔時(shí)間是一致的,但是:
1.小鳥(niǎo)的變化增量,每幀比每幀大,大二次關(guān)系的一個(gè)數(shù)
2.小鳥(niǎo)的位置與幀數(shù)成二次關(guān)系

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI