我想添加一個基本的碰撞檢測到一個簡單的平臺遊戲。我有一個班級玩家,當玩家與我想要打印的平臺相撞時(「碰撞」)。我已經使用Platform類創建了所有平臺,並將它們附加到我的方法引用collidelistall(平臺)以檢查衝突的列表中。爲什麼我得到這個錯誤?我的列表包含什麼,如果不是rect對象?我已經發布了相關的代碼段,但是如果需要的話我會發布整個代碼。Pygame:TypeError:參數必須是一個rectstyle對象的序列
感謝。
class Platform():
def __init__(self, platformx, platformy):
self.x = platformx
self.y = platformy
def draw_platform(self):
pygame.draw.rect(screen, RED, (self.x, self.y, 40, 20))
class Player():
def __init__(self):
self.image = pygame.image.load('C:\\Users\\admin\\Desktop\\Player1.png').convert_alpha()
self.rect = self.image.get_rect()
def display_player(self):
return self.image
def is_collided_with(self):
return self.rect.collidelistall(platforms)
pygame.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode(DISPLAY, FLAGS, DEPTH)
pygame.display.set_caption('Rum Islands')
generate = Player()
man = generate.display_player()
platforms = []
loop = True
while loop:
for event in pygame.event.get():
if event.type == QUIT \
or (event.type == KEYDOWN and event.key == K_ESCAPE):
loop = False
if generate.is_collided_with(): #check for collision
print("True")
screen.fill(WHITE)
platform_x = 0
platform_y = 0
for row in level:
for col in row:
if col == "P":
col = Platform(platform_x, platform_y)
col.draw_platform()
platforms.append(col)
platform_x += 15
platform_y += 20
platform_x = 0
使用'print()'看看你有什麼列表。順便說一句:總是把填充錯誤信息(回溯)問題(不僅是信息的一部分,在標題)。還有其他有用的信息 - 即。哪一行出問題。 – furas