23 Ağustos 2017 Çarşamba

Tilemap Oluşturma

Bu yazıda basit bir tilemap oluşturucağım. 'Tile', Türkçe kelime anlamı fayans demektir. Fayanslardan oluşan bir harita. Tilemap, 2d oyun geliştirmede çok kullanılan bir tekniktir. Bu teknik sayesinde, performans ve bellek kullanımında tasarruf sağlarız. Harita oluşturmada büyük resimler kullanmak yerine bir kaç farklı küçük resim parçası kullanmak yine aynı haritayı oluşturmamızı sağlayacaktır.

Kendimce oyun haritamın planını paint üzerinde hazırladım.
import pygame, sys

pygame.init()

pygame.display.set_caption("tilemap")

#renkler
RED = (255, 0, 0)
GREEN = (0,   255, 0  )
GRAY  = (128,128,128)
#kaynaklar
H = 0 #home
W = 1 #way
G = 2 #grass
#kaynaklar renklere bağlandı
colors =   {
                H : RED,
                W : GRAY,
                G : GREEN
            }
#tilemap listesi
tilemap = [
            [G, G, G, G, W, W, W, W, W],
            [W, W, W, W, W, G, G, G, G],
            [G, G, G, G, W, G, H, H, G],
            [G, H, H, G, W, G, H, H, G],
            [G, H, H, G, W, G, H, H, G],
            [G, H, H, G, W, G, H, H, G],
            [G, G, G, G, W, G, G, G, G],
            [G, W, W, W, W, W, W, W, W],
            [G, W, G, G, G, G, G, G, G],
            [G, W, G, H, H, H, G, H, H],
]
#boyutlandırma--
#fayans boyutu
TILE_SIZE = 50
#genişlik tile miktarı
M_W = 9
#yükseklik tile miktarı
M_H = 10

#görüntü oluşturma
DISPLAY_SURF = pygame.display.set_mode((M_W*TILE_SIZE,M_H*TILE_SIZE))

run = True

while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    for y in range(M_H):
        for x in range(M_W):
            pygame.draw.rect(DISPLAY_SURF,colors[tilemap[y][x]],(x*TILE_SIZE,y*TILE_SIZE,TILE_SIZE,TILE_SIZE))

    pygame.display.update()
pygame.quit()

Hiç yorum yok:

Yorum Gönder