最初に遊べる部分を読み込む
アセットは必要になる時期が早い順にまとめます。タイトルと最初のシーン、次のレベル、その後に必要となる任意の演出や装飾です。開始操作を有効にする前に、最初のグループを読み込んで検証します。急なシーン切り替えで使う画像は、HTMLImageElement.decode() がデコード完了後に解決するため、次の描画がデコード待ちにならずに切り替えられます。
必要な 1 つのイメージを遅延させ、別のイメージを失敗させることにより、制約された接続でテストします。進行状況インジケーターは指定された作業が完了した場合にのみ進む必要があり、失敗したアセットは回復可能なメッセージまたはフォールバックを生成する必要があり、開始コントロールは必要な依存関係が欠落している間は再生可能なシーンを約束するべきではありません。
進捗を正直に保つ
一連のタスクがわかっている場合は、全体のうち完了したタスクを表示するか、最初のレベルの準備などのフェーズを報告します。バイトベースのパーセンテージは、関連するサイズがわかっている場合にのみ意味を持ちます。転送の完了後、デコード、オーディオのセットアップ、および手続きの初期化に時間がかかる場合があります。
後で到着する可能性のあるアセットのためにインターフェイス全体をブロックしないでください。オプションのアートには低コストのプレースホルダーを使用し、デコードされたイメージの準備ができたら置き換えます。プレースホルダーが意図したキャンバス サイズで判読可能な状態を維持していること、およびオプションのダウンロードが失敗してもプレーヤーが読み込み状態で停止していないことを確認します。
ブラウザゲームアセットの読み込みについての質問
すべてのアセットをプリロードすることは良い考えですか?
通常、デフォルトではありません。最初のプレイ可能な瞬間に必要なものをロードし、それがいつ使用されるか、必要なメモリ量に基づいて他の作業をスケジュールします。
画像の読み込みイベントは、スムーズな描画の準備ができていることを意味しますか?
画像データが利用可能になっても、デコード処理が表示に影響する場合があります。MDNによると、decode() は画像のデコードが完了し、安全に追加できる状態になると解決するPromiseです。この違いがシーンで重要かどうかを測定してください。
関連情報
古い情報を見つけましたか? 訂正を連絡