0

単純な質問ですが、非常に難しくて悪い解決法です。あなたの助けが必要です。単純に myLine x,y に myCircle を入れたいのですが、回転を変えるとダメなので..

私のオブジェクト:

My "obj" is working well..

myLine = display.newRect( obj.x, obj.y , 150, 5 )
myCircle = display.newCircle( myLine.x, myLine.y, 8 )

私はすべてのenterFrameのためにこれを手に入れました:

myLine.x = obj.x
myLine.y = obj.y
myLine.rotation = obj.rotation

myCircle.x = myLine.x
myCircle.y = myLine.y

そして、それは正常に動作しています..しかし、実行時にmyCircle - enterFrameを実行する必要があります。行の回転が変更されるたびに、同じ方向に移動します。myCircle が obj.x と obj.y.. または myLine.x と myLine.y にある場合、正常に動作しています。しかし、私は、myCirle が myLine の 1 端にあるようにする必要があります..このようなものですが、より良い:

if rotation == 0 then
   myCircle.x = myLine.x
   myCircle.y = myLine.y - 30
elseif rotation == 90 then
   myCircle.x = myLine.x + 30
   myCircle.y = myLine.y
end
..

など、お分かりいただけると思います。

私が必要とするのはこれを取得することだけです:

  *
 /
/

*
|
|

..

助けてくれてありがとう。

4

1 に答える 1

0

あなたがやろうとしているのは、線を回転させることですが、円を線の最後にとどめることです。それがあなたがやろうとしていることなら、math.sin() と math.cos() が必要です。

myCircle.x = myLine.x + 30 * math.cos(rotation) --30 would be the length of the line.
myCircle.y = myLine.y + 30 * math.sin(rotation)

それはうまくいくはずですが、うまくいかない場合は、代わりに y に cos を、x に sin を使用してみてください。

于 2013-10-23T00:48:47.793 に答える