cocos2d-x ver3.2 : 7章5項〜6項、そして諦める…

7.5 重力のある世界を作成する

この項は問題なく修了。
 

7.6 林檎や虫に物理的な構造を与える

v3への変換ができません。エラーが消えないのです…。
私が作成したいゲームに物理エンジンは必要ないので諦めて、
もう少し情報が増えてから再挑戦しようと思います。
 

アフィン変換で足止め

本書p323のアフィン変換の処理(nodeToParentTransform)をver3に書き換えるのに
時間がかかった…。xcodeのお助け機能を利用していわれるがままに以下の様に書き換えた。
——————————————————————
・m_obAnchorPointInPoints → _anchorPointInPoints
・m_sTransform → _transform
・その他ccの削除
——————————————————————
しかし最後の2行のエラーが消えない。
——————————————————————
_transform = AffineTransformMake(c, s, -s, c, x, y);
return _transform;
——————————————————————
エラーの内容は上の処理が「No vialble overloaded ‘=’」そして下の段が
「No vialble conversion from ‘cocos2d::Mat4′ to ‘cocos2d::AffineTransform’」
nodeToParentTransform関数の返す値はAffineTransformという構造体にしなければ
ならなそうで、_transformはMat4(行列)という型らしいのでエラーになっている。
なので、以下の様にまとめたらエラーが消えた。
——————————————————————
return AffineTransformMake(c, s, -s, c, x, y);
——————————————————————
落ち着いて考えると以下の変換が間違っているのだと思う。m_sTransformは
alt+クリックで検索しても何も出てこないので変換する必要はない普通の変数?なのかな。
——————————————————————
・m_sTransform → _transform
——————————————————————
でも、とりあえずアフィン変換のエラーは無くなった。
 

実装部分のエラー

本書p324の下のソース6行目で処理でエラーになる。
——————————————————————
pApple->initWithTexture(appleBatchNode->getTexture());
——————————————————————
以前ver3でCCが外れたためPhysicsSpriteが既存のPhysicsSpriteと被ったのかな?
6章でAnimation.hをMyAnime.hに変更したようにPhysicsSpriteをMyPhysicsSprite
と変えたけれど、同じようにエラーになります。
エラーの内容は「initWithTexture is a protected member of ‘cocos2d::Sprite’」
initWithTextureはspriteの関数だからPhysicsSpriteからは利用できないよ!
ということだと思うのですが、PhysicsSpriteはSpriteを継承しているのだから
利用できても良いのでは?色々調べたけれど同じ様な症例がなく手詰まり。
box2Dには余り興味がないので、もう少し情報が増えてから再度学ぶことにしました。
 
その他メモ
PTM(pixel per meter):32PTMなら32ピクセルが1メートルとなる
 
そんなこんなで、cocos2dの参考書を利用した学習はお終い。
書き溜めた記事もなくなったので、また週一くらいの更新ペースに戻ります。
 
 
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


4 + = 五


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>