kod2

#pgzero
import random

WIDTH = 600
HEIGHT = 450

TITLE = "Uzay Yolculuğu"
FPS = 30

# Nesneler ve değişkenler
ship = Actor("ship", (300, 400))
space = Actor("space")
enemies = []
planets = [Actor("plan1", (random.randint(0, 600), -100)), Actor("plan2", (random.randint(0, 600), -100)), Actor("plan3", (random.randint(0, 600), -100))]
meteors = []
bullets = []
mode = 'menu'
type1 = Actor("ship", (100, 250))
type2 = Actor("ship-2", (300, 250))
type3 = Actor("ship-3", (500, 250))
count = 0

# Düşmanlar listesinin doldurulması
for i in range(5):
   x = random.randint(0, 600)
   y = random.randint(-450, -50)
   enemy = Actor("enemy", (x, y))
   enemy.speed = random.randint(2, 8)
   enemies.append(enemy)
   
# Meteorlar listesinin doldurulması
for i in range(5):
   x = random.randint(0, 600)
   y = random.randint(-450, -50)
   meteor = Actor("meteor", (x, y))
   meteor.speed = random.randint(2, 10)
   meteors.append(meteor)

# Grafiklerin çizilmesi
def draw():
   # Oyun modu
   if mode == 'menu':
       space.draw()
       screen.draw.text('Lütfen, uzay geminizi seçin!', center = (300, 100), color = "white", fontsize = 36)
       type1.draw()
       type2.draw()
       type3.draw()
   if mode == 'game':
       space.draw()
       planets[0].draw()
       # Skorun ekranda gösterimi
       screen.draw.text(count, (10, 10), color = "white")
       # Meteorların çizilmesi
       for i in range(len(meteors)):
           meteors[i].draw()
       ship.draw()
       # Düşmanların çizilmesi
       for i in range(len(enemies)):
           enemies[i].draw()
       # Füzelerin çizilmesi
       for i in range(len(bullets)):
           bullets[i].draw()
       
   # Oyun Bitti penceresi
   elif mode == 'end':
       space.draw()
       screen.draw.text("OYUN BİTTİ!", center = (300, 200), color = "white", fontsize = 36)
       # Sonuç skoru
       screen.draw.text(count, center = (300, 250), color = "white", fontsize = 64)
   
# Kontroller
def on_mouse_move(pos):
   ship.pos = pos

# Listeye yeni bir düşman ekleme
def new_enemy():
   x = random.randint(0, 400)
   y = -50
   enemy = Actor("enemy", (x, y))
   enemy.speed = random.randint(2, 8)
   enemies.append(enemy)

# Düşmanların hareketi
def enemy_ship():
   for i in range(len(enemies)):
       if enemies[i].y < 650:
           enemies[i].y = enemies[i].y + enemies[i].speed
       else:
           enemies.pop(i)
           new_enemy()

# Gezegenlerin hareketi
def planet():
   if planets[0].y < 550:
           planets[0].y = planets[0].y + 1
   else:
       planets[0].y = -100
       planets[0].x = random.randint(0, 600)
       first = planets.pop(0)
       planets.append(first)

# Meteorların hareketi
def meteorites():
   for i in range(len(meteors)):
       if meteors[i].y < 450:
           meteors[i].y = meteors[i].y + meteors[i].speed
       else:
           meteors[i].x = random.randint(0, 600)
           meteors[i].y = -20
           meteors[i].speed = random.randint(2, 10)

# Çarpışmalar
def collisions():
   global mode
   global count
   for i in range(len(enemies)):
       if ship.colliderect(enemies[i]):
           mode = 'end'
       # Füzeler ile çarpışmalar
       for j in range(len(bullets)):
           if bullets[j].colliderect(enemies[i]):
               count = count + 1
               enemies.pop(i)
               bullets.pop(j)
               new_enemy()
               break

def update(dt):
   if mode == 'game':
       enemy_ship()
       collisions()
       planet()
       meteorites()
       # Füzelerin hareketi
       for i in range(len(bullets)):
           if bullets[i].y < 0:
               bullets.pop(i)
               break
           else:
               bullets[i].y = bullets[i].y - 10

# Tıklamayı işleme fonksiyonu
def on_mouse_down(button, pos):
   global mode
   global ship
   if mode == 'menu' and type1.collidepoint(pos):
       ship.image = "ship"
       mode = 'game'
   elif mode == 'menu' and type2.collidepoint(pos):
       ship.image = "ship-2"
       mode = 'game'
   elif mode == 'menu' and type3.collidepoint(pos):
       ship.image = "ship-3"
       mode = 'game'
   # Atış mekaniği
   elif mode == 'game' and button == mouse.LEFT:
       bullet = Actor("bullet")
       bullet.pos = ship.pos
       bullets.append(bullet)