Как я могу генерировать клоны в Python? - PullRequest
1 голос
/ 25 октября 2019

Я делаю упрощенную версию Space Invaders и пытаюсь выстрелить пулями из персонажа игрока. Я сделал черепаху для персонажа (main_ship) и черепаху для пули (bullet). Как я могу клонировать пулю (для стрельбы по ним)? Вот мой код для маркера:

`bullet = turtle.Turtle()
bullet.speed(0)
bullet.shape("circle")
bullet.color("red")
bullet.shapesize(stretch_wid=0.5, stretch_len=0.5)
bullet.penup()
bullet.goto(main_ship.xcor(), main_ship.ycor())
bullet.hideturtle()`

Я еще ничего не пробовал, так как не могу найти ничего, объясняющего как.

1 Ответ

1 голос
/ 25 октября 2019

Поскольку ваши пули - это черепахи, вы рассматривали собственный метод черепахи clone():

Help on function clone in module turtle:

clone()

    No argument.

    Create and return a clone of the turtle with same position, heading
    and turtle properties.

    Example (for a Turtle instance named mick):
    mick = Turtle()
    joe = mick.clone()

Поскольку черепахи являются по сути глобальными объектами и никогда не собирают мусор, я рекомендую вам не отходы пуль, но лучше сохранить пул (list) доступных, которые вы извлекаете по мере необходимости и добавляете обратно, когда пуля больше не активна. Только клонировать дополнительные маркеры из выделенного прототипа, когда пул пуст.

...