6 Mayıs 2013 Pazartesi

Resim Ekleme ve Şekil Çizme


Bu dersimizde ekrana şekiller çizdirmeye başlayacağız.Kullanacağımız modüller
draw.Bir de gfxdraw isminde bir modül var ama experimental.Bu yüzden bu modülü
kullanmayacağız.Ekrana resim eklemek içinse image modülünü kullanacağız.Dikkat etmemiz gereken nokta pygame'in koordinat sistemi.Pygame Ekranın sol-üst köşesini (0,0) kabul ediyor ve nesneleri buna göre yerleştiriyor.Normal koordinat sisteminde aşağı doğru y değeri azalırken bu durumda artıyor.
Şimdi draw modülünde kullanabileceğimiz fonksiyonlara bir göz atalım:
  • pygame.draw.rect
  • pygame.draw.polygon
  • pygame.draw.circle
  • pygame.draw.ellipse
  • pygame.draw.arc
  • pygame.draw.line
  • pygame.draw.lines
  • pygame.draw.aaline
  • pygame.draw.aalines

Kodumuz gayet açık.Birinci parametre şekli çizdireceğimiz surface alanı.İkincisi renk.Üçüncüsü ise şekli çizdireceğimiz koordinatlar.Yalnız circle kullanırken radious değerini de vermemiz gerekiyor.Diğer parametreler aynı.Detaylı bilgi için dökümantasyona bakabilirsiniz.

import pygame

RED =   (255, 0,  0)
GREEN = (0,  255, 0)
BLUE =  (0,   0, 255)
pygame.init()
screen=pygame.display.set_mode((640,480))

pygame.draw.line(screen, BLUE, (60, 60), (120,60), 4)
pygame.draw.ellipse(screen, RED, (300, 250, 40,80), 1)

pygame.draw.rect(screen, RED, (50,50,100,25)) 
pygame.draw.polygon(screen, GREEN, ((146, 0),
    (291, 106), (236, 277), (56, 277), (0, 106)))
pygame.draw.circle(screen, BLUE, (200,50), 35)
pygame.draw.polygon(screen, GREEN, ((250,100),(300,0),(350,50)))
pygame.draw.arc(screen, BLUE,(400,10,150,100), 0, 3.14)
pygame.display.flip()

Image modülü ile de basit bir örnek yapalım.Resimlerin yerleştirileceği koordinatları belirlemek için daha önce kullandığımız get_rect() fonksiyonunu kullanacağız.Bu fonksiyon belirttiğimiz nesne üzerinde rectangular alan oluşturuyor.
image = pygame.image.load("head.png")
rect = image.get_rect()
rect.x,rect.y = (100,200)
screen.blit(image,rect)
Burada rect nesnemizin x ve y özelliklerini kullandık.Kullanabileceğimiz diğer özellikler: top, left,bottom,right,topleft, bottomleft, topright, bottomright,midtop, midleft, midbottom, midright,center,,centerx, centery,size, width, height,w,h

Kaynakça:

1 yorum :

  1. Peki tiling işlemi nasıl yapılır? Mesela elimde 25x50 px bir resim var. İlk 25x25 birinci kare sonraki 25x25 ikinci kare. Animasyon oluşturmak istiyorum...

    YanıtlaSil