from tkinter import *
import random
import time
Punkty = 0
class Piłka:
def __init__(self, płótno, rakietka, kolor):
self.płótno = płótno
self.Rakietka = rakietka
self.id = płótno.create_oval(10, 10, 25, 25, fill=kolor)
self.płótno.move(self.id, 245, 100)
początek = [-6, -5, -4, 4, 5, 6,]
random.shuffle(początek)
self.x = początek[0]
self.y = -1
self.wysokość_płótna = self.płótno.winfo_height()
self.szerokość_płótna = self.płótno.winfo_width()
self.upadek_na_ziemię = False
def trafienie_w_piłkę(self, pozycja):
pozycja_rakietki = self.płótno.coords(self.Rakietka.id)
if pozycja[2] >= pozycja_rakietki[0] and pozycja[0] <= pozycja_rakietki[2]:
if pozycja[3] >= pozycja_rakietki[1] and pozycja[3] <= pozycja_rakietki[3]:
return True
return False
def rysuj(self):
Punkty = 0
self.płótno.move(self.id, self.x, self.y)
pozycja = self.płótno.coords(self.id)
if pozycja [1] <= 0:
self.y = 1
if pozycja [3] >= self.wysokość_płótna:
self.upadek_na_ziemię = True
if self.trafienie_w_piłkę(pozycja) == True:
Punkty = Punkty+1
Punkty.config(tk, text=Punkty,)
self.y = random.randint(-8,-4)
if pozycja[0] <= 0:
self.x = 3
if pozycja[2] >= self.szerokość_płótna:
self.x = -3
class Rakietka:
def __init__(self, płótno, kolor, ):
self.płótno = płótno
self.id = płótno.create_rectangle(0, 0, 100, 7, fill=kolor)
self.płótno.move(self.id, 200, 375,)
self.x = 0
self.szerokość_płótna = self.płótno.winfo_width()
self.płótno.bind_all('<KeyPress-Left>' , self.przesuń_w_lewo, )
self.płótno.bind_all('<KeyPress-Right>', self.przesuń_w_prawo, )
def rysuj(self,):
self.płótno.move(self.id, self.x, 0)
pozycja = self.płótno.coords(self.id)
if pozycja [0] <= 1:
self.x = 0
if pozycja[2] >= self.szerokość_płótna:
self.x = -0
def przesuń_w_lewo(self, zdarzenie):
self.x = -1.5
def przesuń_w_prawo(self, zdarzenie):
self.x = 1.5
tk = Tk()
Punkty = 0
tk.title("Odibij Piłkę")
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
płótno = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
płótno.pack()
tk.update()
Rakietka = Rakietka(płótno, 'aqua')
Piłka = Piłka(płótno, Rakietka, 'yellow')
Punkty = Label(text=Punkty)
Punkty.pack()
while 1:
if Piłka.upadek_na_ziemię == True:
from tkinter import *
end = PhotoImage(file='D:\\KUBA\\Python\\Pong (Python Gra)\\end.png')
płótno.create_image(150, 100, anchor=NW, image=end)
if Piłka.upadek_na_ziemię == False :
Piłka.rysuj()
Rakietka.rysuj()
tk.update_idletasks()
tk.update()
time.sleep(0.01)
płótno.configure(bg='black')
Chce Aby Label "Punkty" Ustawił tekst na zmienną "Punkty" po zetknięciu Piłki z Rakietką i zmienił wartość "Punkty" o 1. Niestety wyskakuje błąd: "AttributeError: 'int' object has no attribute 'config' " Pomocy!