2

私はしばらくの間ゲームに取り組んでおり、convertToWorldSpaceで試行錯誤を繰り返しました。それはいつもうまくいきましたが、正直に言うと私が何をしているのかわかりません。私は自分が何をしているのか理解できないのが本当に嫌いですが、残念ながらインターネットはこの問題について多くの情報を提供していません。したがって、誰かが説明してくれることを願っています。たとえば、ノードの親からconvertToWorldSpaceを呼び出さなければならない理由や、convertToNodeSpaceを使用する場合などです。私には全く手がかりがありません。誰かが彼らが何をしているのかを一般的に説明し、おそらく例を挙げてもらえますか?とても感謝しております!:-)

4

1 に答える 1

5

簡単に言えば...

ワールド空間は画面の座標グリッドです。

nodespace はレイヤーの座標グリッドです。

cocos2d および他のほとんどのゲーム フレームワークは、1 つのシーン内の複数のレイヤーで構成されており、おそらく他の小さなノード/スプライトがたくさんあるでしょう。レイヤー内の各スプライトの座標を計算するときはノード空間を使用しますが、タッチ位置を取得するときはワールド空間になるため、convertToNodeSpace などを使用して変換する必要があります。

お役に立てれば!

- - 編集 - -

多分例が役立つでしょう...

 [somenode convertToWorldSpace:ccp(x, y)];

上記のコードは、座標 (x, y) を画面上の座標に変換します。たとえば、(x, y) が (0, 0) の場合、その位置はノードの左下隅になりますが、必ずしも画面上にあるとは限りません。これにより、ノードの (0, 0) が画面の位置に変換されます。

[somenode convertToNodeSpace:ccp(x, y)];

上記のコードは逆になります。画面上の座標 (x, y) をノード上の座標に変換します。

そのため、他のノードまたはレイヤーの子である何かを移動したい (または位置を取得したいなど) 場合に便利です。そのレイヤー内。

于 2012-11-02T16:37:59.973 に答える