.......
#pgzero
WIDTH = 600
HEIGHT = 400
TITLE = "Clicker Heroes"
FPS = 30
# Nesneler
background = Actor('background')
enemy = Actor('enemy', (400, 230))
bonus_1 = Actor("bonus", (100, 100))
bonus_2 = Actor("bonus", (100, 200))
menu_button = Actor("bonus", (300, 280))
game_button = Actor("bonus", (300, 180))
gallery_button = Actor("bonus", (300, 280))
win = Actor('win')
# Koleksiyon
menu_button_2 = Actor('bonus', (300, 350))
enemy_gallery = Actor('enemy', (150, 80))
enemy2_gallery = Actor('enemy_2', (280, 80))
enemy3_gallery = Actor('enemy_3', (450, 80))
enemy4_gallery = Actor('enemy_4', (220, 230))
enemy5_gallery = Actor('enemy_5', (400, 230))
# Değişkenler
count = 0
damage = 1
hp = 50
price1 = 15
price2 = 200
mode = 'menu'
# Grafikleri çizdirme
def draw():
global hp, mode
# Oyun Ekranı
if mode == 'game':
background.draw()
enemy.draw()
screen.draw.text(hp, center=(400, 130), color="#DC143C", fontsize = 30, background="#FFE4B5")
screen.draw.text(count, center=(570, 30), color="black", fontsize = 30)
# Bonuslar
bonus_1.draw()
screen.draw.text("Her 2 sn 1 hasar", center=(100, 80), color="black", fontsize = 20)
screen.draw.text(price1, center=(100, 110), color="black", fontsize = 20)
bonus_2.draw()
screen.draw.text("Her 2 sn 5 puan", center=(100, 180), color="black", fontsize = 20)
screen.draw.text(price2, center=(100, 210), color="black", fontsize = 20)
# Zafer ekranı
elif mode == 'win':
win.draw()
screen.draw.text("Tüm canavarları yendiniz!", center=(300, 100), color="white", fontsize = 32)
menu_button.draw()
screen.draw.text("Menüye geri dön!", center=(menu_button.x,menu_button.y - 5), color="black", fontsize = 20)
# Menü Ekranı
elif mode == 'menu':
win.draw()
# Menü butonları
game_button.draw()
screen.draw.text("OYNA", center=(game_button.x,game_button.y - 5), color="black", fontsize = 20)
gallery_button.draw()
screen.draw.text("KOLEKSİYON", center=(gallery_button.x,gallery_button.y - 5), color="black", fontsize = 20)
# Koleksiyon Ekranı
elif mode == 'collection':
win.draw()
# Canavar koleksiyonu
enemy_gallery.draw()
enemy2_gallery.draw()
enemy3_gallery.draw()
enemy4_gallery.draw()
enemy5_gallery.draw()
menu_button_2.draw()
screen.draw.text("Menüye geri dön!", center=(menu_button_2.x,menu_button_2.y - 5), color="black", fontsize = 20)
# Bonus fonksiyonları
def for_bonus_1():
global hp
hp -= 1
def for_bonus_2():
global count
count += 5
# Tıklamaları işleme
def on_mouse_down(button, pos):
global count, damage, hp, price1, price2, mode
#Oyundaki tıklamalar
if mode == 'game' and button == mouse.LEFT:
# Nesneye tıklama
if enemy.collidepoint(pos):
count += 1
hp -= damage
enemy.y = 200
animate(enemy, tween='bounce_end', duration=0.5, y=230)
# bonus_1 butonu üzerine tıklama
elif bonus_1.collidepoint(pos):
if count >= price1:
schedule_interval(for_bonus_1, 2)
count -= price1
price1 *= 2
# bonus_2 butonu üzerine tıklama
elif bonus_2.collidepoint(pos):
if count >= price2:
schedule_interval(for_bonus_2, 2)
count -= price2
price2 *= 2
#Menüdeki tıklamalar
elif mode == 'menu' and button == mouse.LEFT:
# 'Oyna' butonu üzerine tıklama
if game_button.collidepoint(pos):
mode = 'game'
# 'Koleksiyon' butonu üzerine tıklama
if gallery_button.collidepoint(pos):
mode = 'collection'
#Kazanma ekranındaki tıklamalar
elif mode == 'win' and button == mouse.LEFT:
# 'Menüye geri dön!' butonu üzerine tıklama
if menu_button.collidepoint(pos):
mode = 'menu'
#Koleksiyon ekranındaki tıklamalar
elif mode == 'collection' and button == mouse.LEFT:
if menu_button_2.collidepoint(pos):
mode = 'menu'
#Oyun mantığını işleme
def update(dt):
global hp, mode
if mode == 'game':
# Çizim koşulları
if hp <= 0 and enemy.image == 'enemy':
hp = 100
enemy.image = 'enemy_2'
elif hp <= 0 and enemy.image == 'enemy_2':
hp = 200
enemy.image = 'enemy_3'
elif hp <= 0 and enemy.image == 'enemy_3':
hp = 350
enemy.image = 'enemy_4'
elif hp <= 0 and enemy.image == 'enemy_4':
hp = 500
enemy.image = 'enemy_5'
# Kazanma ekranına geçiş
elif hp <= 0 and enemy.image == 'enemy_5':
mode = 'win'