import pygame
import Hero
import Button
import shopping
import Enemy
pygame.init()
#display settings
win = pygame.display.set_mode((1000, 700))
pygame.display.set_caption("Pixel_Hero")
#Initialize graphics
bg = pygame.transform.scale(pygame.image.load('background ph.png'), (1000, 700))
bg_choose_menu = pygame.transform.scale(pygame.image.load('background - choose menu.png'), (1000, 700))
bg_dungeon = pygame.transform.scale(pygame.image.load('enemies/dungeon_bg.png'), (1000, 700))
welcome_title = pygame.transform.scale(pygame.image.load('welcome title.png'), (400, 400))
#Buttons
play_button = Button.Button(450, 450, pygame.transform.scale(pygame.image.load('Play_button.png'), (250, 250)))
work_button = Button.Button(50, 100, pygame.transform.scale(pygame.image.load('Work_title.png'), (200, 200)))
shop_button = Button.Button(50, 310, pygame.transform.scale(pygame.image.load('shop_title.png'), (200, 200)))
dungeon_button = Button.Button(50, 520, pygame.transform.scale(pygame.image.load('Monsters_title.png'), (200, 200)))
cancel_button = Button.Button(0 , 500, pygame.transform.scale(pygame.image.load('cancel_button.png'), (200, 200)))
Skieleton = Button.Button(100, 0, pygame.transform.scale(pygame.image.load('enemies/skieleton.png'), (200, 200)))
Acient_Knight = Button.Button(500, 0, pygame.transform.scale(pygame.image.load('enemies/Acient Knight.png'), (200, 200)))
Dragon = Button.Button(800, 0, pygame.transform.scale(pygame.image.load('enemies/weird dragon.png'), (200, 200)))
fight_button = Button.Button(400, 250, pygame.transform.scale(pygame.image.load('fight_button.png'), (200, 200)))
#Human/enemies
Human = pygame.transform.scale(pygame.image.load('Hero.png'), (400, 400))
skieleton_bg = pygame.transform.scale(pygame.image.load('skieleton_bg.png'), (500, 500))
acient_knight_bg = pygame.transform.scale(pygame.image.load('acient_knight_bg.png'), (500, 500))
Weird_Dragon_bg = pygame.transform.scale(pygame.image.load('weird_dragon_bg.png'), (500, 500))
#text
cash = pygame.font.SysFont('comicsans', 32)
#shopping
swords_shop = [pygame.transform.scale(pygame.image.load('Wooden sword.png'), (200, 200)),
pygame.transform.scale(pygame.image.load('Iron Sword.png'), (200, 200)),
pygame.transform.scale(pygame.image.load('Magic Sword.png'), (200, 200))]
shields_shop = [pygame.transform.scale(pygame.image.load('Wooden Shield.png'), (200, 200)),
pygame.transform.scale(pygame.image.load('Iron shield.png'), (200, 200)),
pygame.transform.scale(pygame.image.load('Mithic shield.png'), (200, 200))]
suits_shop = [pygame.transform.scale(pygame.image.load('TRAVEL SUIT.png'), (200, 200)),
pygame.transform.scale(pygame.image.load("Warror's suit.png"), (200, 200)),
pygame.transform.scale(pygame.image.load('Mithic suit.png'), (200, 200))]
boots = [pygame.transform.scale(pygame.image.load('clothes/traveller boots.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/iron boots.png'), (300, 300)),]
pants = [pygame.transform.scale(pygame.image.load('clothes/traveller pants.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/Iron pants.png'), (300, 300))]
suits = [pygame.transform.scale(pygame.image.load('clothes/traveller suit.png'), (450, 300)),
pygame.transform.scale(pygame.image.load('clothes/iron suit.png'), (300, 300))]
helmets = [pygame.transform.scale(pygame.image.load('clothes/traveller_helmet.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/iron helmet.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/mithic suit.png'), (300, 300))]
shields = [pygame.transform.scale(pygame.image.load('clothes/traveller shield.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/Iron shield.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/mithic shield.png'), (300, 300))]
swords = [pygame.transform.scale(pygame.image.load('clothes/traveller sword.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/Iron sword.png'), (300, 300)),
pygame.transform.scale(pygame.image.load('clothes/mithic_sword.png'), (300, 300))]
#Variables
s = 1000
su = 1000
sh = 1000
a = 0
g = 0
b = 0
sword_index = 0
suit_index = 0
shield_index = 0
sword_wear = 0
shield_wear = 0
armor_wear = 0
dungeon_active = False
skieleton_active = False
knight_active = False
war = False
#Events
Winning = pygame.USEREVENT + 1
Losing = pygame.USEREVENT + 2
tie = pygame.USEREVENT + 3
#Objects
Skieletor = Enemy.Enemy(50, 1)
Knight = Enemy.Enemy(150, 30)
Dragonn = Enemy.Enemy(200, 50)
active = False
def draw_menu():
global a, active
win.blit(bg, (0,0))
win.blit(welcome_title, (450, 0))
if play_button.draw(win) == True or active == True:
active = True
draw_choose_menu()
def draw_choose_menu():
global a, g, dungeon_active
dungeon_active = False
win.blit(bg_choose_menu, (0, 0))
win.blit(Human, (500, 300))
namee = cash.render(Hero.hero.name, True, (255, 0, 0))
cas = cash.render('Cash: ' + str(Hero.hero.cash), True, (255, 0, 0))
win.blit(cas, (400, 300))
win.blit(namee, (640, 200))
if work_button.draw(win) and g == 0:
g = 0
Hero.hero.work()
if dungeon_button.draw(win) or a == 1 and g == 0:
dungeon_active = True
g = 0
a = 1
draw_dungeon()
if dungeon_active == False:
if shop_button.draw(win) or a == 2:
a = 2
draw_shop()
if a == 0 and g == 0:
get_armor()
def draw_shop():
global sword, suit, shield, g, sword_index, suit_index, shield_index, a, cancel_button, s, su, sh, sword_wear, shield_wear, armor_wear
if g == 0:
if not(sword_index == 3):
sword = shopping.shopp(400, 0, swords_shop[sword_index], 100, s)
sword.clicked = True
if not(suit_index == 3):
suit = shopping.shopp(400, 250, suits_shop[suit_index], 100, su)
suit.clicked = True
if not(shield_index == 3):
shield = shopping.shopp(400, 500, shields_shop[shield_index], 100, sh)
shield.clicked = True
g = 1
win.fill((158, 255, 92))
if sword.draw(win):
if sword_index <= 2:
if Hero.hero.cash >= sword.cost:
Hero.hero.damage += 50
sword_index += 1
g = 0
Hero.hero.cash -= sword.cost
s += 1000
sword_wear += 1
else:
print("You can't buy it. You haven't money")
else:
print("You have the best sword in this game")
if suit.draw(win):
if suit_index <= 2:
if Hero.hero.cash >= suit.cost:
Hero.hero.health += 50
suit_index += 1
g = 0
Hero.hero.cash -= suit.cost
su += 1000
armor_wear += 1
else:
print("You can't buy it. You haven't money")
else:
print("You have the best suit in this game")
if shield.draw(win):
if shield_index <= 2:
if Hero.hero.cash >= shield.cost:
Hero.hero.health += 30
shield_index += 1
g = 0
Hero.hero.cash -= shield.cost
sh += 1000
shield_wear += 1
else:
print("You can't buy it. You haven't money")
else:
print("You have the best shield in this game")
if cancel_button.draw(win):
a = 0
g = 0
def draw_dungeon():
global a, g, b, skieleton_active, knight_active, war
win.blit(bg_dungeon, (0, 0))
skieleton_active = False
knight_active = False
if cancel_button.draw(win):
a = 0
g = 0
if Skieleton.draw(win) or b == 1:
win.fill((173, 173, 173))
win.blit(skieleton_bg, (250, 200))
b = 1
skieleton_active = True
if fight_button.draw(win) or war == True:
if Skieletor.fight() == 0:
war = True
if Skieletor.fight() == True:
pygame.event.post(pygame.event.Event(Winning))
war = False
if Skieletor.fight() == False:
pygame.event.post(pygame.event.Event(Losing))
war = False
if Skieletor.fight() == None:
pygame.event.post(pygame.event.Event(tie))
war = False
if cancel_button.draw(win):
b = 0
if skieleton_active == False:
if Acient_Knight.draw(win) or b == 2:
win.fill((53, 1, 131))
win.blit(acient_knight_bg, (250, 200))
b = 2
knight_active = True
if knight_active == False:
if Dragon.draw(win) or b == 3:
win.fill((255, 0, 0))
win.blit(Weird_Dragon_bg, (250, 200))
b = 3
def get_armor():
global sword_wear, shield_wear, armor_wear, Human
if armor_wear == 1:
helmet_wr = shopping.suits(helmets[0], 540, 140)
armor_wr = shopping.suits(suits[0], 500, 350)
pants_wr = shopping.suits(pants[0], 525, 500)
boots_wr = shopping.suits(boots[0], 525, 420)
if armor_wear == 2:
helmet_wr = shopping.suits(helmets[1], 540, 250)
armor_wr = shopping.suits(suits[1], 550, 350)
pants_wr = shopping.suits(pants[1], 535, 465)
boots_wr = shopping.suits(boots[1], 525, 420)
if armor_wear == 3:
Human = pygame.transform.scale(pygame.image.load('clothes/mithic suit.png'), (400, 400))
if sword_wear == 1:
sword_wr = shopping.suits(swords[0], 370, 360)
if sword_wear == 2:
sword_wr = shopping.suits(swords[1], 350, 360)
if sword_wear == 3:
sword_wr = shopping.suits(swords[2], 370, 350)
if shield_wear == 1:
shield_wr = shopping.suits(shields[0], 630, 400)
if shield_wear == 2:
shield_wr = shopping.suits(shields[1], 630, 400)
if shield_wear == 3:
shield_wr = shopping.suits(shields[2], 630, 400)
try:
if armor_wear == 1 or armor_wear == 2:
helmet_wr.wear(win)
armor_wr.wear(win)
pants_wr.wear(win)
boots_wr.wear(win)
sword_wr.wear(win)
shield_wr.wear(win)
except:
try:
shield_wr.wear(win)
except:
pass
run = True
Clock = pygame.time.Clock()
while run:
Clock.tick(70)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
run = False
if event.type == Winning:
win.fill((255, 0,0))
cash.render('You Won')
win.blit(cash, 500, 350)
pygame.display.update()
pygame.time.delay(5000)
a = 0
g = 0
b = 0
if event.type == Losing:
print("Your enemy killed You")
pygame.quit()
run = False
if event.type == tie:
print("You both are dead")
pygame.quit()
run = False
draw_menu()
pygame.display.update()
Dzień dobry mam problem - w choose_menu() jest przycisk work - robi on, że zarabia się od 1 do 100 punktów (jest to w innym pliku). Gdy wejdzie się w przycisk shop i kupi się coś nagle pomimo, że pieniądze się zarabiają po przyciśnięciu work to nie można już nic kupić (no chyba, że wcześniej się poklikało więcej) i nie pokazuje się na ekranie ilość pieniędzy pomimo, że to zblitowałem. Proszę o pomoc