В моей программе для имитации движения добавляется позиция x точки, старая точка очищается и рисуется новая.
def drawing_zombies():
clear()
for zombie in zombies:
goto(zombie.x, zombie.y)
dot(20, 'red')
update()
def movement():
for zombie in zombies:
zombie.x -= 0.5
drawing_zombies()
Я видел запуск очень похожей программы, и ее точка не мигала, казалось, что она действительно двигалась. Однако, когда моя программа запускается, она мигает (исчезает и появляется снова очень быстро)
Остальной код приведен ниже (помимо кучи вещей, определяющих векторный класс, который такой же, как и в сработавшей программе, так что внутри него не может быть проблемы)
class vector(collections.abc.Sequence):
precision = 6
__slots__ = ('_x', '_y', '_hash')
def __init__(self, x, y):
self._hash = None
self._x = round(x, self.precision)
self._y = round(y, self.precision)
#The rest of the vector class would have been here
zombies = []
placement_options = [0, 1, 2, -1]
def new_zombie():
placement_level = random.choice(placement_options)
z = vector(200, placement_level*100)
print(placement_level)
zombies.append(z)
def drawing_zombies():
clear()
for zombie in zombies:
goto(zombie.x, zombie.y)
dot(20, 'red')
update()
def movement():
for zombie in zombies:
zombie.x -= 0.5
drawing_zombies()
for z in zombies:
if z.x < -200:
done()
ontimer(movement(), 50)
def gameplay():
setup(420, 420, 370, 0)
hideturtle()
up()
new_zombie()
movement()
done()
gameplay()
turtle.tracer(False)
в начале функции иturtle.tracer(True)
в конце. - person Johnny Mopp   schedule 10.06.2020tracer(False)
сработало. Вы должны сделать это ответом. - person Frasher Gray   schedule 11.06.2020