corona lua 代码-为什么这个对象不会旋转?(即质心相关的测试代码)

有人能解释一下为什么这个矩形不旋转吗?这是Lua代码,我在使用Corona SDK。

也就是说,我试图设置一个中心质心不在中心的矩形,然后在中间施加一个力,期望它因为中心质心偏移而旋转....

display.setStatusBar(display.HiddenStatusBar)

- 设置
local screenCenterX、screenCenterY = display.contentWidth/2、display.contentHeight/2

- 创建对象
local myRect = display.newRect (003090)
myRect.strokeWidth = 2
myRect:setFillColor (140,140,140,0)
myRect:setStrokeColor (180,180,180)
myRect:setReferencePoint (display.CenterReferencePoint)
myRect.x,myRect.y = screenCenterX、screenCenterY

- 应用物理学
local physics = require ("physics")
physics.start ()
physics.setGravity (00)
physics.addBody(myRect,“kinimatic”,{摩擦=0.5,反弹=0.1,半径=45})

- 重新定义质心(我试图得到正确的东西)
myRect.xOrigin,myRect.yOrigin = screenCenterX、screenCenterY -100

- 将myRect替换为中心,因为设置xOrigin / yOrigin似乎已将其移动
myRect.x,myRect.y = screenCenterX、screenCenterY

- 应用力量
timer.performWithDelay(3000functioneventmyRect:applyForce(5,0,screenCenterX,screenCenterY)
                - 为什么这不旋转对象吗?
                - 重心已更改,那么现在应该旋转了吗?
                - 也就是说,试图模拟施加力于质心不在中心的物体,并看到它旋转。
        end
点赞
用户269870
用户269870

变量 xOriginyOrigin 只用于移动物体,这些变量不能影响物理效果,而且它们不是真正的“原点”(它们是相对于父级“x/yOrigin”变量的物体的x/y位置)。

要创建一个不平衡的物理对象,你需要使用形状来处理,因此你必须创建两个形状(因此你不能使用自动形状,你必须使用多边形),其中一个比另一个重,以模拟偏心质量。

例如一个长100个单位的矩形,你使其中50个单位重量为1,另外50个单位重量为2,结果中心大约在x 75(我的计算可能有误)。

2012-08-21 22:07:13