モーリーのメモスマートフォン用の表示で見るモーリーのメモアプリ開発等(プログラミング、CG作成)、興味を持ったことを実践してまとめるブログです。Creator<今回やること!>物理エンジンを使ったシンプルなアクションゲームを作成します。こちらの記事の続きです。mmorley.hatenablog.comビジュアルな環境で、プレハブとノードを作成します。フレームアニメーションを作成します。アニメーションに終了時に実行する関数名を登録します。物理エンジンでノードの動きや衝突を計算するために、物理コンポーネントを設定します。スコア、ベストスコア、ゲームスタート時のカウントダウン用のラベルを配置します。スタート、再スタート用のボタンを配置します。私が使用している環境です。(64-bit)『Coin』プレハブを作成アニメーションを設定コインが回転するフレームアニメーションを作成します。Load』にチェックを入れます。『Coin』ノードの読み込み時にアニメーションが再生されるようになります。Property』→『cc.Sprite.spriteFrame』をクリック*『cc.Sprite.spriteFrame』は、ノードに『Sprite』コンポーネントを追加しないと表示されません。『Assets』パネルの『assets/Sprite/background/coin0〜coin7(8個のファイル)』を複数選択し、『Timeline』パネルの『cc.Sprite.spriteFrame』の列の『0:00』にドラッグ&ドロップ『WrapMode:を『Loop』にする『Sample:』を『8』にする1秒当たりのフレーム数を8にします。コインの画像は8枚で1回転するので1秒で1回転するアニメーションになります。物理エンジンでノードを物体として扱うには、『RigidBody』と『PhysicsCollider』の2つのコンポーネントを追加します。物体に物理特性を追加します。物理エンジンによってノードが移動、回転等を行うようになります。物体の形状を定義します。形状は衝突の判定や質量の計算等に反映されます。『PhysicsCollider』は形状の定義方法で、Box、Circle、Polygon等の種類があります。『Static』は静的な剛体、つまりは動かない物体です。コインはアニメーションはしますが物理的には衝突判定のみで動きません。『Sensor』にチェックを入れると、衝突は検出しますが、衝突動作は行いません。『Coin』ノードのサイズが『W34✕H36ピクセル』なので、『PhysicsCircleCollider』の半径を17にします。『Coin』ノードをプレハブ化します。作成したプレハブを再度編集するには、『Assets』パネルの『Prefab/Coin』をダブルクリックします。プレハブの編集から戻るには、『Assets』パネルの『Scene/Game』をダブルクリックします。『Coin』ノードと別の方法で『Sprite』ノードを作ってみます。四角いのでBox型を使用します。Tree』パネルのノードは、ツリーの上側にあるノードほど、シーン中で奥に描画されます。タイルマップはゲームの背景なのでツリーの一番上に配置します。ゲーム中は、ステージは『map00』→『map01』→『map00』→...と2つのタイルマップを交互に入れ替えながらループする作りなので、『map01』の初期位置を『map00』の右隣にします。Clip』を作成します。Clip』を登録します。Body』をクリック設定値はそのままです。Clip』の保存です。Property』→『cc.Sprite.spriteFrame』をクリック『Assets』パネルの『assets/Sprite/running/runnerJumpUp0〜runnerJumpUp3(4個のファイル)』を複数選択し、『Timeline』パネルの『cc.Sprite.spriteFrame』の列の『0:00』にドラッグ&ドロップ『Sample:』を『16』にする『JumpUp』は、しゃがんで踏み切るまでのアニメーションです。ジャンプ操作→『JumpUp』アニメーション再生完了→飛び上がる、という流れで再生されます。『JumpUp』アニメーションの再生時間は、ジャンプ操作から実際に飛び上がるまでのタイムラグになるので、再生速度を早くしました。』をクリックスクリプトで"onJumpUpAnimCompleted"の名前で関数を定義すると、指定したフレームで実行されます。『onJumpUpAnimCompleted』では、『Player』ノードが飛び上がる処理を行います。踏み切るアニメーションが完了した後に、『onJumpUpAnimCompleted』を呼び出して飛び上がる流れです。Camera』ノードに配置しました。『Game』シーンで最も手前に表示する必要があるので、ノードの位置を変更します。『Overfrow』は文字数が増えてラベルサイズを超えた時の処理方法です。ラベルの幅を大きくして表示文字数を増やす。ラベルの幅は変えず、ラベルの幅を超えた文字は表示されません。Text(テキストの折り返し)』をオンにすると改行を優先します。ラベルの幅は変えず、文字サイズを小さくして表示文字数を増やします。Text(テキストの折り返し)』をオンにすると改行を優先します。ラベルの幅は変えず、ラベルの高さを大きくして、改行して表示します。『Score』ラベルとほぼ同じなので、複製を利用して作ります。『Assets』パネルの『assets/Sprite/restart_n』を、『Properties』パネルの『Button』コンポーネントの『Normal』にドラッグ&ドロップ『Assets』パネルの『assets/Sprite/restart_s』を、『Properties』パネルの『Button』コンポーネントの『Pressed』にドラッグ&ドロップ『Assets』パネルの『assets/Sprite/restart_n』を、『Properties』パネルの『Button』コンポーネントの『Hover』にドラッグ&ドロップ『Assets』パネルの『assets/Sprite/restart_n』を、『Properties』パネルの『Button』コンポーネントの『Disabled』にドラッグ&ドロップまた途中ですが、今回はここまでです。あとがき今回で、ビジュアルエディタで行う作業の大半を済ませました。ボタンのクリックイベント用の関数の登録等が残っているのですが、それはスクリプトを書く必要があるので次回に行います。パーティクルは、下記のサイトで無料で作成することが出来ます。particle2dx.comビットマップフォントは、下記のサイトで無料で作成することが出来ます。Creator以前、こちらの記事の続きです。2を使ってListViewを作成しました。(8)参加グループプログラミングリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!mmorleyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。