We're having a problem with the code below, which is returning this error: Traceback (most recent call last): File "C:\Users\HO\Desktop\USER\SERVER.Master\Python\Games\LightSlayer\LightSlayer.py", line 95, in <module> if pygame.sprite.spritecollide(monster, player, False): File "C:\Python25\lib\site-packages\pygame\sprite.py", line 1344, in spritecollide for s in group: TypeError: 'Player' object is not iterable
- - - Any feedback is appreciated. Thanks! code follows . . . - - - #(c) 2012 Henry Olling import pygame, sys from pygame.color import THECOLORS class Player(pygame.sprite.Sprite): def __init__(self, image_file, speed, location): pygame.sprite.Sprite.__init__(self) #call Sprite initializer self.image = pygame.image.load(image_file) self.rect = self.image.get_rect() self.rect.left, self.rect.top = location self.speed = speed class Monster(pygame.sprite.Sprite): def __init__(self, image_file, speed, location): pygame.sprite.Sprite.__init__(self) #call Sprite initializer self.image = pygame.image.load(image_file) self.rect = self.image.get_rect() self.rect.left, self.rect.top = location self.speed = speed def move(self): self.rect = self.rect.move(self.speed) # bounce off the sides of the window if self.rect.left < 0 or self.rect.right > screen.get_width(): self.speed[0] = -self.speed[0] # bounce off the top of the window if self.rect.top <= 0 : self.speed[1] = -self.speed[1] if self.rect.top >= 575: self.speed[1] = -self.speed[1] pygame.init() pygame.mixer.init() screen = pygame.display.set_mode([600,600]) clock = pygame.time.Clock() player = Player('Player.png', [10,10], [50, 50]) monster = Monster('Monster.png', [7,5], [7,5]) MGroup = pygame.sprite.Group(monster) PGroup = pygame.sprite.Group(player) #VAR points = 0 health = 100 KILLS = 0 #TEXT font = pygame.font.Font(None, 50) score_text = font.render(str(points), 1, (0,255,0)) textpos = [10,10] font = pygame.font.Font(None, 50) health_text = font.render(str(health), 1, (0, 255, 0)) textpos1 = [50,10] #MUSIC Shot_S = pygame.mixer.Sound('0001.wav') Score = pygame.mixer.Sound('0002.wav') Kill = pygame.mixer.Sound('0003.wav') GameOver = pygame.mixer.Sound('0004.wav') pygame.mixer.music.load('CS.mp3') pygame.mixer.music.play(-1) pygame.time.delay(200) #MAIN while 1: clock.tick(30) screen.fill([255, 255, 255]) bgdtile = pygame.image.load('BAK.png') background = pygame.Surface([1000,900]) for x in range(0, 10000, bgdtile.get_width()): background.blit(bgdtile, (x, 0)) screen.blit(background, (0,0)) monster.move() for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() SystemExit if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: player.rect.top = player.rect.top - 100 if event.key == pygame.K_DOWN: player.rect.top = player.rect.top + 100 if event.key == pygame.K_RIGHT: player.rect.left = player.rect.left + 100 if event.key == pygame.K_LEFT: player.rect.left = player.rect.left - 100 if pygame.sprite.spritecollide(monster, player, False): Kill.play() screen.blit(player.image, player.rect) screen.blit(monster.image, monster.rect) screen.blit(health_text, textpos1) screen.blit(score_text, textpos) pygame.display.flip()