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