我正在 Game Maker Studio Pro 1.4.1772 中制作 RPG,我有一个可以在演示室里跑来跑去的人,而且移动和碰撞都很时髦。
我只是试着做一扇门搬到一个新房间。我完全按照这个例子,并且有一些奇怪的问题。我不认为问题出在我的代码上(它显然有效——它与教程相同)所以问题出在别的地方。
当我的玩家角色跑过地图上的 obj_door 时,什么也没有发生。我已将调试消息放入碰撞事件中,但什么也没有。纳达。我在门的创建代码中放了一条调试消息:
show_debug_message("I exist:" + string(self));
打印的字符串是:
I exist:-1
我觉得很奇怪。
所以我编辑了检查与 obj_solid 碰撞的移动代码,并在此处添加了门碰撞代码:
if (place_meeting (x, y, obj_door)){ ...
现在,当我在地图上撞到门时,我得到一个错误:
FATAL ERROR in
action number 1
of Step Event0
for object obj_player:
Variable <unknown_object>.<unknown variable>(100022, -2147483648) not set before reading it.
at gml_Script_scr_player_move (line 75) - player_x = other.target_x;
因此,当对象创建代码运行时,它给对象的 id 为 -1,尽管我猜它实际上仍在运行创建代码?通过内置碰撞事件未检测到碰撞,但是当我强制游戏检查与该对象的碰撞(我什至不确定是否存在)时,它会引发错误。为什么会发生这种情况,我还能尝试什么来解决它?