CocosCreatorの共通知識ポイントを整理する

CocosCreatorの共通知識ポイントを整理する

1. シーンの読み込み

  • cc.director.loadScene('シーン名');//シーンジャンプ
  • cc.director.preloadScene('シーン名');//シーンをプリロード
  • cc.director.getScene(); //現在のシーンを取得する

2. ノードを見つける

1. ノード検索

  • node = cc.find("Canvas/bg"); //パスアクセスノードのパフォーマンス消費は比較的大きい
  • this.node.getChildByName('name'); //子ノードを名前で取得するとパフォーマンスが低下します
  • node.getComponent(cc.Label) //ノードのラベル属性値を取得します
  • this.node; //現在のスクリプトノード
  • this.node.parent; //親ノード
  • this.node.getChildByTag(100); //タグで子ノードを取得する
  • cc.find("game/test",this.node); //指定されたノードの下のパスでノードを取得します
  • this.node.children; //すべての子ノードを取得する
  • node.getChildren(); //すべての子ノードを取得する
  • this.node.childrenCount; //子ノードの数を取得する
  • node.getChildrenCount(); //子ノードの数を取得する
  • cc.director.getScene(); //シーンのメインノードを取得する
  • var sprites = this.node.getComponentsInChildren(cc.Label); //指定されたタイプのコンポーネントを、それ自体とすべての子ノード内で再帰的に検索します。

2. その他のノード操作

  • cc.instantiate(node);//ノードを複製
  • this.node.parent = cc.find('Canvas'); //親ノードをバインドする
  • this.node.addChild(nodeName,zIndex,tag); //子ノードを追加します。レベルとタグを設定できます。
  • this.node.removeChild(nodeName); //子ノードを削除
  • this.node.removeChildByTag (nodeTag); //タグで子ノードを削除する
  • this.node.destroy();//ノードを破棄する
  • this.node.isValid; //ノードが利用可能かどうかを判定する
  • this.node.removeChild(newNode); //ノード内の指定された子ノードを削除します
  • this.node.removeChildByTag(100); //タグでノード内の指定された子ノードを削除します
  • this.node.removeAllChildren(); //すべての子ノードを削除します
  • this.node.destroyAllChildren(); //すべての子ノードを破棄する

3. 再生アクションとタイマーを停止する

this.node.cleanup(); //再生中のアクションとタイマーをすべて停止する

3. ノード属性の設定

  • node.getPositionX(); または getPositionY() //X軸またはY軸の座標
  • node.getScaleX(); または getScaleY() //X軸またはY軸のスケーリング
  • node.x = 100; //ノードのx軸座標を設定する
  • node.y = 100; //ノードのy軸座標を設定する
  • node.setPosition(x,y); //ノードの座標を設定する
  • node.rotation = 90; //ノードの回転角度を設定する
  • node.scaleX = 2; //ノードのX軸のスケーリング係数を設定する
  • node.scaleY = 2; //ノードのY軸のスケーリング係数を設定します
  • node.setScale(2); //ノード全体のスケーリング係数を設定する
  • node.width = 100; //ノードの幅を設定する
  • node.height = 100; //ノードの高さを設定する
  • node.setContentSize(100, 100); //ノードの幅と高さを設定する
  • node.anchorX = 1; //ノードのX軸アンカーポイント座標を設定する
  • node.anchorY = 0; //ノードのY軸アンカーポイント座標を設定する
  • node.setAnchorPoint(1, 0); //ノードのアンカーポイント座標を設定する
  • node.opacity = 255; //ノードの透明度を設定します(0-255)
  • node.setOpacity(20); //ノードの透明度を設定(0~255)
  • node.color = new cc.color(100,100,100,255); //ノードの色を設定する(R、G、B、透明度)
  • cc.isValid(this.label.node) //ノードが存在するかどうかを判定する
  • node.active = false; //ノードを閉じる(ノードを非表示にする)

