【问题标题】:Corona SDK move object without it being effected by gravityCorona SDK 在不受重力影响的情况下移动对象
【发布时间】:2017-12-03 17:16:33
【问题描述】:

所以我正在尝试制作 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	
...

【问题讨论】:

    标签: android lua coronasdk game-physics


    【解决方案1】:

    听起来你需要运动体。

    来自电晕documentation

    "dynamic" — 动态物体完全模拟。它们可以移动 手动在代码中,但通常它们会根据力量移动 重力或反作用碰撞力。这是默认的正文类型 Box2D 中的物理对象。动态物体可以与所有物体发生碰撞 体型。

    "static" — 静态物体在模拟下不会移动,它们 表现得好像它们有无限的质量。静态物体可以移动 由用户手动申请,但不接受 速度。静态物体只与动态物体碰撞,不与 其他静态物体或运动物体。

    "kinematic" — 运动物体在模拟下仅根据 他们的速度。运动物体不会对像这样的力做出反应 重力。它们可以由用户手动移动,但通常它们是 通过设置它们的速度来移动。运动体仅与 动态物体,而不是其他运动物体或静态物体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多