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 のインストール方法と設定に関するいくつかの問題の概要

1. MySQL rpm パッケージのインストール # インストールソースをダウンロードします [r...

Navicat 経由で MySQL にリモート接続する方法

Navicat を使用して IP 経由で直接接続すると、次のようなさまざまなエラーが報告されます: ...

モバイルアダプティブスタイルで@mediaを使用する方法

一般的な携帯電話のスタイル: @media all および (orientation : 縦向き) ...

DIV共通属性コレクション

1. 物件リストコードをコピーコードは次のとおりです。色: #999999 テキスト色フォントファミ...

MySQLのSeconds_Behind_Masterの詳細な説明

目次マスターの後ろの秒数オリジナルの実装最終マスタータイムスタンプマスターとのクロック差他の実行時間...

スーパーバイザーウォッチドッグの使い方を3分で学ぶ

ソフトウェアとハ​​ードウェア環境centos7.6.1810 64ビット cat /etc/red...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...

MySQLを使用して列内の異なる値の数をカウントする例

序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...

Alibaba Cloud ESC サーバー シングルノード MySQL の Docker デプロイメント

1. msyqlの高速バージョンをダウンロードする docker pull hub.c.163.co...

1つの記事でJavaScript DOM操作の基本を学ぶ

DOM の概念DOM: ドキュメント オブジェクト モデル: ドキュメント オブジェクト モデルは、...

jsの継承の6つの方法を詳しく解説

プロトタイプチェーン継承プロトタイプ継承は、ECMAScript における主な継承方法です。基本的な...

Docker コンテナのカスタム ホストのネットワーク アクセス操作

docker-compose.yml に extra_hosts キーワードを追加すると、コンテナの...

MySQL データベース トランザクション例のチュートリアル

目次1. トランザクションとは何ですか? 2. トランザクションに関連するステートメントは、挿入、削...