2

私は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) 
4

1 に答える 1

0

あなたはspeedXとspeedYを再定義しています...

これは、方程式の最初の行が正常に機能することを意味します。2番目は最初の行の結果を使用するため、完全に壊れています。

:)

于 2012-11-19T19:36:24.693 に答える