Ich bin neu in Python und habe ein wenig Probleme mit Objektklassen. Ich habe Code erstellt, wo Ballobjekte von der Seite der Wand abprallen. Ich möchte einen Ball löschen, nachdem er angeklickt wurde. Ich habe verschiedene Methoden ausprobiert, aber sie haben alle zu Fehlern geführt. Unten ist mein Code für die Bälle, die von den Wänden springen. Wie kann ich diesen Code bearbeiten, um die Bälle nach dem Klicken zu löschen? Vielen Dank!Python: Wie man ein Objekt aus der Klasse löscht?
from Tkinter import *
import random
import time
canvasWidth=480
canvasHeight=320
root= Tk()
canvas=Canvas(root,width=canvasWidth,height=canvasHeight, bg='white')
root.title('RaspPi')
canvas.pack()
class Ball:
def __init__(self):
self.ballSize = 30
self.xposition = random.randint(0 + self.ballSize, canvasWidth - self.ballSize)
self.yposition = random.randint(0 + self.ballSize, canvasHeight - self.ballSize)
self.shape=canvas.create_oval(self.xposition,self.yposition,self.xposition+self.ballSize,self.yposition+self.ballSize, fill='black',activefill="grey",width=0)
self.xspeed = random.randrange(-3,3)
self.yspeed = random.randrange(-3,3)
def move(self):
canvas.move(self.shape, self.xspeed, self.yspeed)
pos = canvas.coords(self.shape)
if pos[2] >= canvasWidth or pos[0] <= 0:
self.xspeed = -self.xspeed
if pos[3] >= canvasHeight or pos[1] <= 0:
self.yspeed = -self.yspeed
balls=[]
for i in range(20):
balls.append(Ball())
while True:
for ball in balls:
ball.move()
root.update()
time.sleep(0.01)
root.mainloop()
Dies scheint eher ein Problem auf der Tkinter-Seite als die Python-Seite. –
Errr, entfernen Sie einfach die entsprechende Instanz aus der "Bälle" -Liste, das gelöschte Objekt wird nicht iteriert werden. –
Dies scheint nichts mit "Delet [ing] Objekt [s] aus [a] Klasse" zu tun zu haben. Sie müssen die Tkinter-API lesen, um zu erfahren, wie Sie ein Objekt aus dem Spiel entfernen. – Carcigenicate