希望有人能给出为什么这段代码不会像预期那样工作的见解。我有一段步骤代码,类似如下:
if(!object_exists(object1) || !object_exists(object2)) {
object3.x+=10;
}
if(object3.x >= 200 && !object_exists(object1)) {
object_create(x,y, object1)
}
我希望object3能够移动,直到object1或object2不存在,但如果其中任意一个存在,object3就不应该移动。这段代码在仅检查object1是否存在时工作正常,但是在添加或条件后就不再工作了。即使object3达到x位置200并创建object1,它仍然继续运行object3的移动,好像or被当作and一样处理。第二个条件没有问题,因为它不会创建多个object1。
我已经重新设计了代码,设置一个标志,如果object1或object2存在,就停止object3的移动,但这看起来不太优雅。我认为!object_exists()可能被评估得不正常,但我希望从有更深入了解的人那里得到确认。
评论 (0)