TypeError: Invalid rect assignment
TypeError: Invalid rect assignment
我正在尝试制作游戏,但我一直 运行 进入错误 Invalid Rect Assignment。我不知道为什么,也不知道发生了什么。
代码如下:
class Tile(pygame.sprite.Sprite):
def __init__(self, pos, size):
super().__init__()
self.image = pygame.Surface((size, size))
self.image.fill('grey')
self.rect = self.image.get_rect(topleft = pos)
馅饼--
这是另一个代码:
class Player(pygame.sprite.Sprite):
def __init__(self, pos):
super().__init__()
self.image = pygame.Surface((32, 64))
self.image.fill('red')
self.rect = self.image.get_rect(topleft = pos)
self.direction = pygame.math.Vector2(0, 0)
和:
def run(self):
#Level Tiles
self.tiles.update(self.world_shift)
self.tiles.draw(self.display_surface)
# Player
self.player.update()
self.player.draw(self.display_surface)
导致问题的代码:
player = Player(200)
player = Player(200)
这就是问题所在。当 Player()
的构造函数被调用时,它被赋予一个 200 的 pos
参数。这是后来的用户 get_rect( topleft = pos )
.
查看 get_rect() 的 documentation,给定的位置是一个元组,对 co-ordinate 个值。
所以尝试:
player = Player( ( 200, 200 ) )
其中 200,200 是您希望精灵起源的位置。
我正在尝试制作游戏,但我一直 运行 进入错误 Invalid Rect Assignment。我不知道为什么,也不知道发生了什么。
代码如下:
class Tile(pygame.sprite.Sprite):
def __init__(self, pos, size):
super().__init__()
self.image = pygame.Surface((size, size))
self.image.fill('grey')
self.rect = self.image.get_rect(topleft = pos)
馅饼--
这是另一个代码:
class Player(pygame.sprite.Sprite):
def __init__(self, pos):
super().__init__()
self.image = pygame.Surface((32, 64))
self.image.fill('red')
self.rect = self.image.get_rect(topleft = pos)
self.direction = pygame.math.Vector2(0, 0)
和:
def run(self):
#Level Tiles
self.tiles.update(self.world_shift)
self.tiles.draw(self.display_surface)
# Player
self.player.update()
self.player.draw(self.display_surface)
导致问题的代码:
player = Player(200)
player = Player(200)
这就是问题所在。当 Player()
的构造函数被调用时,它被赋予一个 200 的 pos
参数。这是后来的用户 get_rect( topleft = pos )
.
查看 get_rect() 的 documentation,给定的位置是一个元组,对 co-ordinate 个值。
所以尝试:
player = Player( ( 200, 200 ) )
其中 200,200 是您希望精灵起源的位置。