今天繼續(xù)上篇的飛機(jī)大戰(zhàn),不知道大家在上個(gè)飛機(jī)大戰(zhàn)的時(shí)候有沒(méi)有什么問(wèn)題凡泣,如果有的話枉疼,可以問(wèn)我皮假,下面,我們繼續(xù)上次的來(lái)繼續(xù)講
上篇骂维,我們說(shuō)到畫背景惹资,然后我們將繼續(xù)
畫完背景之后加載完圖片,然后上次有個(gè)沒(méi)有說(shuō)航闺,就是畫logo褪测,也就是飛機(jī)大戰(zhàn)的四個(gè)字,logo潦刃,要不然用戶不知道這是啥游戲侮措,這個(gè)算是一個(gè)小功能,但是也要有乖杠,下面是代碼:
因?yàn)閳D片有寬高分扎,所以我們不要寫固定的值,所以就用公式:canvas寬度高度/2 - 圖片的寬高滑黔,如果看著太居中不好看笆包,可以讓字往上點(diǎn),弄個(gè)什么黃金比例什么的略荡,這個(gè)看大家喜好了
好了庵佣,上面的完成了,我們就可以開始了汛兜,然后可以給這個(gè)開始加一個(gè)事件巴粪,當(dāng)點(diǎn)擊的時(shí)候就開始:
首先我們這里整個(gè)游戲里需要一個(gè)主引擎,也就是每次canvas畫完之后需要重新刪掉重畫一次粥谬,也就是一個(gè)定時(shí)器
我們看下里面有哪些東西:首先就是天空的渲染肛根,也就是我們上篇寫到的Sky,他有畫和移動(dòng)漏策,清除的話是在畫之前清除的派哲,如果不知道,可以看下上篇里面的draw掺喻,第一行就是清除
然后我們?cè)谶@個(gè)主引擎里面就會(huì)出現(xiàn)我們主要的一個(gè)變量:狀態(tài)芭届,然后,我們根據(jù)狀態(tài)來(lái)控制游戲里面的飛機(jī)的暫停和開始或其他動(dòng)作感耙,最后呢褂乍,我說(shuō)下,里面定時(shí)器中的最后一個(gè)參數(shù)即硼,42逃片,也就是42毫秒,這個(gè)呢只酥,屬于是我們眼睛的一個(gè)物理知識(shí)褥实,說(shuō)我們?nèi)祟惖难劬ρ嚼牵幻腌娭荒茏R(shí)別24次,如果少了就會(huì)讓我們看起來(lái)很卡性锭,然后一秒/24就約等于42了
接著上面的說(shuō)赠潦,當(dāng)點(diǎn)擊的時(shí)候的函數(shù),當(dāng)點(diǎn)擊的時(shí)候狀態(tài)就會(huì)從準(zhǔn)備中跑到加載的階段草冈,如果大家注意看她奥,會(huì)看到準(zhǔn)備開始的時(shí)候底部會(huì)有一個(gè)小飛機(jī)飛過(guò),這個(gè)呢可以看到里面有個(gè)loading函數(shù)怎棱,這個(gè)就是加載這個(gè)小飛機(jī)的
首先我們先定位下小飛機(jī)的位置哩俭,一般這個(gè)都是放在底部的,這樣看起來(lái)舒服點(diǎn)拳恋,當(dāng)然也可以放在其他位置凡资,然后就有了開始的幾句,x坐標(biāo)為0谬运,y坐標(biāo)為canvas的高度減去圖片的高度
畫圖片這個(gè)的話隙赁,我就不多說(shuō)了,ctx梆暖。drawImage就可以了伞访,這個(gè)不知道的可以去百度這個(gè)api,里面參數(shù)說(shuō)的很詳細(xì)了
然后我們需要讓他動(dòng)起來(lái)了轰驳,因?yàn)槎〞r(shí)器是一直在動(dòng)的厚掷,所以我們每次動(dòng)的時(shí)候聲明一個(gè)變量,然后一直加级解,然后每當(dāng)他走多少的時(shí)候冒黑,我們執(zhí)行下我們的函數(shù),這個(gè)方法呢也是我們這個(gè)整個(gè)游戲的主要方法勤哗,設(shè)置動(dòng)畫的快慢抡爹,就是根據(jù)這個(gè)來(lái)的
然后我們這個(gè)加載的圖片呢,主要就只有那么三個(gè)當(dāng)然如果大家有素材可以放更多芒划,但是我們這個(gè)是放在一個(gè)數(shù)組里面的豁延,以便大家添加更好的素材,然后就判斷是否是到數(shù)組的最后一個(gè)腊状,如果到了,我們就可以開始游戲了
好了苔可,今天就先講到這里了缴挖,主要的東西基本都可以了,其他的方法和這個(gè)類似焚辅,下次應(yīng)該能一次講完了映屋,大家如果沒(méi)有看懂的苟鸯,也可以去我之前說(shuō)的游戲網(wǎng)站,查看源碼棚点,或者大家自己有更好的素材也可以自己換下試試早处,挺好玩的,好了這次就這樣了瘫析,下次再見了