トップダウンの 2D ゲームを書いています。私は 128x128px のタイルセットを使用しており、128、64、32、および 16px の 4 つのズーム レベルを提供しています。画像に slick-utils draw メソッドを使用してレンダリングし、2 次元の FOR ループをループして、ミックスに「レンダリング範囲」を追加して、表示されているものに対して必要な量のタイルのみがレンダリングされるようにします画面上で。遅延は明らかにレンダリング プロセスに起因します。最高のズーム レベルである 128x128 では安定した FPS が得られますが、16x16 ピクセルでは 10FPS まで着実に低下します。これはコードの効率性の問題だと確信していますが、初心者としてどこから始めればよいかわかりません。
すべての助けに感謝します、ありがとう!
コード:
for(int x=xPos-1;x<=xPos+renderRange;x++){
for(int y=yPos-1;y<=yPos+renderRange;y++){
/**Render Terrain*/
Image texture = getTerrainTexture(map.tiles[x][y]);
texture.rotate(map.tiles[x][y].imageRotate);
texture.draw(x*128,y*128);
/**Render Objects*/
if(map.tiles[x][y].object != 0){
Image object = getObjectTexture(map.tiles[x][y]);
object.draw(x*128,y*128);
}
}
}