Pygame Çizgi Yapımı (Grid)

Uygulama üzerinde basit bir şekilde ızgara(grid) çizimi yapacağız. Bunun kullanılacak method ise pygame.draw.line() metodudur. Parametre olarak çizim yapılacak display(pygame.Surface) nesnesini, ikinci parametre olarak renk rgb kodunu, üçüncü parametre ise çizginin başlangıç noktasını ve dördüncü olarak çizginin bitiş noktasını almaktadır.

Çizime başlamadan önce renk kodunu belirtmekte yarar. Kod içerisinde renkleri rgb formatından kullanabiliyoruz. Yani (Red, Blue, Green) şeklinde. Örneğin beyaz rengi için değişken oluşturup daha sonra kullanmak istersek, aşağıdaki kod satırını yazmak yeterlidir.
white = (255, 255, 255)
Şimdi çizimi gerçekleştirmeye çalışalım. Döngü içerisinde event döngüsünden sonra çizim fonksiyonunu kullandık.
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # çizim
    pygame.draw.line(display, white, (32, 0), (32,480))
(x:32, y:0) noktasından (x:32, y:480) noktasına kadar bir çizgi çekilmesi gerekiyor. 480px ekranın yüksekliğiydi. Kodu çalıştırdığımızda karşımıza sadece siyah bir ekran çıkacak, beyaz çizgi olmayacak. Bunun nedeni pygame.display.flip() fonksiyonunu kullanmamızdan kaynaklanıyor. pygame.display.flip() fonksiyonu, display yani pygame.Surface nesnesini günceller ve ekrana yansıtır. Koda ekleyelim:
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # çizim
    pygame.draw.line(display, white, (32, 0), (32,480))
    pygame.display.flip()
Kod çalıştırıldığında elde edilen sonuç:
Pygame Çizgi Çizimi
Başarılı şekilde çizildi. Şimdi hem yatay hem de dikey olacak şekilde 32px aralıkla çizgiler çizmeye çalışalım. Bu işlemi yapabilmek için döngü kullanmamız gerek, önce sadece x eksenine göre dikey çizgileri çizelim:
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # çizim
    for x in range(0, 720, 32):
        pygame.draw.line(display, white, (x,0), (x, 720))
        
    pygame.display.flip()
Elde edilen sonuç:
Pygame Çizim Yapma
Şimdi sıra yatay çizgileri çizmeye geldi. Onun içinde ikinci bir döngü yazılır ancak bu kez y eksenine göre:
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # çizim
    for x in range(0, 720, 32):
        pygame.draw.line(display, white, (x,0), (x,480))
    for y in range(0, 480, 32):
        pygame.draw.line(display, white, (0,y), (720,y))
    pygame.display.flip()
Ekran çıktısı:
Pygame Çizim Yapma
Artık ızgara çizimi yapmış olduk. Bir sonraki derste yılan oyunu için gerekli yılanı eklemeye çalışacağız. Kodun tam hali:
import pygame, sys

pygame.init()

display = pygame.display.set_mode((720, 480))

pygame.display.set_caption('Merhaba Dünya')

white = (255, 255, 255)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # çizim
    for x in range(0, 720, 32):
        pygame.draw.line(display, white, (x,0), (x,480))
    for y in range(0, 480, 32):
        pygame.draw.line(display, white, (0,y), (720,y))
    pygame.display.flip()

Hiç yorum yok:

Yorum Gönderme