однако всякий раз, когда я пытаюсь переместить кубики, созданные мной из пользовательского класса в моем основном сценарии, я получаю ошибка атрибута -
Код: Выделить всё
AttributeError: 'Brick' object has no attribute '_drawing'Я создал лопатки, которые отлично работают, используя тот же метод, однако создание кирпичей вызывает ошибку, я не знаю, почему это происходит, поскольку я' Я не пытаюсь рисовать, просто переместите кирпич в определенное положение, чтобы начать игру.
Поток кода следующий:
- создать класс весла, который наследует все атрибуты черепахи и используется для управления весло внизу экрана
- создать класс кирпичей, который будет состоять из 3 рядов по 5 кирпичей
- создать мяч, который будет подпрыгивать — не завершено
- иметь основной скрипт, который выполняет всю логику создания и игры.
Код: Выделить всё
import turtle as tt
movespeed = 20
UP = 90
DOWN = 270
LEFT = 180
RIGHT = 0
class Paddle(tt.Turtle):
def __init__(self):
self.paddle = tt.Turtle(shape='square')
self.paddle.color('white')
self.paddle.penup()
self.paddle.shapesize(1, 6, 1)
starting_x = self.paddle.xcor()
starting_y = -350
self.paddle.goto(starting_x, starting_y)
def paddle_left(self):
self.paddle.setheading(LEFT)
new_x = self.paddle.xcor()
new_y = self.paddle.ycor()
self.paddle.goto(new_x, new_y)
self.paddle.forward(15)
def paddle_right(self):
self.paddle.setheading(RIGHT)
new_x = self.paddle.xcor()
new_y = self.paddle.ycor()
self.paddle.goto(new_x, new_y)
self.paddle.forward(15)
Код: Выделить всё
import turtle as tt
import random
color_list = ['red','green','blue', 'yellow','orange', 'purple']
class Brick(tt.Turtle):
def __init__(self):
self.brick = tt.Turtle(shape='square')
self.brick.color(random.choice(color_list))
self.brick.penup()
self.brick.shapesize(1, 6, 1)
# def pop(self):
# self.remove()
Код: Выделить всё
import turtle as tt
import random
import time
import paddle
import brick
screen = tt.Screen()
screen.setup(width=800, height=800)
screen.bgcolor('black')
screen.title('Breakout - An Atari classic')
screen.tracer(0)
pad = paddle.Paddle()
br = brick.Brick()
br.goto(-400,-400)
screen.onkey(pad.paddle_left, "Left")
screen.onkey(pad.paddle_right, "Right")
screen.onkeypress(pad.paddle_left, "Left")
screen.onkeypress(pad.paddle_right, "Right")
screen.onkeyrelease(pad.paddle_left, "Left")
screen.onkeyrelease(pad.paddle_right, "Right")
screen.listen()
game_on = True
while game_on:
screen.update()
time.sleep(0.1)
screen.mainloop()
Код: Выделить всё
super().__init__()
Я не могу найти конкретную информацию, связанную с этой ошибкой. Я понимаю, что это говорит мне о том, что с объектом не связан атрибут, однако я думаю, что я передал класс черепахи, поэтому он должен его наследовать, не так ли? кроме того, тот же метод для созданной мной ракетки подходит и работает по назначению, помещается на холст, перемещается и обновляется.
Подробнее здесь: https://stackoverflow.com/questions/742 ... using-goto
Мобильная версия