2014年7月5日土曜日

シーンの切り替えができない

cocos2dx上でシーンの切り替えをする場合
Transition~~というクラスがあるのでそれを使うのだけど、
初めてやった時、ちょっと悩んだのでメモ。
例によってこんな所で悩むほうがおかしいのかもしれないけど。



書籍やサイトに書いてある通りにコードを書いても
Transitionを使ったシーンの切り替えがうまくできない…
という所で頭を悩ませたことが以前あったのだけど、結論から言うと
原因は主にAndroid.mkでした。
Android用にビルドするときは
mkファイルにプロジェクトを定義しなければいけないんですね。

そんなこと、
誰も教えてくれなかったじゃないかっ(←人のせい)!!

Xcodeでやる場合(iPhone用を制作する場合?)は特に必要ないみたいで、
だから書籍やサイトにはそこについて触れられていなかったのかもしれない。
(大体の人がeclipseじゃなくXcode使うもんね)

そんなわけでmkファイルにcppのパスを追加。
基本的にはHelloWorldと同じ階層なわけだから、
ほぼコピペでいいんじゃないかしら。こんな感じね。



ちなみに、その時うまくいかなかったのにはもう一つ原因があった。
(こんなミスは自分だけかもしれないが…)

その時は
「Transitionクラスのテストだからシーン自体はなんでもいいや」って
思っていたので、もともとのHelloWorldのcppとhを別名でコピーして、
それをもう一つのシーンとしたわけなんですが、それがいけなかった。
ヘッダファイルの一番上の二行が、HellowWorldと
新しい別名ファイル(Nextsceneという名前のヘッダファイル)とで
まったく同じになっていて、
そこの記述が重複しちゃあいけないということらしい。



ここの
#ifndef
#define

以降の文言がコピーした別名ファイルの方も
HELLOWORLになってたんだけど、コレを別の文言に差し替えたら通った。
適当に差し替えただけで通ったから
文言はなんでもいいのかもしれない(他と重複しなければ)

ここが何を指すのか、正直今もよく理解してません。
世のプログラマーさんすみません。


☆★というわけでcocos2d-xで制作しました★☆
☆★当然このゲームにもシーンの切り分けがあるわけです★☆

レッド・ザ・パニッシャー ―スタイリッシュレトロアクション―
カテゴリ: アクション
Google Playで詳細を見る

今なら(永久に)無料! 今すぐチェック!!

0 件のコメント:

コメントを投稿