今回もシェーダーを使用します。準備自体は以前記事にしたCocos2d-xでルール画像を使ってシーントランシジョンする(シェーダー使用)とほぼ一緒です。頂点シェーダーC++のコードとして直接記述するので以下のように特殊文字をエスケープしてファイルに保存します。所謂何もしない頂点シェーダーです。a_texCoord;});フラグメントシェーダーフラグメントシェーダーはアプリ側から渡されるフラグが有効な時だけ、指定された色で画像の透過していない部分を塗りつぶす処理を記述します。c.a;」こうやって書かないと不透過の部分まで塗りつぶされて四角い塗りつぶしになってしまいます。そのため不透明度を各色に乗算しています。シェーダーをC++コードから利用する上記シェーダー文字列をC++側から使用するため以下のコードを記述します。BlinkFrag;NS_CC_ENDで、実体の展開は#includeでやります。"blink.vert"NS_CC_ENDBlinkColorクラス上記シェーダーを利用してrunActionから利用できるように「cocos2d::ActionInterval」を継承した「BlinkColor」クラスを作成します。BlinkColor.hppヘッダー側の実装です。Cocos2d-xに元々存在するBlinkクラスをほぼそのまま持ってきています。ActionIntervalを継承したら実装しないといけないお約束の宣言が多いです。color;};BlinkColor.cpp実装側のコードです。こちらもBlinkからほとんどそのまま持ってきています。自作したシェーダーを起動時にNodeに設定して、表示・非表示の代わりにシェーダーに有効無効のフラグを渡しています。p);}updateメソッドの中身はBlinkと完全に同じです。すると既存のBlinkと同じ動きになります。そのほかのコード上記コード中で使用している未説明のコードは以下の通りです。ShaderUtil.hppシェーダーの設定は定型的なコード記述になるのでUtilityにまとめています。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。4.0がリリースされたみたいCocos2d-xをやめてUnityに移行した話@2019冬C#のDateTimeとC++のtime_tを相互変換するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。