内容の保証はできません。


#import <CocosNode.h>

クラス CocosNode

AtlasNode?, AtlasSprite?, AtlasSpriteManager?, Layer, MenuItem?, MotionStreak?, ParallaxNode, ParticleSystem?, RenderTexture?, Ribbon?, Scene?, TextureNode?,TMXTiledMapに継承されている.

NSObject
  |
  +--CocosNode

概要

CocosNodeは本ライブラリの主要な要素になっています。

本ライブラリで何か描かれるものは全てCocosNodeとして扱われます。

最もポピュラーなCocosNodeにScene?,Layer,Sprite?,Menu?があります。

いくつかのCocosNodeまたはその子要素は、特別な機能を提供します。

  • CocosNodeの主な特徴:
    • 他のCocosNodeを含めることができる(addChild, getChildByTag, removeChild, etc)
    • 定期的なコールバックをスケジュールできる(schedule, unschedule, etc)
    • アクションを実行できる(runAction, stopAction, etc)
  • CocosNodeサブクラス化の通常手段:
    • リソースを初期化しコールバックをスケジュールするため、initメソッドをオーバーライドする.
    • 時間の進行を処理するためにコールバックを作成する.
    • ノードをレンダリングするためにdrawメソッドをオーバーライドする.
  • CocosNodeの機能:
    • 位置
    • スケール
    • 回転
    • カメラ
    • グリッドベース
    • アンカーポイント
    • サイズ
    • 可視状態
    • Zオーダー
    • OpenGLのZポジション
  • 制限事項:
    • CocosNodeは"void"オブジェクトであり、テクスチャではない
    • テクスチャを持たないため、サイズも存在しない
    • タッチイベントを受け取ることはできない
    • 加速度センサーの値を受け取ることはできない

タスク

- init
- onEnter
- onEnterTransitionDidFinish
- onExit
- addChild:
- addChild:z:
- addChild:z:tag:
- removeChild:cleanup:
- removeChildByTag:cleanup:
- removeAllChildrenWithCleanup:
- getChildByTag:
- children
- reorderChild:z:
- cleanup
- draw
- visit
- transform
- transformAncestors
- runAction:
- stopAllActions
- stopAction:
- stopActionByTag:
- getActionByTag:
- numberOfRunningActions
- schedule:
- schedule:interval:
- unschedule:
- activateTimers
- deactivateTimers
- nodeToParentTransform
- parentToNodeTransform
- nodeToWorldTransform
- worldToNodeTransform
- convertToNodeSpace:
- convertToWorldSpace:
- convertToNodeSpaceAR:
- convertToWorldSpaceAR:
- convertTouchToNodeSpace:
- convertTouchToNodeSpaceAR:
+ node
zOrder property
vertexZ property
rotation property
scale property
position property
camera property
grid property
visible property
transformAnchor property
anchorPoint property
contentSize property
parent property
relativeAnchorPoint property
tag property
userData property

プロパティ

zOrder

ノードのZオーダーは"兄弟関係"、つまり同じ親要素をもつ子要素であるかどうかを基準にしている.

@property(nonatomic,readonly) int zOrder

vertexZ

OpenGLの実際のZ軸の頂点を示す.

OpneGLとcocos2dのZオーダーの違い:

  • OpneGLではZ軸の頂点を変更可能だが、cocos2dでは、ノードの親子間の関係においてそれが不可能.
  • OpenGLでは2次元投影の設定をする必要が生じるかもしれない.
  • 全てのノードが同じOpneGLのZオーダーを利用してもcocos2dのZオーダーは問題なく利用できる.(例:vertexZ = 0)

警告:

  • cocos2dの親子間のZオーダーを破壊する可能性があるので自己の責任において使用すること.

    @property (nonatomic,readwrite) float vertexZ

rotation

度単位でのノードを回転角度を示す.デフォルトでは0度である.

@property(nonatomic,readwrite,assign) float rotation

scale

ノードの拡大縮小倍率であり、デフォルトでは1.0倍になっている.

@property(nonatomic,readwrite,assign) float scale, scaleX, scaleY;

position

OpenGL座標系でのノードの座標(x,y).
(0,0)なら左下隅を意味する.

@property(nonatomic,readwrite,assign) CGPoint position

camera

