Я создаю игру с броском кубиков, в которой мне нужно собрать кубик кубика. На холсте есть кнопка, когда я нажимаю, она должна генерировать точку. Мой вопрос в том, как я могу стереть точку, потому что они просто накладываются друг на друга. Например, если roll_ 1 = 3, он сгенерирует точку с 3 точками на нем, когда я снова щелкну по нему, скажем 4, они просто перекрываются друг с другом. Я хочу, чтобы трехмерные объекты были удалены до того, как будет сгенерировано 4.
from tkinter import *
import random
class Pip:
def __init__(self, x,y,color='black'):
self.x = x
self.y = y
self.color = color
def draw(self):
self.dot = canvas.create_oval(self.x-5, self.y-5, self.x+5,self.y +5, fill = self.color)
def erase(self):
canvas.delete(self.dot)
canvas.update()
class Show6:
def __init__(self, x,y,color = 'black'):
self.x = x
self.y = y
self.color = color
self.pip1 = Pip(self.x-15,self.y-15,self.color)
self.pip2 = Pip(self.x-15, self.y+15, self.color)
self.pip3 = Pip(self.x-15, self.y, self.color)
self.pip4 = Pip(self.x+15, self.y-15, self.color)
self.pip5 = Pip(self.x+15, self.y+15, self.color)
self.pip6 = Pip(self.x+15, self.y, self.color)
def draw(self):
self.pip1.draw()
self.pip2.draw()
self.pip3.draw()
self.pip4.draw()
self.pip5.draw()
self.pip6.draw()
def erase(self):
self.pip1.erase()
self.pip2.erase()
self.pip3.erase()
self.pip4.erase()
self.pip5.erase()
self.pip6.erase()
def rollDice():
roll_1 = random.randint(1,6)
if roll_1 == 1:
pip1.draw()
elif roll_1 == 2:
die1Show2.draw()
elif roll_1 == 3:
die1Show3.draw()
elif roll_1 == 4:
die1Show4.draw()
elif roll_1 == 5:
die1Show5.draw()
else:
die1Show6.draw()
root = Tk()
button = Button(root, text='Roll Dice', command=rollDice, activeforeground='green').pack(fill=X)
canvas = Canvas(root,width=300,height=300)
canvas.pack(side='top')
die1 = canvas.create_rectangle(25,25,75,75)
pip1 = Pip(50,50,'red')
die1Show2 = Show2(50,50,'green')
die1Show3 = Show3(50,50,'black')
die1Show4 = Show4(50,50,'blue')
die1Show5 = Show5(50,50,'yellow')
die1Show6 = Show6(50,50,'pink')