原作品作者:itscarlwheezer
本节目标:给蜥蜴增加一个投放炸弹的功能,炸弹会定时爆炸。(本节我们需要用到外部素材,点击下载:Lizard Dash素材)
第一步:添加角色,从自带的角色库里添加一个Bomb角色,如图所示
我们把下载下来得素材解压,将图片和里面的声音文件分别放入我们的项目目录中的“images”和“sounds”文件夹中。
然后再添加一个炸弹爆炸后得角色,我们选择素材中的图片文件如图所示
第二步:角色添加完毕,我们开始添加代码,先编辑蜥蜴的代码,添加一个变量
public static Bomb existingBomb == null;
这个变量作用是什么呢?从名字上看就是标记蜥蜴是否有炸弹,只有再蜥蜴有炸弹的时候才可以投放,否则是无法投放的。
在act()方法中加入代码,如果按下键,并且蜥蜴拥有炸弹,此时将炸弹放置到当前位置。
if ( Greenfoot. isKeyDown("f") ){ if (existingBomb == null){ Bomb bomb = new Bomb(); getWorld().addObject(new Bomb(), getX(), getY()); existingBomb = bomb; } }
蜥蜴角色代码添加部分如图:
第三步:让炸弹在等待一段时间后发生爆炸。编辑Bomb角色的代码,添加一个变量,用于进行倒计时。
private int timer = 100;
然后在act()方法中添加代码,进行倒计时,如果timer的值小于1,切换角色实现炸弹爆炸。
public void act() { timer--; if (timer <1) { getWorld().addObject(new Explosion(), getX(), getY()); Greenfoot.playSound("ExplosionSound.wav"); Lizard.existingBomb = null; getWorld().removeObject(this); } }
代码截图如下
到这一步,蜥蜴可以投弹,并且会发生爆炸,但是爆炸后的效果一直存在,需要进一步处理。
编辑Explosion角色,同样的方法添加变量进行倒计时,时间到了,删除该角色即可。
private int time = 40;
然后在act()方法中添加代码
public void act() { time--; if (time <= 0) { getWorld().removeObject(this); } }
代码截图如下
下一节我们将继续添加功能,炸弹爆炸会炸死周围的蜘蛛。
本站内容未经许可,禁止任何网站及个人进行转载。