在正文的第一句加入“我正在参加「码上掘金编程挑战赛」详情请看: 码上掘金编程挑战赛 ”
前言
在码上掘金编程挑战赛开赛伊始,我就写了一篇飞机大战的小游戏提交上去了,今天1024,挺闲摸鱼的,所以打算丰满一下飞机大战的游戏内容,主要是两方面,一方面是飞机只能射出一排子弹,应对指数级增长的障碍物时难免有心无力,输得太快,导致游戏体验不好,这次就是根据得分会扩展飞机能射出的子弹数 另一方面是游戏没有音效,这怎么能行,所以打算用soundjs来添加一些音效
之前对飞机大战实现的详细文章请看这里
根据得分增加弹道的实现
根据封装好的创建子弹方法可以得出,我们可以通过将分数除以10向上取整,Math.floor(score/10),来确定我们要增加几条弹道,然后通过循环的方式,创建我们的弹道
let num = Math.floor(score/10)
for(let i=0;i<num;i++) {
let bullet = new Sprite(textures.bullet.texture);
bullet.width = screenWidth * .04;
bullet.height = bullet.width * 148 / 66;
// 默认从飞机最左侧射出子弹,这里还可以优化,默认从中间射出子弹,可以自己想一下实现
bullet.x = plane.x + (plane.width * 0.25*i-1) - (bullet.width * 0.5);
bullet.y = plane.y;
scene.addChild(bullet);
// 维护子弹
bullets.push(bullet);
}
通过上面的方法创建的弹道是随着分数增长从左至右一次增加的,大家可以想一下,怎么从中间创建子弹,怎么处理子弹超出模型的情况,这里我们留一下这个课后作业。
小提示:从中间开始可以考虑对i进行取余操作哟,超出飞机模型的情况要考虑边界及人工延时。
添加音效
添加音效比较简单,我们只需要找到音效文件boom.mp3,然后通过soundJs进行加载即可
var soundID = "boom"
createjs.Sound.registerSound("https://createjs.cc.com/sound/boom.mp3",soundID);
function playSound() {
createjs.Sound.play(soundID);
}