それで、私はあなたが懐中電灯を持っているこの小さなゲームを作っています. 懐中電灯は非常に高解像度であるため、すべての角度で 360 度のコピーを事前にキャッシュして、リアルタイムで回転させないようにする必要があります。これには多くの計算能力が必要です。画像は 1002x246 の .png ですが、非常にシンプルなので、ハード ドライブで 3.95KB しか占有しません。しかし、ゲーム内で 360 のコピーを作成してリストに追加すると、約 800MB の RAM が必要になります。それはかなり多いです。なんで?どうすれば減らすことができますか?
コード:
def flashlightinit():
init.flashlights = []
fl = files.flashlight
for i in range(360):
init.flashlights.append(pygame.transform.rotate(fl, -i))
懐中電灯の画像は convert() されており、カラーキーやアルファ チャネルはありません。
懐中電灯の表示:
def flashlightupdate(angle):
screen.blit(init.flashlights[angle], (340 - init.flashlights[angle].get_width()/2, 360 - init.flashlights[angle].get_height()/2))
角度は度で、マウスの位置とプレイヤーの位置から計算されます。
ありがとう。