Html5でショートゲームを作っています。ヒーローの選択を行うための最良の方法を見つけようとしています。
基本的に113人のヒーローがいます。各ヒーロー画像が 120x120 である 1320x1320 のスプライトシートを作成しました。最初の写真は、実際には「クリックしてヒーローを選択」と書かれたボックスです。私の最初の質問は、最初にスプライトシートをロードして最初の画像をロードするため、後で残りのヒーローをロードするときに画像を再ロードする必要がないということです。「heroPics[i].style.backgroundImage = "url(Heroes.jpg)";」を設定しているためです。毎回不安になります。
私にとって2番目の重要な質問です。私がモバイル向けのゲームに取り組んでいたとき、570 の画像をロードすると 1024x1024 のリソースを使用することになり、画像を 512 に作り直して拡大するだけで、負荷を節約できることがわかりました。資力。ここも同じですか?私のイメージは 1320 で、リソースを 2048 として使用しますか? または、画像 120x120 をロードしているので、128 のリソースしか使用していませんか?
では本当の質問に移ります。人が「クリックしてヒーローを選択」をクリックすると、すべてのヒーロー画像が表示されるようにします。彼らがヒーローを選ぶとき、私が作成したばかりのすべての変数と div をガベージしたいのですが、彼らは新しいヒーローをあまり頻繁に選ぶことはないので、ガベージしたほうがよいのではないでしょうか? または、スプライトシートが既に読み込まれているので、代わりに画像を含む div を非表示にするだけの価値がありますか? これらの変数はすべてロードされたままですか?とにかく、それは私の主要な質問の 1 つです。
2つ目は、div内にスクロールバーを動的に作成するにはどうすればよいですか? すべてのプロパティを手動で設定すればできると思いますが、タグを作成してヒーローを検索したいので、現在アクティブに検索されているものに合わせてスクロールバーを調整する必要があります。これに関するアドバイスは大歓迎です.
最後に、最初から半分のサイズで画像を作成する方法はありますか? .style.width = "50%" と height auto を試しましたが、スプライトシート =( であるため機能しません。したがって、webkit を使用して div を縮小しますが、可能であれば別のオプションを使用したいと思います。
ここまで読んでくれてありがとう、そしてすべての質問について申し訳ありません、これが私がこれまで行ったことです:
function selectHero() {
var gg = 1;
var bg = 0;
for (var i = 1; i < 114; i++) {
heroPics[i] = new Image();
heroPics[i].style.backgroundImage = "url(newHeroes.jpg)";
heroPics[i].style.width = "120px";
heroPics[i].style.height = "120px";
heroPics[i].style.backgroundPosition = (-(120 * i)) + "px" + " " + (-((Math.floor(i / 11)) * 120)) + "px";
heroPics[i].style.position = "absolute";
heroPics[i].style.left = -90 + (75 * gg) + "px";
heroPics[i].style.top = -30 + (75 * bg) + "px";
heroPics[i].style.webkitTransform = 'scale(0.6, 0.6)';
heroPics[i].draggable = false;
someDiv.appendChild(heroPics[i]);
//heroPics[i].addEventListener( "click", heroChosen, false );
gg ++;
if(gg > 17) {
gg = 1;
bg ++;
}
}
}
math.floor があまりにも多くのリソースを使用していると聞きました。現在、math.floor を 113 回呼び出しているため、見苦しくても別の解決策を見つける必要がありますか? もう一度ありがとう
編集:
画像のサイズ変更に関する私の最後の質問に対する解決策を見つけました。
background-size = 792px 792px;
css クラスで 1320x1320 を 60% 縮小し、画像サイズを 120 から 72 に変更したところ、うまくいきました。
また、プロパティの大部分を保持するクラスを作成し、必要な場合にのみ JS を使用するという便利なヒントにも感謝します。スクロールバーと他のいくつかのヘルプが必要です!