我们就用樱桃这个道具吧,在第一部里,它是用来过关的必须收集品,现在是用于让主角变无敌。
打开obj_player,修改create事件,在最下面增加一行代码:
powered_up=false;
增加一个碰撞事件,碰撞对象为obj_cherry,主角在吃到樱桃后,会有几秒钟的无敌。给他5秒钟吧。在碰撞事件里,增加如下代码
powered_up=true; alarm[0]=room_speed*5; audio_play_sound(snd_frenzy,1,true);
上面的代码表示,无敌状态为真,5秒后触发闹钟事件。我们继续增加一个alarm0,在里面填写如下代码
powered_up=false; audio_stop_sound(snd_frenzy);
这样5秒后,无敌状态就为假了。
无敌状态可以在主角身上体现出来,一种闪烁的效果。修改obj_player的step事件,添加如下代码,从倒数第二行开始插入
if(powered_up) { image_blend=make_color_rgb(random(255),random(255),random(255)); } else { image_blend=-1; }
最后一行代码,应该仍是之前的
y+=vsp;
上面的代码,是当无敌状态为真时,给主角一个颜色变化的效果,之后恢复正常。
无敌状态时,敌人被碰到后,要原地爆炸,修改obj_player里的碰撞敌人事件,修改之后的代码如下
if(!powered_up) { if(y+sprite_height/2)<other.y { other.y=other.y+other.sprite_height/2; other.image_yscale=image_yscale*0.2; other.image_index=0; other.image_speed=0; force_jump=true; score+=100; other.alarm[1]=room_speed*1; } else { global.game_state=states.dead; instance_destroy(); } } else { effect_create_above(ef_firework,x,y,1,c_yellow); audio_play_sound(snd_squash,1,false); instance_destroy(other); }
让我们测试一下,把水果樱桃拖到游戏场景里,按F5测试,效果如下
最后,还是要设计游戏关卡啊,第一关该如何设计呢?
暂无关于此日志的评论。