常駐ノード

  • cc.game.addPersistRootNode(myNode); // 永続ノード(グローバル変数)
  • cc.game.removePersistRootNode(myNode); //常駐ノードをキャンセルする

4. ノードアクション

  • cc.show()//すぐに表示
  • cc.hide () //すぐに非表示にする
  • cc.toggleVisibility()//表示と非表示を切り替える
  • cc.fadeIn(1) //フェード効果
  • cc.fadeOut(1) // フェードアウト効果
  • cc.delayTime(1) //1秒間待つ
  • node.runAction(cc.moveTo(1,0,0)); //現在のノードに移動する(時間(秒)、X軸座標、Y軸座標)
  • node.runAction(cc.scaleTo(1,0.7,0.8)); //現在の複数のノードにスケールします (時間 (秒)、X 軸の倍数、Y 軸の倍数)
  • node.runAction(cc.rotateTo(1,160,160)); //指定された角度(時間(秒)、X軸角度、Y軸角度)まで回転します
  • node.runAction(cc.skewTo(1,5,-5)); //ノードの傾きを変更(時間(秒)、X軸の傾き、Y軸の傾き)
  • node.runAction(cc.fadeTo(2,0)); //現在のノードの透明度を変更します(時間(秒)、透明度)
  • node.runAction(cc.tintTo(2,255,255,0)); //現在のノードの色を変更します (time, R, G, B)
  • node.stopAllActions(); //すべてのアクションを停止する
  • var action = cc.moveTo(2, 100, 100); // アクションを作成する (moveTo は移動を意味します)
  • node.runAction(action); // 指定されたアクションを実行する
  • node.stopAction(action); // 指定されたアクションを停止する
  • cc.sequence(action1,action2); // 順番に実行
  • cc.spawn(action1, action2); //同時に実行
  • cc.repeatForever(cc.sequence(action1,action2)); // 繰り返しアクション

5. タイマー

始める() {
        // スケジュールされた開始 // 2秒後に開始 this.scheduleOnce(() => {
            cc.log("スケジュールを1回だけ")
        }, 2)

        // 頻度 + 1 遅延 this.schedule(() => {
            cc.log("スケジュール")
        }, 1, 3, 5)

        // 永久に実行する let one = this.schedule(() => {
            cc.log("スケジュール")
        }, 1, cc.macro.REPEAT_FOREVER, 2)


        // すべてのスケジュールをクリアする this.scheduleOnce(() => {
            cc.log("スケジュールを1回だけ")
            this.unscheduleAllCallbacks()
        }, 5)

        callb = 関数() {
            cc.log("callb")
        }
        this.schedule(callb, 0.5) //デフォルトでは永久に実行されます this.scheduleOnce(() => {
            cc.log("スケジュールを1回だけ")
            this.unschedule(callb)
        }, 2)
    },

6. イベント監視

(開始: 'touchstart'、移動: 'touchmove'、終了: 'touchend'、キャンセル: 'touchcancel')

node.on('touchstart',function(イベント){
	これを何か実行します。
}、これ);
  • event.getID(); //連絡先のIDを取得する
  • event.getLocationX(); //タッチポイントのX座標を取得する
  • event.getLocationY(); //タッチポイントのY座標を取得する
cc.eventManager.addListener({
	イベント: cc.EventListener.KEYBOARD/TOUCH_ONE_BY_ONE,myfunction},self.node);

7. グローバル変数を定義する

window.global = "blobal string"; //グローバル変数はどのスクリプトでも定義できます

ウィンドウ.G = {
	a: ヌル、
	b: ヌル、
};

グローバル変数は、どのスクリプトでもアクセスできます(スクリプトが実行されている場合)。
ガ = 0;
0;

var something = require('something');
cc.game.addPersistRootNode(myNode); //永続ノード。階層のルートノードに配置する必要があります。module.exports = {
     設定: 123
}

8. 解決

