def doGamePlay(self): #update level data envImages, enemies = self._currentLevel.update(1) for envImage in envImages: SpriteLib.EnviornmentComponent( int(envImage.type), self._screenRect, (-100, envImage.xPos), (envImage.movementX, envImage.movementY)) for enemy in enemies: SpriteLib.Alien(int(enemy.type), self._screenRect, (-10, enemy.xPos)) #get key state keystate = pygame.key.get_pressed() #handle player movement self._spaceShip.handleInput(keystate) #Temp - for testing if keystate[K_q]: SpriteLib.Alien(1, self._screenRect, (10, 10)) if keystate[K_w]: SpriteLib.Alien(2, self._screenRect, (50, 10)) if keystate[K_h]: SpriteLib.Alien(3, self._screenRect, (70, 10)) if keystate[K_o]: SpriteLib.Alien(4, self._screenRect, (10, 10)) if keystate[K_y]: SpriteLib.PowerUp(self._screenRect, self._screen, (0, 50), (0, 10), 1) if keystate[K_k]: SpriteLib.Alien(5, self._screenRect, (10, 10)) #Collision Detection - shots vs aliens collision = pygame.sprite.groupcollide(self._playerShotsGroup, self._aliensGroup, False, False) for shot in collision.iterkeys(): if pygame.sprite.collide_mask(shot, collision[shot][0]): shot.hit(collision[shot][0]) shot.kill() #Collision Detection - shots vs background pygame.sprite.groupcollide(self._playerShotsGroup, self._backgroundGroup, True, False, pygame.sprite.collide_mask) #Collision Detection - player vs aliens for alien in pygame.sprite.spritecollide(self._spaceShip, self._aliensGroup, False): if alien.hit(self._spaceShip): #game over - TODO, menu system print "Game Over!!!" return self._interface.setHitPoints(self._spaceShip.getMaxHP(), self._spaceShip.getHP()) alien.kill() #Collision Detection - player vs background for backgroundImage in pygame.sprite.spritecollide( self._spaceShip, self._backgroundGroup, False): if pygame.sprite.collide_mask(self._spaceShip, backgroundImage): if backgroundImage.hit(self._spaceShip): print "ouch." return self._interface.setHitPoints(self._spaceShip.getMaxHP(), self._spaceShip.getHP()) # clear/erase the last drawn sprites self._allGroup.clear(self._screen, self._background) #update all the sprites self._allGroup.update() #draw the scene dirty = self._allGroup.draw(self._screen) #pygame.display.update(dirty) pygame.display.update()