у объекта 'Game' есть атрибут canvas? - PullRequest
0 голосов
/ 12 октября 2019

У меня проблема с объектом 'Game', не имеющим атрибута с именем 'canvas', так что у него нет атрибута с именем canvas?

, хотя я пытался добавить функцию float,похоже, снова появляется та же ошибка.

class PlatformSprite(Sprite):
    def __init__(self,game, photo_image, x, y, width, height):
        Sprite.__init__(self, game)
        self.photo_image = photo_image
        self.image = float(game.canvas.create_image(x, y,image=self.PhotoImage
                           anchor='nw'))
    self.coordinates = Coords(x, y, x + width, y + height)

сообщение об ошибке ...

Traceback (most recent call last):
  File "C:\Users\telta\Desktop\stickman game.py", line 227, in <module>
    0, 480, 100, 10)
  File "C:\Users\telta\Desktop\stickman game.py", line 91, in __init__
    self.image = float(game.canvas.create_image(x, y, \
AttributeError: type object 'Game' has no attribute 'canvas'

ниже приведена классовая игра. Пожалуйста, дайте мне знать об изменениях

class Game:
def __init__(self):
    self.tk = Tk()
    self.tk.title("Mr. Stick Man Races for the Exit")
    self.tk.resizable(0, 0)
    self.tk.wm_attributes("-topmost", 1)
    self.canvas = Canvas(self.tk, width=500, height=500, \
                         highlightthickness=0)
    self.canvas.pack()
    self.tk.update()
    self.canvas_height = 500
    self.canvas_width = 500
    self.bg = PhotoImage(file="D:\\stkmn\\bg2.png")
    w = self.bg.width()
    h = self.bg.height()
    for x in range(0, 5):
        for y in range(0, 5):
            self.canvas.create_image(x * w, y * h, \
                                     image=self.bg, anchor='nw')
    sprites = []
    self.running = True
def mainloop(self):
    while 1:
        if self.running == True:
            for sprite in self.sprites:
                sprite.move()
                self.tk.update_idletasks()
                self.tk.update()
                time.sleep(0.01)
...