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 タイムゾーンの罠を回避する方法

推薦する

mysql explain(分析インデックス)の使い方の詳しい説明

EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...

docker windows10共有ディレクトリのマウント失敗の解決策

原因docker スクリプトを実行すると、コンテナを作成できないというエラーが発生します。以下のよう...

Tomcat 例外の解決方法 (リクエスト ターゲットに無効な文字が見つかりました。有効な文字は RFC 7230 および RFC 3986 で定義されています)

1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...

Reactはconetxtを通じてマルチコンポーネント値転送関数を実装します

この関数の効果はvue的provide/injectに似ています。 contextを通じて反応できる...

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...

CSS background-blend-modeの仕組みを深く理解する

この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...

Maven で tomcat8-maven-plugin プラグインを使用する詳細なチュートリアル

オンラインで多くの記事を検索しましたが、解決策は見つかりませんでした。次のように、tomcat7-m...

データベース管理に役立つ 5 つの MySQL GUI ツール

MySQL には多くのデータベース管理ツールがあります。作業効率の向上に役立つ優れた GUI ツール...

MySQLメモリストレージエンジンに関する知識

メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...

VUEのデータプロキシとイベントの詳細な説明

目次Object.defineProperty メソッドのレビューデータブローカーとは何ですか? V...

XML構文の詳細な説明

1. 文書化ルール1. 大文字と小文字が区別されます。 2. 属性値は引用符(一重引用符または二重引...

新しいユーザーを作成し、MySQLに権限を付与する最も簡単な方法

ユーザーを作成します: 'oukele' によって識別されるユーザー 'ou...

DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

Docker プライベートイメージライブラリDockerプライベートイメージライブラリとAlibab...

HTML ul および li タグを使用して画像を表示するサンプル コード

以下のコードをDreamweaverのコードエリアにコピーすると、プレビュー時に以下の画像が表示され...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...