0

我想在同一个屏幕上随机显示三种不同类型的对象,所有对象都是随机创建的,但它们不是分散的,有时会相互重叠,我希望这些随机对象彼此远离并且不能重叠彼此....请给任何建议...谢谢

--first object to be displayed 5 times randomly on screen
math.randomseed(os.time())
for i=1, 5 do
local mrandom=math.random
local locx=mrandom(100,700)
local locy=mrandom(100,1140)
local obj1[i]=display.newImageRect('obj1.png',50,50)
obj1[i].x=locx
obj1[i].y=locy
--second object to be displayed 5 times randomly on screen
math.randomseed(os.time())
for i=1, 5 do
local mrandom=math.random
local locx2=mrandom(100,700)
local locy2=mrandom(100,1140)
local obj2[i]=display.newImageRect('obj2.png',50,50)
obj2[i].x=locx2
obj2[i].y=locy2
--third object to be displayed five times
math.randomseed(os.time())
for i=1, 5 do
local mrandom=math.random
local locx3=mrandom(100,700)
local locy3=mrandom(100,1140)
local obj3[i]=display.newImageRect('obj3.png',50,50)
obj3[i].x=locx3
obj3[i].y=locy3
4

1 回答 1

0

听起来需要在没有物理的情况下检测碰撞:

http://www.coronalabs.com/blog/2013/07/23/tutorial-non-physics-collision-detection/

基本上在你的 for 循环中,一旦你生成了你的对象,试着把它放在你的随机 x,y 上,然后在你的其他对象的表上循环,看看你的新对象是否与前一个对象发生碰撞。如果是这样,请重新生成 x 和 y 并重试。

于 2013-08-04T22:04:08.103 回答