Merhaba altta oyunun sorun veren yerinin kodları bulunuyor sorun şu ki ben bir pencere tasarladım ve bu pencere bir tuşa basınca açılıyor açılan pencerede de iksir kullanmamızı sağlayan bir buton var bu butona basınca bir tane iksir kullanması gerekirken iksir bitene kadar kullanıyor. Bunu düzeltemedim.
import pygame
import random
pygame.init()
# Ekran Bilgileri
width = 500
height = 500
anaPencere = pygame.display.set_mode((width,height))
pygame.display.set_caption("Zindanlar ve Zindanlar V3")
# Global Değişkenler
can = 100
anaHasar = 5
hasar = 5
zırh = 20
iksirCan = 3
iksirGuc = 3
büyüAlev = ["Öğrenilmedi",50]
büyüBuz = ["Öğrenilmedi",30]
büyüZehir = ["Öğrenilmedi",10]
zehirEtki = "Yok"
sinif1 = "Wemy"
sinif2 = "Pacus"
sinif3 = "Canus"
sinif4 = "Forcus"
tur = 1
secenekler ="""
---------------
Ne yapacaksın ?
1. Saldır
2. İksirler ve Büyüler
3. Kaç
---------------
"""
canavar = "Hiçbir şey"
dusmanHasar = 0
dusmanCan = 0
dusmanDurum = ["diri"," "]
iksirPencere = " "
zar = 1
font = pygame.font.SysFont("arialblack", 13)
# Resimler
cikis_dugme = pygame.image.load("Zindanlar ve Zindanlar//assets//cikis_dugme.png")
kullan_dugme = pygame.image.load("Zindanlar ve Zindanlar//assets//kullan_dugme.png")
# Gömülü Sınıflar
class Button():
def __init__(self, x, y, image, scale):
width = image.get_width()
height = image.get_height()
self.image = pygame.transform.scale(image, (int(width * scale), int(height * scale)))
self.rect = self.image.get_rect()
self.rect.topleft = (x, y)
self.clicked = False
def draw(self, surface):
action = False
#get mouse position
pos = pygame.mouse.get_pos()
#check mouseover and clicked conditions
if self.rect.collidepoint(pos):
if pygame.mouse.get_pressed()[0] == 1 and self.clicked == False:
self.clicked = True
action = True
if pygame.mouse.get_pressed()[0] == 0:
self.clicked = False
#draw button on screen
surface.blit(self.image, (self.rect.x, self.rect.y))
return action
# Düğmeler
saldirButon = Button(450,450,cikis_dugme,1)
# Gömülü Fonksiyonlar
def Yazi(text,font,renk,x,y):
yazi = font.render(text,True,renk)
anaPencere.blit(yazi,(x,y))
# Eylemler
def iksir():
global iksirPencere
global cikis_dugme
global kullan_dugme
# İKSİRLER
iksirBilgi = Yazi("İKSİRLER",font,(255,255,255),95,25)
# Can İksiri
canİksiriBilgi = Yazi("Can İksiri: {} tane var. - 25 can verir.".format(iksirCan),font,(255,255,255),50,50)
canİksiriButon = Button(8,47,kullan_dugme,0.3)
if canİksiriButon.draw(anaPencere):
canİksir()
# Çıkış
cikisButon = Button(450,215,cikis_dugme,1)
if cikisButon.draw(anaPencere):
iksirPencere = False
# İksir ve Büyü Eylemleri
def canİksir():
global iksirCan
global can
if iksirCan > 0:
iksirCan = iksirCan - 1
can = can + 25
if can > 100:
can = 100
geriBildirim = Yazi("Can iksirini kullandınız", font, (255,255,255), 175, 475)
else:
geriBildirim = Yazi("Kullanılabilecek iksiriniz yok.", font, (255,255,255), 175, 475)
iksirPencere = False
döngüDurum = True
while döngüDurum:
anaPencere.fill((0,0,0))
if iksirPencere == True:
anaPencere.fill((0,0,0))
anaPencere = pygame.display.set_mode((700,500))
iksir()
if iksirPencere == False:
anaPencere.fill((0,0,0))
anaPencere = pygame.display.set_mode((width,height))
secenekYazi = Yazi(secenekler, font, (255,255,255), 175, 300)
if saldirButon.draw(anaPencere):
iksirPencere = True
for event in pygame.event.get():
if event.type == pygame.QUIT:
döngüDurum = False
pygame.display.update()
pygame.quit()