【问题标题】:collision event and display.newGroup. How to connect them together? Corona碰撞事件和 display.newGroup。如何将它们连接在一起?电晕
【发布时间】:2013-05-22 12:06:26
【问题描述】:

我有问题。根据下面的代码,我创建了一个对象 x 次(在本例中为 20 次)并添加到一个 ballGroup 中。此外,每个物体都应该有身体并对“碰撞”物理事件做出反应。但是所有创建的球都没有分配body属性(在将它们放入ballGroup之后)。所以我认为有一个问题(当我将球插入ballGroup时)。当我尝试将Body 添加到整个ballGroup (带注释的行)时,只有最后一个球具有Body 属性。知道如何解决这个问题吗?

ballGroup = display.newGroup();
ballGroup.collision = onCollision;
ballGroup:addEventListener("collision", ballGroup);
-- physics.addBody(ballGroup,"dynamic", {density = 1, friction = 0, bounce = 1, radius = 10});

for i = 1,20 do
    spawnBall();
end

function spawnBall()
    ball = display.newImage("image.png");
    ball.x = math.random(-W/2, W/2);
    ball.y = math.random(-H/2, H/2);
    physics.addBody(ball,"dynamic", {density = 1, friction = 0, bounce = 1, radius = 10});
    ballGroup:insert(ball);
end

function onCollision(event)
    print("123");
end

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    每次调用 spawnball() 时都将球设为本地

     ballGroup = display.newGroup();
        ballGroup.collision = onCollision;
        ballGroup:addEventListener("collision", ballGroup);
        -- physics.addBody(ballGroup,"dynamic", {density = 1, friction = 0, bounce = 1, radius = 10});
    
        for i = 1,20 do
            spawnBall();
        end
    
        function spawnBall()
            local ball = display.newImage("image.png");
            ball.x = math.random(-W/2, W/2);
            ball.y = math.random(-H/2, H/2);
            physics.addBody(ball,"dynamic", {density = 1, friction = 0, bounce = 1, radius = 10});
            ballGroup:insert(ball);
            ball.collision = onCollision
            ball:addEventListener( "collision", ball )
    
        end
    
        function onCollision(event)
            print("123");
        end
    

    【讨论】:

    • 您好 DevfaR。它实际上并不能解决问题。现在只有最后一个球具有身体属性并在身体接触时做出反应。
    • 你有没有尝试将碰撞放在 swapBall() 方法中,因为每个球都需要有碰撞事件
    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多