カメラの座標を使用してノードを移動させることができるCamera?オブジェクト.
カメラを使用している場合、位置やスケールの変更、回転動作は使用されない.

@property(nonatomic,readonly) Camera?* camera

grid

エフェクトを適用する時に使用されるグリッドオブジェクト.

@property(nonatomic,readwrite,retain) GridBase* grid

visible

ノードが見えるかどうかを示す.デフォルトではYES.

@property(nonatomic,readwrite,assign) BOOL visible

transformAnchor

絶対的なピクセル単位でアンカーポイントを変換する.
v0.8以降からは読み込みのみになったので、変更を望む場合はanchorPointプロパティで代替すること.

@property(nonatomic,readonly) CGPoint transformAnchor

anchorPoint

正規化されたアンカーポイントの座標.
(0,0)なら左下隅、(1,1)なら右上隅、(0.5,0.5)なら中央を意味する.
スプライトやその他の"テクスチャ"ノードは(0.5f,0.5f)のアンカーポイントをデフォルトに持っている.

@property(nonatomic,readwrite) CGPoint anchorPoint

contentSize

未変動のノードのサイズ.contentSizeは、ノードの拡大縮小や回転に関わらず同じままである.
全てのノードはサイズを持っており、レイヤとシーンは同じスクリーンサイズを持っている.

@property (nonatomic,readwrite) CGSize contentSize

parent

親要素への弱い参照.

@property(nonatomic,readwrite,assign) CocosNode?* parent

relativeAnchorPoint

YESなら、アンカーポイントはノードのサイズに相対的に変換される.
スプライトやラベル、その他のサイズ変更可能なオブジェクトはデフォルトでこれを有効にして利用する.
レイヤやシーン、その他の"画面全体"を占めるオブジェクトはこれを使用できないため、デフォルトで無効にされている.

@property(nonatomic,readwrite,assign) BOOL relativeAnchorPoint

tag

ノードを簡単に識別するために使用されるタグを示す.

@property(nonatomic,readwrite,assign) int tag

userData

カスタムユーザデータへのポインタを示す.

@property(nonatomic,readwrite,assign) void *userData

クラスメソッド

node

ノードを割り当てて初期化する.
ノードは"autorelease"として生成されている.

+ (id) node

インスタンスメソッド

init

ノードを初期化する.

- (id) init

onEnter

CocosNodeが"実行段階"に入った時、最初に必ず呼び出されるコールバック.

- (void) onEnter

onEnterTransitionDidFinish

CocosNodeが"実行段階"に入った時、最後に必ず呼び出されるコールバック.

- (void) onEnterTransitionDidFinish

onExit

CocosNodeが"実行段階"を終えたとき時、最後に必ず呼び出されるコールバック.

- (void) onExit

addChild:

Zオーダーの値を0としてコンテナに子要素を追加する.
自己を返すので、いくつかのaddChildメソッドを入れ子にすることができる.

- (id) addChild: (CocosNode? *) node

addChild:z:

Zオーダーの値を指定してコンテナに子要素を追加する.
自己を返すので、いくつかのaddChildメソッドを入れ子にすることができる.

- (id) addChild: (CocosNode? *) node
    z: (int) z

addChild:z:tag:

Zオーダーの値とタグを指定してコンテナに子要素を追加する.
自己を返すので、いくつかのaddChildメソッドを入れ子にすることができる.

- (id) addChild: (CocosNode? *) node
    z: (int) z
    tag: (int) tag

removeChild:cleanup:

コンテナから子要素を削除する.クリーンアップパラメータに応じて実行中の全てのアクションにクリーンアップを行う.

- (void) removeChild: (CocosNode? *) node
    cleanup: (BOOL) cleanup

removeChildByTag:cleanup:

コンテナから指定したタグの子要素を削除する.クリーンアップパラメータに応じて実行中の全てのアクションにクリーンアップを行う.

- (void) removeChildByTag: (int) tag
    cleanup: (BOOL) cleanup

removeAllChildrenWithCleanup:

コンテナから全ての子要素を削除し、クリーンアップパラメータに応じて実行中の全てのアクションにクリーンアップを行う.

- (void) removeAllChildrenWithCleanup: (BOOL) cleanup

getChildByTag:

コンテナから指定したタグの子要素を取得する.

- (CocosNode? *) getChildByTag: (int) tag

children

ノードに含まれている全ての子要素の配列を返す.

