CocosCreator でカメラトラッキングに cc.follow を使用する方法

CocosCreator でカメラトラッキングに cc.follow を使用する方法

Cocos Creator バージョン: 2.3.4

デモのダウンロード: https://files-cdn.cnblogs.com/files/gamedaybyday/cocos2.3.4_ccfollow.7z

まず、cocoscreator に付属するフォロー コード cc.follow を使用しましょう。

CC.Followの使用

1. マップアダプタコンテナのleftNodeを設定する

これは水平パルクールゲームだとしましょう。マップのサイズは 1500x1500 なので、leftNode の高さと幅は 1500x1500 になり、ウィジェットは左下に配置されます。

2. マップコンテナマップを設定する

マップコンテナも 1500x1500 です。leftNode との違いは、アダプタコンポーネントウィジェットがないことです。ウィジェットを使用すると、マップを移動することはできません。このため、画面に適応するために leftNode の追加レイヤーが使用されます。

マップには役割があります。 (通常のcc.Buttonボタン)

地図の端を識別するために、地図の周囲に赤いボタンがあります。

Follow.ts コンポーネントをマップ コンテナーに追加し、ターゲット ロールを Role に設定します。ロールはボタン cc.Button であり、ここでは移動ロールとして扱います。

Follow.ts のコードは次のとおりです。

const {ccclass、プロパティ} = cc._decorator;
 
@ccクラス
デフォルトクラスFollowをエクスポートし、cc.Componentを拡張します。
 
    @property(cc.Node)
    ターゲット:cc.Node = null;
 
    始める () {
        var follow = cc.follow(this.target, cc.rect(0,0, 1500,1500));
        this.node.runAction(フォロー);
    }
}

3. 仮想ジョイスティックでキャラクターの動きをコントロール

仮想ジョイスティックリファレンス: https://www.cnblogs.com/gamedaybyday/p/13061387.html

知らなくても問題ありません。他の方法でキャラクターの動きを制御し、キャラクターの x と y を変更できれば問題ありません。

4. 実際の実証効果

キャラクターが移動すると、「カメラ」が自動的にキャラクターを追い、赤いボタンが配置されている境界を超えない 1500 x 1500 の範囲に制限されていることがわかります。

CC.Followのソースコード

ソースコードはCC.Action.jsにあります

上記は、CocosCreator でカメラ フォローに cc.follow を使用する方法の詳細です。CocosCreator でのカメラ フォローの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Unity3Dはカメラレンズの動きを実現し、角度を制限する
  • CocosCreatorで複数のタイマーを使用する方法の詳細な説明
  • CocosCreator 学習モジュールスクリプト
  • CocosCreator で物理エンジン ジョイントを使用する方法
  • CocosCreatorでJSZip圧縮を使用する方法
  • CocosCreator 入門チュートリアル: TS で初めてのゲームを作る
  • CocosCreator ソースコードの解釈: エンジンの起動とメインループ
  • CocosCreator 一般的なフレームワーク設計リソース管理
  • CocosCreatorでリストを作成する方法
  • CocosCreator で http と WebSocket を使用する方法
  • CocosCreator の新しいリソース管理システムの分析

<<:  SQL 文における複合主キーと結合主キーに関する予備的研究

>>:  Centos 7.4 サーバーの時刻同期設定方法 [NTP サービスに基づく]

推薦する

Vueはechartsに基づいて3次元の縦棒グラフを実装します

3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィッ...

CSS 配送先住所平行四辺形線スタイルの例コード

コードは次のようになります。 // 配送先住所の平行四辺形の線のスタイル <view clas...

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...

Linuxのアラーム機能の例の説明

Linuxアラーム機能の紹介上記のコード: #include <stdio.h> #in...

JavaScriptの無限ループを検出して防止する方法の詳細な説明

目次序文for文の無限ループを修正while文の無限ループを修正要約する序文Js デッド ループはど...

Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...

透明な入力ボックスにアイコンを追加する HTML コード

最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...

Linux Zabbixカスタム監視およびアラーム実装プロセスの分析

ターゲットzabbix フロントエンド監視の iostat コマンドでデータの 1 つを表示します。...

Windows で IP アドレスを指定してサーバーへのリモート アクセスを設定する方法

当社には、外部ネットワークからの干渉を受けることが多いサーバーが多数あります。侵入者はポート 338...

Linux で毎日データベースの自動バックアップを設定する方法

この記事では、Centos7.6 システムと Oracle11g を例に挙げます。 1. まずデータ...

MySQLのイベントスケジューラEVENTを理解する

MySQL のイベント スケジューラ EVENT は、Unix crontab や Windows ...

HTML iframe 使用状況の概要の収集

Iframe 使用状況の詳細な分析<iframe frameborder=0 width=17...

データベース接続プール Druid の使用手順

総合的なパフォーマンス、信頼性、安定性、スケーラビリティ、使いやすさなどの要素に基づいて、最適なデー...

CSS フレックスベースのテキストオーバーフロー問題の解決方法

重要でないflex-basisテキストオーバーフローに省略記号を追加するという小さな機能に多くの問題...

MySQLインデックスとは何ですか?わからない場合は聞いてください

目次概要二分木からB+木へクラスター化インデックス非クラスター化インデックスジョイントインデックスと...