Bu resmi sprite görünümü yapabilmek için ilk olarak os modülünü import ediyorum. Bu sayede oyunun bulunduğu dizini gösterebiliriz. Kod içerisinde oyunun bulunduğu dizini bir değişkene göstermemiz gerek.
import os
g_directory = os.path.dirname(__file__)
__file__ değişkeni içinde yazıldığı kodun bulunduğu klasörü işaret eder. os.path.dirname metodu ise klasöre ulaşmak için gerekli yolu oluşturur. Bu yolu g_directory değişkenine atadık. Daha sonra oyunun bulunduğu klasör içerisinde images adında klasör oluşturulur ve resim bu klasör içine atılır. Kodun devamı ise şu şekilde olur.
import os
g_directory = os.path.dirname(__file__)
image_folder = os.path.join(g_directory, 'images')
player_image = pygame.image.load(os.path.join(images_folder, 'car.png')).convert()
class Car(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = player_image
self.rect = self.image.get_rect()
self.rect.topleft = (10,30)
Bu arada yukarıda verdiğim 3, 4 ve 5. satır kodu set_mode metodundan sonra gelmeli. Aksi takdirde belli çeşit hatalar alabilirsiniz. Ancak farkettiyseniz siyah arkaplan mevcut. Arabanın arkaplan rengini transparan olarak göstermemiz lazım. Bunun için kullanabileceğimiz set_colorkey() metodu var. Bu metot, parametre olarak verdiğimiz rengin piksel olarak ihmal edilmesini sağlar.
class Car(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = player_image
self.image.set_colorkey(black)
self.rect = self.image.get_rect()
self.rect.topleft = (10,30)
import pygame
import sys
import os
pygame.init()
size = width, height = 640, 480
speed = [1,1]
green = (0,255,0)
black = (0,0,0)
screen = pygame.display.set_mode(size)
g_directory = os.path.dirname(__file__)
images_folder = os.path.join(g_directory, 'images')
player_image = pygame.image.load(os.path.join(images_folder, 'car.png')).convert()
class Car(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = player_image
self.image.set_colorkey(black)
self.rect = self.image.get_rect()
self.rect.topleft = (10,30)
sprites_group = pygame.sprite.Group()
car = Car()
sprites_group.add(car)
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# update
sprites_group.update()
# draw
screen.fill(green)
sprites_group.draw(screen)
pygame.display.flip()
pygame.quit()
Hiç yorum yok:
Yorum Gönderme