CocosCreatorでJSZip圧縮を使用する方法

CocosCreatorでJSZip圧縮を使用する方法

CocosCreator バージョン: 2.4.2

jszipの実践的なプロジェクトアプリケーション

ゲーム内に多くの設定がある場合、ファイルは非常に大きくなるため、一部のゲームではzipパッケージの圧縮と解凍を使用します。

例えば、次のゲームでは、ゲーム設定config.jsonをzipパッケージに圧縮し、ロード後に解凍して使用します。

設定の圧縮パッケージを取得する

.binを.zipに変更し、解凍して、ゲームのすべてのjson設定ファイルを取得します。

圧縮前6M以上

圧縮されたファイルは 500KB 以上で、約 10 分の 1 の大きさになります。

Cocos で jszip を使用する

まず、githubからjszipライブラリをダウンロードします

https://github.com/Stuk/jszip

ダウンロードした jszip.min.js をプロジェクトのアセット/ライブラリに配置し、jszip.d.ts をプロジェクトのルート ディレクトリの libs に配置します。 (jszip.d.ts はデモ版です)

ゲームの設定ファイル、複数のjsonファイルをzipパッケージに圧縮し、サフィックスのzipをbinに変更して、resources/configの下に置きます。

コード内のbinファイルを読み込み、解析してゲームアイテム構成GameItem.jsonを取得します。

const {ccclass、プロパティ} = cc._decorator;
 
@ccクラス
デフォルトクラスHelloworldをエクスポートし、cc.Componentを拡張します。
 
    オンロード(){
        //config.bin をロード
        cc.resources.load("config/config", (err, アセット:any)=>{
            // JSZip.loadAsync(assets._buffer).then((zip)=>{ を解析します
                //GameItem.json 構成を取得します zip.file("GameItem.json").async("text").then((data)=>{
                    コンソールにログ出力します。
                    // 文字列を JSON 形式に変換します。let json = JSON.parse(data);
                    コンソールにログ出力します。
                })
            });
       })
    }
}

読み込みと解析に成功しました。出力

上記は、CocosCreator で JSZip 圧縮を使用する方法の詳細です。CocosCreator JSZip 圧縮の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

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

<<:  Docker での環境変数の使用とよくある問題の解決策

>>:  MySQL、Oracle、SQL Server のページングクエリ例の分析

推薦する

JavaScript の非同期処理で待機時間を節約できますか?

JavaScriptで非同期実行の結果を同期的に取得するには、 for ループ内でawaitを使用...

vue3.0 プロジェクトを素早く構築するための手順を完了する

目次1. 3.0をより適切にサポートするには、vue/cliのバージョンが4.5.0以上であることを...

Vue フィルター、ライフサイクル関数、vue-resource の簡単な紹介

1. フィルター例: <!DOCTYPE html> <html lang=&qu...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

Dockerコンテナを使用してホストネットワークにアクセスする方法

最近、nginx をリバース プロキシとして使用し、docker で nginx を実行するシステム...

MySQL IN ステートメントにおける低速クエリの効率を最適化する手法の例

表の構造は以下のとおりです。記事数は690件のみです。 記事テーブル article(id,titl...

Reactイベントメカニズムソースコード分析

目次原理ソースコード分析委任されたイベントバインディングすべてのサポートされているイベントを聴くネイ...

HTML 選択タグにおける単一選択と複数選択の詳細な説明

select 要素は、単一選択または複数選択のメニューを作成します。フォームが送信されると、ブラウザ...

MySQL では SQL ステートメントはどのように実行されますか?

目次1. MySQLアーキテクチャの分析1.1 コネクタ1.2 クエリキャッシュ1.3 アナライザー...

MySQLクエリ文の実行プロセスを理解するための記事

序文要件を満たす特定のデータをデータベースから取得する必要があります。Select ABC FROM...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...

HTML テーブルタグチュートリアル (17): テーブルタイトルの垂直配置属性 VALIGN

表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...