生成一个随机数,用的是randomize函数。我们千万不要把这个随机函数放在obj_enemy_red 里。如果那样做,后面的关卡设计时,十几个敌人都要调用它,没这必要。我们要建立一个新的对象,obj_controller,用于写入这个函数。
在create事件里,写入randomize();
接下来,是创建敌人的子弹,我们可以直接用现成对象obj_bullet_player,把它复制一份,重新命名为obj_bullet_enemy,修改碰撞事件,把碰撞对象改为obj_player。
子弹准备好了,剩下最关键的自动射击功能。修改obj_enemy_red的create事件,在最下面添加一行代码如下:
alarm[1]=room_speed*random_range(0.5,5);
我们设置了闹铃1,随机触发事件。然后添加Alarm 1,填入下面的代码
var bullet=instance_create_layer(x,y,"Instances",obj_bullent_enemy); bullet.atk=atk; bullet.direction=point_direction(x,y,x,y+1); bullet.speed=bullet.spd; alarm[1]=room_speed*random_range(0.5,5);
上面的代码表示 ,创建一个子弹,射击方向往下,最后,重置闹铃1.
外星人现在可以随机发射子弹了,但是玩家被打中后,不会受伤。需要修改obj_player对象
添加step事件,填写下面的代码
if(hp<=0) { instance_destroy(); }
再添加Destroy事件,增加玩家死亡后的爆炸效果
effect_create_above(ef_explosion,x,y,1,c_dkgray);
我们修改玩家的生命值 hp为1,按F5测试。
现在为止,我们这个游戏还差一个界面用于显示玩家的生命,太空战的游戏关卡也没设计。下一章,设计关卡。
暂无关于此日志的评论。