私はLuaとコロナの両方に不慣れで、私のゲームを持ち上げようとしてきました(しゃれが意図されています)
私は基本的に、ロケットを時計回りと反時計回りの両方に回転させ、スラストボタンを押したときに向いている方向に移動するために、x と y を調整したいと考えています。
私は多くの方法を試しましたが、方程式とそれらを実装する方法に巻き込まれています。以下の私のコードを参照してください(マークから外れている場合は自由に笑ってください)
local rocket = display.newSprite( rocketsheet, rocketsequencedata)
physics.addBody(rocket, { bounce = 0.5} )
rocket.x = display.contentWidth/3
rocket.y = display.contentHeight/1.5
rocket.rotation = angle
rocket:setSequence("idle")
rocket:play()
local inverseRotation = rocket.rotation + math.pi
local speedX = 0.000
local speedY = 0.005
speedX = speedX * math.cos(inverseRotation) + speedY * math.sin(inverseRotation)
speedY = -speedX * math.sin(inverseRotation) + speedY * math.cos(inverseRotation)
function thrust(event)
rocket:applyLinearImpulse(speedX, speedY, rocket.x, rocket.y)
rocket:setSequence("afterburn")
rocket:play()
end
function rotateleft(event)
speedX = speedX - 0.0005
rocket.rotation = rocket.rotation - 2
end
function rotateright(event)
speedX = speedX + 0.0005
rocket.rotation = rocket.rotation + 2
end
controlthrust:addEventListener( "touch", thrust)
controlleft:addEventListener( "touch", rotateleft)
controlright:addEventListener( "touch", rotateright)