デバイスの解像度を取得する

  • var 機器 = cc.director.getWinSizeInPixels()
  • var 機器W = 機器.幅
  • var 機器H = 機器.高さ
  • cc.view.getCanvasSize().width; //デバイス解像度の幅を取得します
  • cc.view.getCanvasSize().height; //デバイスの解像度の高さを取得します
  • cc.director.setDisplayStats(true);//フレーム情報を表示

9. オーディオコントロール

cc.audioEngine.playMusic(this.BGAudio,true);//音楽を再生(trueループ)
cc.audioEngine.stopMusic()//再生を停止
cc.audioEngine.playEffect(this.ClickAudio,false);//サウンド効果を再生します (false は 1 回のみ再生することを意味します)
cc.audioEngine.stopEffect(サウンド効果変数名); // 指定したサウンド効果を停止します (サウンド効果は最初に変数に割り当てる必要があります)
cc.audioEngine.AllEffects(); //すべてのサウンド効果を停止します
cc.audioEngine.setMusicVolume(parameter); //バックグラウンドミュージックの音量を設定します(範囲は0~1)
cc.audioEngine.setEffectsVolume(parameters); //サウンド効果の音量を設定します(範囲は0〜1)

10. 装備の判断

  • cc.sys.isNative // ローカルですか?
  • cc.sys.isBrowser //Web ページですか?
  • cc.sys.isMobile // モバイル システムですか?
  • cc.sys.platform //実行中のプラットフォーム
  • cc.sys.language //現在実行中のシステムの言語
  • cc.sys.os //現在実行中のシステム
  • cc.sys.OS_IOS //IOS システムですか?
  • cc.sys.OS_ANDROID // Android システムですか?
  • cc.sys.OS_WINDOWS // Windows システムですか?
  • cc.sys.openURL('Http://www.baidu.com'); //Webページを開く

11. イベントのリスニングと発行

  • this.node.pauseSystemEvents(true);//ノードのシステムイベントを一時停止する
  • this.node.resumeSystemEvents(true);//ノードのシステムイベントを再開する
  • this.node.targetOff(this); //登録されたすべてのイベントを削除する

1. タッチモニタリング

「タッチスタート」を起動し、
'touchmove' を移動します。
終了 'touchend'、
キャンセル 'touchcancel'

  • var pos = event.getLocation(); //タッチポイントの座標(XとYを含む)を取得します
  • var x = event.getLocationX(); //タッチポイントのX座標を取得する
  • var y = event.getLocationY(); //タッチポイントのY座標を取得する
  • var a = event.getID(); //連絡先のIDを取得する

2. マウスのモニタリング

マウスダウン「mousedown」、
ノード「mouseenter」に移動し、
ノード「mousemove」内を移動します。
ノード「mouseleave」を削除します。
「マウスを離す」マウスアップ

  • event.getScrollY(); //スクロールホイールのY軸距離を取得します。スクロール時のみ有効です。
  • event.getLocation(); //x属性とy属性を含むマウス位置オブジェクトを取得します

3. 入力ボックスの監視

フォーカスを取得 'editing-did-began'、
テキストの変更 'text-changed'、
フォーカスが失われました '編集-終了-'、
「編集-戻る」を押してください

4. プロパティ変更監視

位置「位置変更」、
幅と高さの「サイズ変更」、
回転変更、
「スケール変更」

5. ScrollViewコントロールの監視

「スクロール」、
スクロールを停止します 'scroll-ended'

6. ユーザー定義イベント

リスニング: this.node.on("custom event name", function(target), this);

  • this.node.on('イベント名',function,this);//リスナーを登録
  • this.node.emit('イベント名'); // 監視ブロードキャストを送信
  • this.node.off('イベント名',function,this);//監視を終了する

セルフ配信: 送信("イベント名", [詳細]); あなただけが受信できます

