【问题标题】:How to create and move a group of bouncing objects on Corona sdk/solar2d?如何在 Corona sdk/solar2d 上创建和移动一组弹跳物体?
【发布时间】:2020-12-20 20:48:34
【问题描述】:

我已经在这个网站上找到了一个类似的问题,但答案并没有真正帮助。 我正在 Solar2d /Corona sdk 上创建一个游戏,并且我正在尝试创建多个在屏幕上弹跳甚至相互碰撞改变方向的对象(就像在现实生活中一样)。 我遇到了一些问题...我尝试创建一些墙,但我只看到白线,我的对象可以越过它们,因为它们只覆盖一半的宽度和一半的高度。 这是我使用的代码(我在互联网上的某个地方找到的):

local leftWall = display.newRect (0, 0, 1, display.contentHeight);
local rightWall = display.newRect (display.contentWidth, 0, 1, display.contentHeight);
local ceiling = display.newRect (0, 0, display.contentWidth, 1);
local bottom = display.newRect (0, display.contentHeight, display.contentWidth, 1);

如何将屏幕边缘设置为边界? 既然我想创建同一个对象的多个副本,我应该单独创建它们还是作为一个组创建它们?

我是新来的网站,所以如果我犯了任何错误,我很抱歉!

【问题讨论】:

    标签: game-physics coronasdk bounce solar2d


    【解决方案1】:

    您应该使用 Solar2D 的物理库。 (打电话给local physics = require( "physics" ))。然后使用

    将所有这些墙变成物理体
    physics.addBody( leftWall, "static", { --[[all other parameters]] } )
    physics.addBody( rightWall, "static", { --[[all other parameters]] } )
    physics.addBody( ceiling, "static", { --[[all other parameters]] } )
    physics.addBody( bottom, "static", { --[[all other parameters]] } )
    

    关于你可能想阅读的参数documentation

    我还建议使用 display.newLine 而不是 display.newRect 并使其非常薄。绝对更容易管理,而且我在这里写的代码完全没有改变

    【讨论】:

    • 我试过了,但现在只显示 3 行。它基本上将屏幕分成两半......有什么建议吗?我检查了几次代码,但我不明白它们有什么问题。
    • 添加物理体不应该改变所有显示结果
    • 没错!这就是为什么我不理解这种奇怪的行为。无论如何,我找到了解决方案。谢谢你的回答:)
    猜你喜欢
    • 2021-07-10
    • 2011-12-04
    • 1970-01-01
    • 2012-07-05
    • 2013-07-19
    • 2017-05-21
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多