0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゲーム開発で使用したテクニック~画像読み込み~

Posted at

個人でゲーム開発をしている中で、実装に苦労した部分が多かったので、テクニックとして紹介していこうと思います。

今回は「画像読み込み」について書きます。

問題点

gifアニメーションを実行しようと思ったのですが、標準では無理でした。
そこでgifを複数の画像に分割し、それを順番に表示しようと思いました。
しかし実装してみると激重で、改善が必要でした。

改善

# 高速化
self.IMG = self.IMG.convert()
for i in range(0, 120, 1):
    self.IMG_LIST[i] = self.IMG_LIST[i].convert_alpha()

clock = pg3.time.Clock()

# GIF画像をアニメーションさせる
for i in range(len(self.IMG_LIST)):
    self.screen.blit(self.IMG, self.INIT_POS)
    self.screen.blit(self.IMG_LIST[i], (400, 350))
    pg3.display.update()
    clock.tick(90)

「self.IMG」には背景画像が入っています。
「self.IMG_LIST」が分割したGIF画像です。
最初は画像をロードしてfor文の処理を実行していました。
しかしながら、画像をロードしただけでは内部的に未変換という状態らしく、描画時に変換処理が走るということがわかりました。
なので、変換処理を予め実行するように、「convert」「convert_alpha」を利用しました。
「convert_alpha」は透過画像を利用する際に使うようです。
これだけで劇的にアニメーションが速くなりました。

「画像読み込み」に関しては以上となります。

リリース済みのゲームはこちら

・PC向け無料ゲーム
『LAbyrinth』(2Dの迷路探索ゲーム)
●Freem!
https://www.freem.ne.jp/win/game/33791
●Unityroom
https://unityroom.com/games/2025-labyrinth-isukaka

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?