因此,我正在尝试制作Flappy Birdesque游戏,以了解如何使用Corona SDK制作游戏。我有一个顶级列,我希望能够线性移动。所以我使用的是topColumn.setLinearVelocity()
,但我在游戏中也有重力设置,所以鸟可以正确地拍打:)。但我的问题是,当游戏开始时,管道会因重力而掉到地上。有没有办法移动topColumn和bottomColumn而不受重力的影响?它们现在是动态体,但我不知道如何使用静态移动它们。
任何帮助?
local physics = require "physics"
physics.start()
physics.setGravity( 0, 100 )
...
function addColumns()
height = math.random(display.contentCenterY - 200, display.contentCenterY + 200)
topColumn = display.newImageRect('topColumn.png',100,714)
topColumn.anchorX = 0.5
topColumn.anchorY = 1
topColumn.x = display.contentWidth
physics.addBody(topColumn, "dynamic", {density=0, bounce=0, friction=0})
topColumn.y = height - 160
topColumn:setLinearVelocity( -20,0 )
bottomColumn = display.newImageRect('bottomColumn.png',100,714)
bottomColumn.anchorX = 0.5
bottomColumn.anchorY = 0
bottomColumn.x = display.contentWidth
bottomColumn.y = height + 160
physics.addBody(bottomColumn, "dynamic", {density=0, bounce=0, friction=0})
bottomColumn:setLinearVelocity( -20,0 )
end
...
答案 0 :(得分:1)
听起来你需要运动体。
来自Corona documentation
"动态" - 动态物体被完全模拟。他们可以被移动 手动代码,但通常它们会根据力量移动 重力或反动碰撞力。这是默认的体型 对于Box2D中的物理对象。动态物体可以与所有人发生碰撞 身体类型。
"静态" - 静态物体不会在模拟下移动它们 表现得好像有无限质量。静态物体可以移动 由用户手动,但他们不接受应用程序 速度。静态物体仅与动态物体碰撞,而不是与物体碰撞 其他静态物体或运动物体。
"运动" - 运动物体仅在模拟下移动 他们的速度。运动机构不会对像力这样的力量做出反应 重力。它们可以由用户手动移动,但通常是 通过设定速度来移动。运动物体只与碰撞 动态的身体,而不是其他运动体或静体。