- (NSArray *) children

reorderChild:z:

引数zの値に応じて子要素の順序を変更する.
子要素が追加されていなければならない.

- (void)reorderChild:(CocosNode? *) child
    z: (int) zOrder

cleanup

実行されている全てのアクションとスケジューラを停止する.

- (void) cleanup

draw

自分自身のノードを描画するために、このメソッドをオーバーライドする.

- (void) draw

visit

子要素を描画する再帰的なメソッド.

- (void) visit

transform

位置、スケール、回転、およびその他の属性に基づいてOpenGLビューマトリクスの変換を実行する.

- (void) transform

transformAncestors

祖先要素のOpenGLビューマトリクスの変換を実行する.
一般的に祖先要素の変換は既に行われている可能性が高いが、特定の場合(例:FBOにアタッチした時)に再変換を行う必要がある.

- (void) transformAncestors

runAction:

アクションを実行し、実行されたアクションを返す.
ノードはアクションのターゲットになる.

警告:
v0.8からアクションはもうターゲットを保持しない事になった.

- (Action?*) runAction: (Action? *) action

stopAllActions

実行中のアクションリストから全てのアクションを削除する.

- (void) stopAllActions

stopAction:

実行中のアクションリストからアクションを削除する.

- (void) stopAction: (Action? *) action

stopActionByTag:

実行中のアクションリストから指定したタグのアクションを削除する.

- (void) stopActionByTag: (int) tag

getActionByTag:

実行中のアクションリストの中から指定したタグのアクションを取得する.

- (Action?*) getActionByTag: (int) tag

numberOfRunningActions

実行されているアクションや、実行されるようスケジュールされているアクションの番号を返す.
構成可能なアクションは1アクションとしてカウントされる.

例:
7アクションのうち1シーケンスを実行した場合には1が、2アクションのうち7シーケンスを実行した場合には7が返される.

- (int) numberOfRunningActions

schedule:

セレクタがスケジュールされたかどうかを確認して、セレクタをスケジュールする.
スケジュールされたセレクタは、全てのフレームで実行される.

- (void) schedule: (SEL) s

schedule:interval:

セレクタを秒単位でスケジュールする.
タイムが0ならセレクタは全てのフレームで実行される.

- (void) schedule:(SEL)s interval:(ccTime)seconds

unschedule:

セレクタのスケジュールを解除する.

- (void) unschedule: (SEL) s

activateTimers

スケジュールされた全てのタイムをアクティブ化する.
onEnterメソッドによって内部的に呼び出される.

- (void) activateTimers

deactivateTimers

スケジュールされた全てのタイマを解除する.
onExitメソッドによって内部的に呼び出される.

- (void) deactivateTimers

nodeToParentTransform

アフィン変換で使用される.

- (CGAffineTransform) nodeToParentTransform

parentToNodeTransform

アフィン変換で使用される.

- (CGAffineTransform) parentToNodeTransform

nodeToWorldTransform

アフィン変換で使用される.

- (CGAffineTransform) nodeToWorldTransform

worldToNodeTransform

アフィン変換で使用される.

- (CGAffineTransform) worldToNodeTransform

convertToNodeSpace:

世界座標系をローカル座標系に変換する.

-(CGPoint) convertToNodeSpace: (CGPoint) worldPoint

convertToWorldSpace:

ローカル座標系を世界座標系に変換する.

- (CGPoint) convertToWorldSpace: (CGPoint) nodePoint

convertToNodeSpaceAR:

返された/受け取ったノードの座標を相対的なアンカーとして世界座標系からローカル座標系に変換する.

- (CGPoint) convertToNodeSpaceAR: (CGPoint) worldPoint

convertToWorldSpaceAR:

返された/受け取ったノードの座標を相対的なアンカーとしてローカル座標系から世界座標系に変換する.

- (CGPoint) convertToWorldSpaceAR: (CGPoint) nodePoint

convertTouchToNodeSpace:

タッチ座標を世界座標系からローカル座標系に変換する.

- (CGPoint) convertTouchToNodeSpace: (UITouch *) touch

convertTouchToNodeSpaceAR:

タッチ座標を世界座標系からローカル座標系に変換する.

- (CGPoint) convertTouchToNodeSpaceAR: (UITouch *) touch


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-24 (日) 17:14:25 (2523d)