HTML5ゲーム用のリソースマネージャーが必要ですか?


7

通常、デスクトップ/モバイルゲームにはリソースマネージャーが必要です。しかし、HTML5(ブラウザ)ゲームには必要ですか?

リソースマネージャーの主な役割は、メモリ内にリソースのクローンがないことを確認することです。しかしブラウザでは、何かをリクエストすると、リクエストは通常​​キャッシュされます。したがって、同じリソースに対して別のリクエストを行うと、リソースは読み込まれなくなります。あなたはすぐにそれを得ます。(CMIIW)。

では、html5ブラウザーゲーム用のリソースマネージャーが必要ですか?

ありがとう。

回答:


6

メモリに合理的に格納できる範囲を超えない限り、高度なリソースマネージャは必要ありません。これはデスクトップゲームにも当てはまります。ほとんどの「小さな」ゲームは、起動時にすべてをメモリにロードするだけで済むので、必要なときにそこにあります。

HTMLとJavaScriptでは、同じ方法でリソースを直接制御することはできません。ブラウザには、組み込みのリソースマネージャが機能しています。ただし、起動時にすべてのイメージをロードし、使用していないときにアンロードされないようにするために、少し手助けすることをお勧めします。

この目的のために、画像要素の束を作成し、必要な画像をそれらに添付することができます。これにより、画像が読み込まれ、メモリに残ります。それらをドキュメントに添付する必要すらありません。それらはスクリプト内の仮想エンティティとして単に存在することができます。

これが私が書いたゲームのロード部分です。説明された方法で27枚の画像を読み込み、それらがすべてドキュメントの本文と一緒に読み込まれているかどうかを継続的にチェックし、読み込みがどこまで進んだかを示すカウンターをユーザーに表示し、最後にすべてのアセットが表示されたときにメニューをレンダリングする関数を呼び出しますロードされました。

<body onload="bodyloaded=1">
<div id='maindivid'>
<p id='loadtext' style='text-align:center;'>
Loading 0/28
</p>
</div>
<script type="text/javascript">
bodyloaded=0
prlimg=new Array
for(a=0;3>a;a++){
prlimg[a]=new Array
for(b=0;3>b;b++){
prlimg[a][b]=new Array
for(c=0;3>c;c++){
    prlimg[a][b][c] = new Image
    prlimg[a][b][c].src = a+(b+(c+".png"))
}
}
}
function updateload(){
    elementsloaded=bodyloaded
    for(a=0;3>a;a++){
    for(b=0;3>b;b++){
    for(c=0;3>c;c++){
        elementsloaded+=prlimg[a][b][c].complete
    }
    }
    }
    document.getElementById('loadtext').innerHTML="Loading "+elementsloaded+"/28"
    if(elementsloaded==28){menu()}
    else{setTimeout("updateload()",100)}
}
updateload()
</script>
//Further code goes here
</body>

実際のコードをご覧ください

もう一度見てみると、別の方法で実行できたこともいくつかありますが、機能を実証するにはそれで十分です。


おかげで、とにかくリソースマネージャーが必要なことがわかりました。あなたがしたように行うことに加えて、私のリソースはそれが使用できるようになる前にいくつかの初期化を必要とします。たとえば、webglのシェーダー。リソースが初期化を必要とする場合、ブラウザだけに依存することはできません。
eckyputrady 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.