【问题标题】:How to place random objects in a scattered way in corona without overlapping如何在电晕中以分散的方式放置随机物体而不重叠
【发布时间】:2013-08-05 06:04:08
【问题描述】:

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

--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

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

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

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

    生成对象后,基本上在 for 循环中,尝试将其放置在随机 x,y 处,然后循环遍历其他对象的表,查看新对象是否与前一个对象发生碰撞。如果是这样,请重新生成 x 和 y 并重试。

    【讨论】:

    • 在生成随机对象(如您所说)并在表格中检索值后,我们如何停止屏幕上的对象以触摸其他对象而无需物理触摸。感谢您的帮助
    • 当您创建新对象时,循环遍历现有对象表并查看它们是否发生碰撞。如果是,则生成一个新的随机 x,y 直到不再重叠。
    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多