0

我已经在这个网站上找到了一个类似的问题,但答案并没有真正帮助。我正在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);

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

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

4

1 回答 1

0

您应该使用 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]] } )

对于您可能需要阅读文档的参数

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

于 2020-12-23T12:16:18.900 回答