#cocos2dx トランジションを指定したpopSceneをライブラリを魔改造せずに実装する

transition

公開日: 

シーンを移動する時にpushSceneとかpopSceneを使って画面遷移を実装することができるのですが、

pushSceneにはtransitionを指定して遷移できるのにpopSceneにはなぜかtransitionの指定がない!

行くときはアニメーションできるのに戻るときはアニメーションができない!

なんでやねん!!!

 

ということで探しに探して素晴らしいベストプラクティスを発見したのでその感動を共有。

sponcer link

 

よく知られてるあまりよくなさそうなやり方

ライブラリを直接魔改造して実装するというやり方

以下のようにやられてる方が多いみたいです。

popSceneでどうやってアニメーション遷移するの?

ただ、これ、cocos2d-xのコード自体を修正しないといけないという恐ろしい手法です。
最底辺にはとても出来ません。

結局、全部replaceScene使うのが良いのかねえ。。。

 

cocos2d-xでトランジションを指定してpopSceneする

そこで調べてみたところ、CCDirectionに手を加える事でpopSceneにCCTransitionXXをセットすることができた。
本当はCCDirectionなどに手を加えたくはないのだけど、他に方法はなさそうなのでしょうがない。

 

みなさんしぶしぶ魔改造しているみたいです。

ところが奥さん!

今回発見した新しい方法は魔改造せずに実装できるのでライブラリを更新とかしても問題なくできるんですよ!!

 

新しいpopSceneの実装方法

では魔改造せずにどんな方法で実装するかというと以下に素晴らしいベストプラクティスが書いてありました。

popScene with Transition

 

上記みればまるわかりですが、こちらでも説明すると、まず以下のソースのCustomDirector.hを追加します。

 

そして実際にTransitionを指定して遷移したいときは以下のように呼び出すだけ!!

 

素晴らしい!!!!!!!

わいが探してたのはこの方法だったんですよ!!!!!

objective-cやswiftみたいにカテゴリ的なもので実装できないかなぁとか思って調べてたんですが、いかんせんC++力が足りなくてやりかたがさっぱりわからず挫折しかけていました(多分C++でカテゴリできない気がしますが)

こんなかんじでライブラリを魔改造せずに実装できて非常に感動しました!!

おもわずキタ━━━━(゚∀゚)━━━━!!と叫ぶくらいに!

 

これ使って素晴らしいTransitionライフをおくってきます!!

  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