CocosCreatorを使ってシューティングゲームを作る方法

CocosCreatorを使ってシューティングゲームを作る方法

製造手順を分析します。

1. リソースを準備してシーンを構築する

オンラインでリソースを探すか、私のリソースを使用できます。フォルダーを作成し、リソースを res フォルダーに配置します。

シーンを構築する:
ステップ 1: 単色のスプライト (スクリプト) 背景を作成し、色を設定して、ウィジェット コンポーネントを追加して画面全体に表示します。

ステップ 2: bgノードの下の上部と下部として、 topbutton空ノードを作成し、2 つの空ノードにトゲのあるノードを追加します (画像を最上位階層マネージャーにドラッグするだけです)。次にtop與button Layout組件を追加し、図に示すようにプロパティを設定する必要があります。このようにして、画面の上部と下部にトゲがあることがわかります。

ステップ 3: 同じ方法でプレイヤー、弾丸、敵機をシーンに追加し、スコアを表示するラベル ノードを作成し、位置を調整します。

2. コードがゲームを制御する

ステップ 1: gameスクリプトを作成し、 dgノードにマウントします。

ステップ 2: コードを編集し、 propertiesにプロパティを追加して、プレーヤー、弾丸、敵のノードを関連付け、エディターで関連付けます。

ステップ 3: プレイヤー、弾丸、敵の初期化、監視イベントの登録、アクション関数の記述、スコアリング判定などを含むロジック制御をコーディングします。

完全なコード:

cc.クラス({
    拡張: cc.Component、

    プロパティ:
        プレイヤーノード: cc.Node,
        敵ノード: cc.Node,
        ファイアノード: cc.Node,
        スコアノード: cc.Label、
    },
    
     オンロード(){
        これを再生ロードします。
        this.fireLoad();
        this.enemyLoad();
         this.node.on("touchstart",this.fire,this);
         
     },

     更新 (dt) {
          (Math.abs(this.fireNode.y-this.enemyNode.y)<(this.fireNode.height/3+this.enemyNode.height/3) の場合
            &&Math.abs(this.fireNode.x-this.enemyNode.x)<(this.fireNode.width/3+this.enemyNode.width/3)){
              console.log("敵機を撃破");
              this.scoreNode.string= ++this.score; // ヒットスコア this.fireNode.stopAction(this.fireAction);
            this.enemyNode.stopAction(this.enemyAction);
            this.enemyNode.active=false;
            this.fireNode.active=false;
            this.fireLoad();//弾丸を初期化します this.enemyLoad();//敵機を初期化します}

     },

     // イベントリスニングを閉じる onDestroy(){
        this.node.off("touchstart",this.fire,this);
     },
    // 初期プレーヤー playLoad(){
        this.score=0;
        this.playerNode.y=-cc.winSize.height/4;
        
    },
    //弾丸を初期化する fireLoad(){
        アクティブノードを true に設定します。
        this.isFire=false;
        this.fireNode.x = this.playerNode.x;
        this.fireNode.y=this.playerNode.y+this.playerNode.height;
    },
    // 敵を初期化するenemyLoad(){
        this.enemyNode.active=true;
        this.enemyNode.x=Math.random()* cc.winSize.width;
        this.enemyNode.y=cc.winSize.height/3;
        x = cc.winSize.width/2 - this.enemyNode.width/2 とします。
        y=Math.random()* cc.winSize.height/4 とします。
        seq=cc.repeatForever(cc.sequence(cc.moveTo(1.5,cc.v2(-x,y)),cc.moveTo(1.5,cc.v2(x,y)))); とします。
        
        this.enemyAction = this.enemyNode.runAction (seq);
    },
    // 死んだらゲームをリロードする dear(){
        console.log("死");
        cc.director.loadScene("ゲームシーン");
    },


    // 弾丸を発射する fire(){
         if(this.isFire) 戻り値:
         this.isFire=true;
        console.log("起動を開始します");
         var fireaction = cc.sequence(
             cc.moveTo(1,cc.v2(this.playerNode.x,cc.winSize.height/2))、
             cc.callFunc(()=>{
                this.dear();
            }));
        this.fireAction は this.fireNode.runAction(fireaction);
        console.log("起動終了");
     }

});

最終結果

上記は、CocosCreatorを使用してシューティングゲームを実現する方法の詳細です。CocosCreatorを使用してシューティングゲームを実現する方法の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • cocoscreatorプレハブの詳しい説明
  • CocosCreator でレイヤー管理に常駐ノードを使用する方法
  • ゲーム開発におけるサウンド処理にCocosCreatorを使用する方法
  • CocosCreator ScrollView 最適化シリーズ: フレーム読み込み
  • CocosCreatorプロジェクト構造の仕組みの詳細な説明
  • CocosCreatorオブジェクトプールの使い方
  • CocosCreatorでスワイプした位置にテクスチャを表示する方法
  • CocosCreatorの共通知識ポイントを整理する
  • CocosCreatorのホットアップデートの包括的な説明
  • CocosCreator クラシック エントリー プロジェクト flappybird
  • CocosCreator ユニバーサルフレームワークデザインネットワーク
  • CocosCreatorでゲームコントローラーを使用する方法

<<:  Nginx try_files ディレクティブの使用例

>>:  MySQL で URL タイムゾーンの罠を回避する方法

推薦する

IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

問題: IIS を通じて公開された Web サイトは F5 デバイスの背後に配置されています。透過的...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

MySQL開発標準と使用スキルの概要

1. 命名規則1. データベース名、テーブル名、フィールド名には小文字を使用し、アンダースコアで区切...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

MySQL インデックスの種類 (通常、ユニーク、フルテキスト) の説明

MySQL のインデックスの種類には、通常のインデックス、一意のインデックス、全文インデックスがあり...

JavaScriptでページスクロールアニメーションを実装する

目次レイアウトを作成するCSSスタイルを追加するJavaScript で要素を操作する対象要素を取得...

Docker+Selenium Grid に基づく技術アプリケーションをテストするためのサンプル コード

Selenium Grid の紹介Selenium Grid のいくつかの新しい機能は、今後リリース...

Centos6.5 でのスーパーバイザーのアップグレード、インストール、および構成に関するチュートリアル

スーパーバイザー紹介Supervisor は、Python で開発されたクライアント/サーバー サー...

JavaScript クリップボードの使用法の詳細な説明

(1)はじめに: clipboard.js は、テキストをクリップボードにコピーする機能を実装する軽...

CSS3 フレックスボックス自動記入の書き方を詳しく解説

この記事では、主に CSS3 フレックス エラスティック ボックスの自動塗りつぶしの書き方について詳...

Docker コンテナのマウントディレクトリ操作の表示

Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...

MySQL インジェクションにおける outfile、dumpfile、load_file 関数の詳細な説明

SQL インジェクション脆弱性を悪用する後期段階では、MySQL のファイル シリーズ関数を使用して...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

MySQLトリガートリガー例の詳細な説明

目次トリガーとは何かトリガーを作成する表は次のようになります。さらにいくつかの単語を挙げます。制限と...