С приведенным ниже кодом я могу получить добавленный спрайт для удаления и удаления из списка на случай нажатия, но, к сожалению, это не то, что мне нужно. Я часами пытался обманывать его, пытаясь заставить его автоматически удалять и удалять из списка после того, как он зациклился по классу движения 15 раз. (Я могу поставить, что, если вам это нужно, чтобы помочь мне с этим.Удаление и удаление добавленного объекта - python
class projectilesGroup(object):
def __init__(self, canvas):
self.canvas = canvas
self.projectiles = list()
self.moving = True
def clicked(self, event, projectile):
print('clicked:', projectile),
# remove oval from canvas
self.canvas.delete(projectile.oval)
# remove enemy from list
self.projectiles.remove(projectile)
def add_new_projectile(self):
print(len(self.projectiles))
if len(self.projectiles) < 5:
e = projectile(self.canvas)
# stop new enemy if all enemies are stoped
e.moving = self.moving
self.canvas.tag_bind(e.oval, '<Button-1>', lambda event:self.clicked(event, e))
self.projectiles.append(e)
else:
print("You have 5 spells active - I can't add more.")
спасибо.
def move(self):
if repcount < 15:
if self.moving: # to stop root.after
if self.direction == 1: # up
self.y1 -= self.radius
self.y2 -= self.radius
elif self.direction == 2: # down
self.y1 += self.radius
self.y2 += self.radius
elif self.direction == 3: # left
self.x1 -= self.radius
self.x2 -= self.radius
elif self.direction == 4: # right
self.x1 += self.radius
self.x2 += self.radius
self.canvas.coords(self.oval, self.x1, self.y1, self.x2, self.y2)
repcount += 1
root.after(20, self.move)
else:
print('done')
Да, у меня есть счетчик вокруг класса движения –
см. Новое редактирование. –
сладкое спасибо, я получил его на работу –