弾幕の器:感度設定を追加

感度設定の追加

スマホの弾幕ゲームでは感度(スワイプ量を増幅する仕組み)を設定できるように
するのが普通なのだそうなので付けてみた。ついでにSEとBGMの音量調節も。
 
動画では感度を3.0(スワイプ量の3倍移動する)に設定しました。
タブレットなど大きな画面で遊ぶ場合は大きめにした方が操作しやすいと思います。

 

cocos2dではまとめてフェードできない!

このアプリではメニューや説明画面の切替はシーンを切り替えて対応していたのですが
設定画面はSpriteを利用してメニューに重ねる形にしました。
シーンの方が簡単なのですが、Spriteの方が応用が利きそうなので練習です。
 
しかし躓きました。spriteに透明度の設定が効かずフェードしないのです。しかし
getOpacityで透明度を確認すると設定した値になっておりSprite自体はきちんと
透明度が設定されているようです。
 
googleで調べてみると、cocos2d-xではSpriteやLayerに透明度やフェードを設定
しても子ノードには効かないそうです。FlashやJavaScriptと比べると扱いにくい
仕様です…。以下のリンクの通りsetCascadeOpacityEnabledを利用すれば子要素は
一緒にフェードしてくれるそうですが、孫要素以降の子孫要素には対応していない
ようなのでリンク先にあるような再帰処理のコードを書かないといけません…。
→参考;cocos2d-xで子Nodeが一緒にフェードしてくれない件

でもテキストには効かない

しかしsetCascadeOpacityEnabledが効かない要素がありました。説明画面では
自作のbitmapフォントを作成し、これを利用しているのですが、これに効きません
調べるとリッチテキストにはフェードが効かないバグがあるようです。
→参考:RichText ignores fade actions
 
上記リンク先にはv3.3で解決された様なことが書いてありますが、いまから
3.3に移行するのは大変(私が利用しているのはv3.2)なので、
今回はフェードを諦めました。
 
シーンにしておけば楽にフェードできたのに、Spriteを利用したばかりに
かえって演出の幅を狭めることに…。しかし良い勉強になりました。
 

コメントを残す

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


六 × = 24


*

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