好家伙,本篇介紹敵機(jī)
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、天心網(wǎng)絡(luò)推廣、微信小程序開發(fā)、天心網(wǎng)絡(luò)營(yíng)銷、天心企業(yè)策劃、天心品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供天心建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
好了,按照慣例我們來理一下思路:
我們有一個(gè)敵機(jī)類,第一步當(dāng)然是實(shí)例一個(gè)敵機(jī)對(duì)象,
然后我們把這個(gè)敵機(jī)放入我們的敵機(jī)群(敵機(jī)數(shù)組)
然后是熟悉的移動(dòng)和繪制
那我們回顧一下子彈的生成邏輯
變量: 子彈 bullet 彈夾(用來裝子彈的東西)bulletList[]
方法:裝填子彈 繪制子彈 移動(dòng)子彈
子彈發(fā)射的物理邏輯是很簡(jiǎn)單的:
生產(chǎn)第一個(gè)子彈,推入彈夾中,繪制彈夾(即繪制彈夾中的所有子彈),
生產(chǎn)第二個(gè)子彈,同樣推入彈夾,移動(dòng)第一顆子彈(應(yīng)該說是改變第一顆子彈的y坐標(biāo)),繪制彈夾中的所有子彈
。。。。。。
生產(chǎn)第n個(gè)子彈,推入彈夾中,改變第n-1顆子彈的Y坐標(biāo),繪制彈夾中的所有子彈
有沒有感覺到兩者邏輯的相似之處
(像啊,太像了)
子彈和敵機(jī)的處理,本質(zhì)上是用的是同一套邏輯
那么,開始干活:
這里我們會(huì)用到兩種類型的配置項(xiàng)E1和E2
(因?yàn)槲覀冇袃煞N類型的敵人,大敵機(jī)和小敵機(jī),其中e1為小敵機(jī)(血少),e2為大敵機(jī)(血厚))
先設(shè)置一個(gè)數(shù)組存放圖片資源
//e1用于存放小敵機(jī)的圖片素材
const e1 = {
live: [],
death: [],
}
e1.live[0] = new Image();
e1.live[0].src = "img/enemy1.jpg"
e1.death[0] = new Image();
e1.death[0].src = "img/enemy1_boom1.jpg"
e1.death[1] = new Image();
e1.death[1].src = "img/enemy1_boom2.jpg"
e1.death[2] = new Image();
e1.death[2].src = "img/enemy1_boom3.jpg"
//e2用于存放小敵機(jī)的圖片素材
const e2 = {
live: [],
death: [],
}
e2.live[0] = new Image();
e2.live[0].src = "img/enemy2.jpg"
e2.death[0] = new Image();
e2.death[0].src = "img/enemy2_boom1.jpg"