初心者が征く!オリジナルゲーム作成道 day8

こんにちは!インターン生の内村です!

今回は、いよいよシューティングゲームの肝となる弾の発射についての処理を作っていきたいと思います。

今回のシューティングゲームの弾は花火師が操作キャラクターということで花火玉を使用します。
プレイヤーのタップで弾が発射されるようにする必要があるので新しい処理を行います。

以下の手順で行います。
①花火玉の画像をフリーサイトからダウンロードする
②画像をスプライトにしてアクションを設定する
以下のように書きます。

【解説】
まずは、いつものように画面サイズをcc.director.getWinsize()で取得し(弾の発射場所の指定に試用します)、cc.Sprite.create()で画像のスプライトを作ります。
次に、弾が操作キャラクターの前方から発射されるように位置を指定したいため、操作キャラクターの現在の座標を取得します。
この際、x座標はそのままで構いませんがy座標は操作キャラクターの座標の少し前に設定します。(ここでは操作キャラクターの前方30ピクセルに設定しています)
表示する座標を全く同じにすると画像が重なってしまい不格好になってしまうからです。
これで弾の表示までは完成しました。
しかし、このゲームはシューティングゲームなので弾が前方に飛んでいくように設定します。
前回の敵キャラクターの自動生成・移動のように指定した座標へ飛んでいくようにします。

③プレイヤーがタッチする度に弾が発射されるようにする
以下のように書きます。

【解説】
これが今回から登場したタッチ処理です。
このコーディングでは、プレイヤーが画面のどこかをタッチ(もしくはクリック)した際に、先ほどの弾の発射処理関数を呼び出す処理です。
まず、_playerを格納する変数selfを定義します。
そして、cc.EventManager.addListener()によってタッチ処理EventListenerを作成します。
TOUCH_ONE_BY_ONはシングルタッチの読み込み、swallowTouches()はタッチ処理が発生するシーンを現在のシーンに限定することを示しています。
onTouchBegan内に先ほど処理を書いてtrueを解すように設定すれば完成です!

このコーディングを反映させるとこんな感じです!

次回は弾と敵キャラクターの間に衝突判定を作り、互いに衝突したら自壊する処理を作りたいと思います!

画像はこちらのフリーサイトからいただきました!
https://www.ac-illust.com 弾の画像 作者 minokikaku 様

興味を持たれた方はお気軽にお問い合わせください。

インターンシップへの申し込み・お問い合わせ先

インターンシップへの申し込み・お問い合わせ先
メールでのお問い合わせは、下記フォームに入力して送信してください。
ご氏名 (例)山田 太郎
メールアドレス 半角英数字:ご入力間違いのないようにご注意ください
メールアドレス(確認用) 半角英数字:ご入力間違いのないようにご注意ください
電話番号 (例)0354339211 ※ハイフン抜きで入力してください
題名
お問合わせ内容

アーカイブ

カテゴリー