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 のページングクエリ例の分析

推薦する

Vueはミックスインを使用してコンポーネントを最適化します

目次ミックスインの実装フック関数のマージプロジェクト実践伸ばす要約するVue は mixins AP...

ローカルで起動したときに Vue プロジェクトがクッキーを保持できない問題を解決する

vueプロジェクトをパッケージ化してサーバーにデプロイし、正常にログインできるが、ローカルで起動する...

シンプルなカルーセル効果を実現するJavaScript

カルーセルとは何ですか?カルーセル: モジュールまたはウィンドウで、コンピューターでマウスをクリック...

ページのレンダリング時間を短縮してページの実行速度を速めます

ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...

ウィンドウとLinuxプロジェクトを展開する際のLinuxファイルパスに問題はありません

長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...

docker run後、ステータスは常にExitedになります

追加するdocker run -it -name test -d nginx:latest /bin...

HTML+CSSで充電水滴融合特殊効果コードを実現

目次序文:成し遂げる:要約:まず効果を見てみましょう: 序文:このアイデアは、Bilibili のア...

検証コードケースのJavaScript実装

この記事では、検証コードの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Nginx のパラメータをオンにして Web パフォーマンスを 3 倍向上させる方法

1. 遭遇したいくつかの問題2008 年にパフォーマンス テストを行っていたとき、パフォーマンス テ...

知らないかもしれないmysqldumpパラメータ

前回の記事で、mysqldump バックアップ ファイルに記録されるタイムスタンプ データは UTC...

XHTML 入門チュートリアル: XHTML タグ

XHTML タグの紹介<br />おそらく、前のセクションで、XHTML ファイルと通常...

JavaScript でのプロキシの使用を理解するための記事

目次エージェントとは何かプロキシの基礎知識ハンドラオブジェクトのメソッドプロキシでできること参考文献...

Docker Compose ワンクリック ELK デプロイ方式の実装

インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...

ウェブアニメーションのフレームレートFPSを計算する方法

目次スムーズなアニメーションの基準方法1: Chromeデベロッパーツールを使用する方法 2: フレ...

MySQL データベースの最適化: テーブルとデータベースのシャーディング操作の詳細な説明

この記事では、例を使用して、MySQL データベースの最適化のためのテーブルおよびデータベース シャ...