如何在 Corona sdk/solar2d 上创建和移动一组弹跳对象?

问题描述

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

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

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

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

解决方法

您应该使用 Solar2D 的物理库。 (用 local physics = require( "physics" ) 调用它)。然后使用

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

对于参数,您可能需要阅读 documentation

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