onLoad: 関数 () {
        // 受信者 // イベント タイプ (カスタム文字列)。
        // コールバック関数: function(e) {} e--> cc.Event.EventCustom インスタンス this.node.on("pkg_event", function (e) {
            console.log("pkg_event", e);
        }、 これ);
        // ディスパッチャはそれを自分自身に渡すことしかできず、上方に渡すことはできません。 this.node.emit("pkg_event", { name: "hanbao" });
    },

バブル配信: dispatchEvent(new cc.Event.EventCustom("name", バブル配信するかどうか));

onLoad: 関数 () {
        // 受信者 // イベント タイプ (カスタム文字列)。
        // コールバック関数: function(e) {} e--> cc.Event.EventCustom インスタンス this.node.on("pkg_event", function (e) {
            console.log("pkg_event", e.detail);
        }、 これ);
    },
    開始: 関数 () {
        this.node.emit("pkg_event", { name: "hanbao" }); //これは自分自身に一度ディスパッチされます// //これはグローバル システムにディスパッチされます。
        // true/false、true は上位に渡され、false は上位に渡されません var e = new cc.Event.EventCustom("pkg_event", true);
        e.detail = { 名前: "haobao" };
        this.node.dispatchEvent(e);  
    },

補充:

  • cc.director.pause();//一時停止
  • cc.director.resume();//続行
  • cc.director.end();//アプリケーション全体を終了します
  • node.getLocalZOrder(); //レベル取​​得
  • node.setLocalZOrder(1); //レベル変更
  • cc.find('canvas/map' + num) //変数を使ってパスを読み取る

上記は、CocosCreatorのよく使われる知識ポイントの詳細な内容です。CocosCreatorの知識ポイントの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

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

<<:  Linux での MySQL 5.7.19 のインストールに関する問題の概要

>>:  Linux mpstat コマンドの使用方法の詳細な説明

推薦する

Vue ElementUI は非同期読み込みツリーを実装します

この記事の例では、vue ElementUI の非同期読み込みツリーを実装するための具体的なコードを...

Vue を使用して 2 つのデータ セットの違いを比較する視覚化コンポーネントの詳細な説明

目次必要:要点:これまでの要点に従って、コンポーネントのプロパティを確立できます。コンポーネントの基...

MySQL空間関数を使用してロケーションパンチインを実装するための完全な手順

序文プロジェクトの要件は、ユーザーの現在の位置が特定の地理的位置範囲内にあるかどうかを判断することで...

MySQL における悲観的ロックと楽観的ロック

リレーショナル データベースでは、悲観的ロックと楽観的ロックがリソース同時実行シナリオのソリューショ...

JavaScript データ型の詳細な説明

目次1. リテラル1.1 数値リテラル1.2 浮動小数点リテラル1.3 特別な値1.4 文字列リテラ...

dl、dt、dd リスト ラベルの例

dd タグと dt タグはリストに使用されます。通常は <ul><li> タ...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

JavaScript配列重複排除の詳細な説明

目次1. アレイ重複排除2. 配列内のオブジェクトの重複排除3. 配列内の同じフィールドに基づいて別...

HTML Webページ作成チュートリアル iframeタグを慎重に使用してください

iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...

ReactのuseEffectクロージャの落とし穴についての簡単な説明

問題コードuseEffectによって発生したクロージャの問題コードを見てみましょう 定数 btn =...

MySQL でテーブル メタデータ ロックを待機する理由と方法

MySQL が alter table などの DDL 操作を実行すると、テーブル メタデータ ロッ...

MySQLクエリの冗長インデックスと未使用のインデックス操作

MySQL 5.7 以降のバージョンでは、冗長インデックス、重複インデックス、およびインデックスを使...

MySQL の結合クエリとサブクエリの問題

目次複数テーブル結合の基本構文クロス結合と直積現象クロスコネクトデカルト積現象内部結合外部結合左外部...

MySQL 8の新機能である降順インデックスの基礎となる実装の詳細な説明

降順インデックスとは何ですか?インデックスについてはよくご存知かもしれませんが、降順インデックスにつ...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...