# Oyun Ayarları
GENISLIK = 800
YUKSEKLIK = 400
FPS = 60
# Renkler
BEYAZ = (255, 255, 255)
SIYAH = (0, 0, 0)
KIRMIZI = (255, 0, 0)
MAVI = (0, 0, 255)
pygame.init()
ekran = pygame.display.set_mode((GENISLIK, YUKSEKLIK))
pygame.display.set_caption("Engellerden Kaçış")
saat = pygame.time.Clock()
# Oyuncu Sınıfı
class Oyuncu(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((40, 60))
self.image.fill(MAVI)
self.rect = self.image.get_rect()
self.rect.bottom = YUKSEKLIK - 10
self.rect.left = 50
self.hiz_y = 0
self.zipliyor = False
def zipla(self):
if not self.zipliyor:
self.hiz_y = -15
self.zipliyor = True
def update(self):
# Yerçekimi
self.hiz_y += 0.8
self.rect.y += self.hiz_y
# Yere basma kontrolü
if self.rect.bottom >= YUKSEKLIK - 10:
self.rect.bottom = YUKSEKLIK - 10
self.hiz_y = 0
self.zipliyor = False
# Engel Sınıfı
class Engel(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((30, 50))
self.image.fill(KIRMIZI)
self.rect = self.image.get_rect()
self.rect.x = GENISLIK + random.randint(0, 100)
self.rect.bottom = YUKSEKLIK - 10
def update(self):
self.rect.x -= 7 # Engelin hızı
if self.rect.right < 0:
self.kill() # Ekrandan çıkan engeli sil
# Gruplar
tum_spriteler = pygame.sprite.Group()
engeller = pygame.sprite.Group()
oyuncu = Oyuncu()
tum_spriteler.add(oyuncu)
# Engel oluşturma zamanlayıcısı
engel_zamani = pygame.USEREVENT + 1
pygame.time.set_timer(engel_zamani, 1500)
skor = 0
oyun_devam = True
# Oyun Döngüsü
while oyun_devam:
ekran.fill(BEYAZ)
for event in pygame.event.get():
if event.type == pygame.QUIT:
oyun_devam = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
oyuncu.zipla()
if event.type == engel_zamani:
yeni_engel = Engel()
tum_spriteler.add(yeni_engel)
engeller.add(yeni_engel)
# Güncelleme
tum_spriteler.update()
# Çarpışma Kontrolü
if pygame.sprite.spritecollide(oyuncu, engeller, False):
print(f"Oyun Bitti! Skorun: {int(skor)}")
oyun_devam = False
# Skoru artır
skor += 0.1
# Çizim
tum_spriteler.draw(ekran)
pygame.display.flip()
saat.tick(FPS)
pygame.quit()
Birleşen Meyve Oyunu