level 5
对象被创建执行下面代码:
{ do
{
x = random(room_width);
y = random(room_height);
}
until (y = 20)}
调试,程序界面就一直黑着,感觉没啥问题啊。
文档中的代码,小球跳跃到随机位置,也无法执行,没任何效果,没其他对象room里面就一个小球。
{
do { x = random(room_width);
y = random(room_height);
}
until (place_free(x,y))
}
2015年01月09日 03点01分
1
level 15
until (y = 20) ——这句的含义就是令y=20然后判断整个是否为0,当然不为0了
如果要判断y是否等于20,那应该用y==20才对。然而在这里即使写了y=20也不行,因为random()返回的是实数,也就是说返回的可能是19.99999,可能是20.000001,几乎不可能正等于20的。
我猜测LZ要实现的是连续随机移动?那不应该在Create中使用,而应该在Step中使用,并且不使用循环。因为循环中的是在执行全部结束后才会显示出来的。
第二个,place_free(x,y)的含义是实例在x、y这个地方是没有碰撞的,而整个房间只有一个实例,所以执行一次就不会继续了
2015年01月09日 05点01分
2
非常感谢,明白了。 第二个,改为ceil(random(room_width)) 就可以了。 第二个: 理解错文档了,文档介绍是否碰撞以为碰撞ture。应该是如你所说 位置空才是ture。 文档介绍:place_free(x,y) 返回实例在( x , y )位置是否与固体实例碰撞的值。这个函数用来在实际移动到新位置前检测。
2015年01月09日 06点01分
回复 sct127 :还有,循环停止的条件是Y=20么
2015年01月09日 06点01分
回复 开不了车 : Y=20 和Y ==20 运行结果都一样。
2015年01月09日 06点01分
回复 sct127 :如果这是结果的话就没必要随机y了吧,直接令y=20
2015年01月09日 06点01分