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)