我们要做的就是修改一下obj_item的碰撞事件,当主角拾取道具后,增加一行记录到存档里。修改step事件,在instance_destroy的代码前,增加一行代码
ds_map_replace(obj_controller.game_data,ds_map_find_value(data,"key"),false);
这个记录会插入一行道具的ID值和false值到存档里。然后,我们在道具生成事件里,添加一下判断,在最下面填写代码
var data_item_exists=ds_map_find_value(obj_controller.game_data,key); if (not is_undefined(data_item_exists)) { if(not data_item_exists) instance_destroy(id,false); }
上面的代码,第一行表示,查出这个道具是否有false值,如果有,检查是否合法,合法的,继续判后not false为真,就销毁道具。
测试一下,效果如下
暂无关于此日志的评论。