【问题标题】:Game Maker:DoAdd:2:undefined valueGame Maker:DoAdd:2:undefined value
【发布时间】:2021-10-31 05:07:25
【问题描述】:
步骤中的代码:
If (keyboard_check(ord("W"))) { phy_position_y -= 4;
}
If (keyboard_check(ord("A"))) { phy_position_x -= 4;
}
If (keyboard_check(ord("S"))) { phy_position_y += 4;
}
If (keyboard_check(ord("D"))) { phy_position_x += 4;
}
按任何 WASD 键都会产生上述错误。
【问题讨论】:
标签:
undefined
game-maker
game-maker-studio-2
【解决方案1】:
phy_position_x 和phy_position_y 只能在为对象检查Uses physics 标志时使用。要么启用它,要么按照 Steven 的建议使用常规的 x 和 y。
【解决方案2】:
检查 phy_position_y 和 phy_position_x 之前是否已初始化。
它试图将 4 添加到它的值,但它不能这样做,因为它不知道它自己的值。 (即使是0,也要初始化为0)
例如,您可以将其放入您的创建事件中:
phy_position_x = 0;
phy_position_y = 0;
或者,假设您决定对象的当前位置,您也可以使用内置变量x 和y:
If (keyboard_check(ord("W"))) { y -= 4;
}
If (keyboard_check(ord("A"))) { x -= 4;
}
If (keyboard_check(ord("S"))) { y += 4;
}
If (keyboard_check(ord("D"))) { x += 4;
}
我认为最终,如果您想移动对象,则无论如何都需要定义 x 和 y,但了解自定义变量并首先定义它们是关键。