Saya sedang mengerjakan sidescroller 2d di PyGame. Untuk setiap peta kami menggunakan satu tekstur (ini adalah ukuran sebenarnya dari tekstur):
Lalu kami memuat gambar dengan kode ini:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Seperti yang Anda lihat, teksturnya akan meledak 6 kali untuk membuat tekstur peta yang sebenarnya. Rata-rata tekstur ini sekitar 4500x800. Tekstur ini harus dicampurkan ke layar setiap frame , karena seluruh layar kotor (berkat gulir samping). Kami melakukannya dengan menggunakan kode ini:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
Dan itu berhasil. Masalahnya adalah itu sangat lambat: Saya mendapatkan 40 FPS yang sedikit pada PC yang layak, dan itu tanpa AI / objek aktual yang sedang terjadi, sementara kami mengincar 60 FPS. Bagaimana kita bisa mempercepat ini?
Perhatikan bahwa kode di atas dibersihkan dan dikeluarkan dari konteks. Kode lengkap dapat ditemukan di sini: https://github.com/nightcracker/PyGG2
Dan last but not least, sementara gambar di atas mungkin terlihat seperti 8-bit, ada elemen dalam game yang membutuhkan kedalaman bit lebih.