2

私の場合、カメラが常に私のキャラクターを追跡する2Dゲームを作成していますが、シーンの制限があるため、彼がシーンの境界の近くにいるときに彼の追跡を停止する必要があります。カメラのスケールも処理する必要があるため、CCFollow :: actionWithTarget()とCCCameraのどちらを使用するかを決定する必要があります。

CCCamera.hには、次のように書かれています。

制限:

- Some nodes, like CCParallaxNode, CCParticle uses world node coordinates, and they won't work properly if you move them (or any of their ancestors)
using the camera.

- It doesn't work on batched nodes like CCSprite objects when they are parented to a CCSpriteBatchNode object.

- It is recommended to use it ONLY if you are going to create 3D effects. For 2D effecs, use the action CCFollow or position/scale/rotate.

最後の文は興味深いですが、なぜ3D効果でのみ使用するのですか?CCCameraはそのプロデューサーによって推奨されていないようです。カメラの動きを処理するためのショートカットであることは知っていますが、2Dゲームで使用しない方がよい理由がわかりません。

4

1 に答える 1

2

お気づきの場合は、CCCamera.h ファイルにも次のように記載されています。

Useful to look at the object from different views.
The OpenGL gluLookAt() function is used to locate the
camera.

カメラがどのように機能するかについて、OpenGL Redbook に適切な記述があります。私の理解では、カメラは最初の向きを設定するためのものであり、モデルマトリックスを更新して世界を動かします(これは、CCFollowがあなたのために行うと私が推測しているものです)。カメラを引き続き使用したい場合に役立つ回答がここにあります。

CCカメラの移動

于 2013-02-02T13:48:17.197 に答える