python - Pygame - Code Error (multiplayer) -


i have been writing python game pygame. basically, game in have collect 'powerups' possible, , if have more other player, can 'eat' him. however, while works first player, whenever second player gets more first, first 1 disappears. here code:

import pygame,sys,random pygame.locals import *  class player(pygame.sprite.sprite):     playerscore = 0     def __init__(self,loc,x,y):         pygame.sprite.sprite.__init__(self)         self.image = pygame.image.load(loc)         self.rect = self.image.get_rect()         self.rect.x = x         self.rect.y = y         self.movex = 0         self.movey = 0         self.walls = none         allsprites_list.add(self)         def update(self):         self.rect.x += self.movex          block_hit_list = pygame.sprite.spritecollide(self, self.walls, false)         block in block_hit_list:             if self.rect.x > 0:                 self.rect.right = block.rect.left             else:                 self.rect.left = block.rect.right                    self.rect.y += self.movey         block_hit_list = pygame.sprite.spritecollide(self, self.walls, false)         block in block_hit_list:             if self.rect.y > 0:                 self.rect.bottom = block.rect.top             else:                 self.rect.top = block.rect.bottom                 eatingupdate()         player in player_hit_list:             if self.playerscore > player.playerscore:                 allsprites_list.remove(player)             elif self.playerscore < player.playerscore:                 allsprites_list.remove(self)           def movement(self,event,playertype):         self.playertype = playertype         if self.playertype == 1:                 if event.type == pygame.keydown:                 if event.key == pygame.k_left:                     self.movex = -10                 elif event.key == pygame.k_right:                     self.movex = 10                 elif event.key == pygame.k_up:                     self.movey = -10                 elif event.key == pygame.k_down:                     self.movey = 10         if self.playertype == 2:             if event.type == pygame.keydown:                 if event.key == pygame.k_a:                     self.movex = -10                 elif event.key == pygame.k_d:                     self.movex = 10                 elif event.key == pygame.k_w:                     self.movey = -10                 elif event.key == pygame.k_s:                     self.movey = 10      def winning(self):         self.image = pygame.image.load('data/dotl.png')         player_list.remove(self)      def losing(self):         self.image = pygame.image.load('data/circle.png')         player_list.add(self)  class powerup(pygame.sprite.sprite):     def __init__(self):         pygame.sprite.sprite.__init__(self)         self.image = pygame.image.load('data/powerup.png')         self.rect = self.image.get_rect()  def eatingupdate():     if player1.playerscore > player2.playerscore:         player2.losing()         player1.winning()     elif player2.playerscore > player1.playerscore:         player1.losing()         player2.winning()  class wall(pygame.sprite.sprite):     def __init__(self, x, y, width, height):         pygame.sprite.sprite.__init__(self)         self.image = pygame.surface([width, height])         self.image.fill((255,255,255))         self.rect = self.image.get_rect()         self.rect.y = y         self.rect.x = x  pygame.init()  powerup_list = pygame.sprite.group() allsprites_list = pygame.sprite.group() player_list = pygame.sprite.group() wall_list = pygame.sprite.group()  pygame.mixer.init()                          pygame.mixer.music.load('data/song.wav')    pygame.mixer.music.set_volume(0.7)           pygame.mixer.music.play(-1)   player1 = player('data/circle.png',1390,430) player1.walls = wall_list player2 = player('data/circle.png',20,430) player2.walls = wall_list  clock = pygame.time.clock()  background_img = pygame.image.load('data/background.jpg') size = background_img.get_size() pygame.display.set_caption('the troll game')   display = pygame.display.set_mode(size)  clock = pygame.time.clock()  wall = wall(0, 0, 10, 900) wall_list.add(wall) allsprites_list.add(wall)  wall = wall(10, 0, 1440, 10) wall_list.add(wall) allsprites_list.add(wall)  wall = wall(1430,0,10,900) wall_list.add(wall) allsprites_list.add(wall)  wall = wall(0,845,1440,10) wall_list.add(wall) allsprites_list.add(wall)  while 1:     event in pygame.event.get():         if event.type == pygame.quit:             pygame.quit()             sys.exit()         player1.movement(event,1)         player2.movement(event,2)      powerupadd = 5      if len(powerup_list) > 10:         powerupadd = 0     else:         powerupadd += 1      in range(powerup):         powerup = powerup()         powerup.rect.x = random.randrange(background_img.get_width())         powerup.rect.y = random.randrange(background_img.get_height())         powerup_list.add(powerup)         allsprites_list.add(powerup)         powerupadd -= 1      poweruphit_list1 = pygame.sprite.spritecollide(player1,powerup_list,true)     powerup_list2 = pygame.sprite.spritecollide(player2,powerup_list,true)     player_hit_list = pygame.sprite.spritecollide(player1 or player2,player_list, false)      powerup in poweruphit_list1:         player1.playerscore += 1      powerup in poweruphit_list2:         player2.playerscore += 1      player1.update()     player2.update()      display.blit(background_img,(0,0))      allsprites_list.draw(display)      pygame.display.update()     clock.tick(60) 

are there careless mistakes? appreciated.


Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -