3.17.1)でバーチャルパッド(スティックキー)を実装したいと思います。PSやXboxなどでおなじみの360°方向の入力ができるスティックキーです。実際に実装するとこんな感じになります。コントローラが画面の下部に表示されているタイプのコントローラーがあると思いますが、私見ですがタッチパネル操作なのでスティックキーを画面下部に静的に配置する必要は無いと考えています。スティックは画面に最初に触れたところを中心にそこからスワイプした方向と操作量でスティック操作を実現したいと思います。今回作成するパッドの仕様は概ね以下の通りです。コードが長いですがお付き合い頂けたらと思います。.oO(すいません今回もモバイルで動作確認してません。使用する画像は以下の2種類。(真っ白でよくわかんないですが画像あります)タッチ開始位置を表すひし形(hishi.png)指が触ってる場所を表す丸(circle.png)実装コードゲームパッドを表す「PadLayer」を作成してそこに処理を記述します。PadLayer.hppヘッダー側の実装は以下の通り。Layerクラスを継承して自作のレイヤーを作成します。PAD_DISTANCE;};操作が発生した場合、フレームごとにonPadMovedイベントが発生して現在のパッドの傾いている方向(rad)と操作量(amount)が通知されます。レイヤー内で発生している操作をupdate()メソッドを通じてイベント呼び出しで外部に操作を通知します。PadLayer.cpp実装コードは以下の通り。パッド操作中であれば毎フレームごとのupdateメソッドでonPadMovedイベントを呼び出して外部に操作量を通知することの繰り返しになります。ジョイスティックが最大に倒れた状態を1.0fとして、操作していない状態が0.0f、最大量に対しどれくらい倒されているのかをパーセントで外部に通知します。現在の指の位置の角度を求める式は以下の通りです。s.x);中央から一定以上離れたらそれ以上丸を追従させない処理が以下の通りです。1.0f;}基本的にそのまま張り付けても動画と似た動きになると思います。上記コード例の使い方です。s;}そのほかのコード上記コード中に使用した未説明のコードは以下の通りです。CRTPイデオムを使用したCreateFuncの記述の簡易化になります。http://melpon.org/blog/cocos2dx-create-func参考https://qiita.com/FumioNonaka/items/c146420c3aeab27fc736以上です。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。4.0がリリースされたみたいCocos2d-xをやめてUnityに移行した話@2019冬C#のDateTimeとC++のtime_tを相互変換するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。