Example #1
0
    def initialize(self):
        print(f"Initializing the '{self.sceneName}' level...")

        # Loading resources (images, audio, etc.) before beginning scene
        Player.image = load_image("player.gif")
        Player.shootSound = load_sound("laser.ogg")
        Laser.image = load_image("laser.gif")
        Enemy.image = load_image("spider.gif")
        self.background = load_image("background2.gif").convert()

        # Initialize sprite group
        self.lasers = pygame.sprite.Group()
        self.aliens = pygame.sprite.Group()
        self.all = pygame.sprite.RenderUpdates()

        # Assign groups to sprites
        Laser.containers = self.lasers, self.all
        Enemy.containers = self.aliens, self.all
        Player.containers = self.all
        Score.containers = self.all
        Lives.containers = self.all

        self.player = Player()
        self.score = Score()
        self.lives = Lives(self.player.lives)
        self.all.add(self.score)
        self.all.add(self.lives)
        self.generate_enemies()
Example #2
0
 def setupPlayground(self):
     # libavg setup        
     self.display = avg.DivNode(parent=self._parentNode, size=self._parentNode.size)
     self.renderer = Renderer()     
     background = avg.ImageNode(parent=self.display)
     background.setBitmap(self.backgroundpic) 
     self.display.player = None
     (displayWidth, displayHeight) = self.display.size
     widthThird = (int)(displayWidth / 3)
     fieldSize = (widthThird, displayHeight)
     self.field1 = avg.DivNode(parent=self.display, size=fieldSize)
     self.field2 = avg.DivNode(parent=self.display, size=fieldSize, pos=(displayWidth - widthThird, 0))
     avg.LineNode(parent=self.display, pos1=(0, 1), pos2=(displayWidth, 1))
     avg.LineNode(parent=self.display, pos1=(0, displayHeight), pos2=(displayWidth, displayHeight))   
     self.lines.createImageNode('layer1', dict(parent=self.display, pos=(widthThird, 0)), (2, displayHeight))
     self.lines.createImageNode('layer1', dict(parent=self.display, pos=(displayWidth - widthThird, 0)), (2, displayHeight))  
     # pybox2d setup
     self.world = b2World(gravity=(0, 0), doSleep=True)
     self.hitset = set()
     self.listener = ContactListener(self.hitset)
     self.world.contactListener = self.listener
     self.running = True
     pointsToWin = 999 if self.tutorialMode else config.pointsToWin
     self.leftPlayer, self.rightPlayer = Player(self, self.field1, pointsToWin), Player(self, self.field2, pointsToWin)
     self.leftPlayer.other, self.rightPlayer.other = self.rightPlayer, self.leftPlayer    
     # horizontal lines
     BorderLine(self.world, a2w((0, 1)), a2w((displayWidth, 1)), 1, False, 'redball')
     BorderLine(self.world, a2w((0, displayHeight)), a2w((displayWidth, displayHeight)), 1, False, 'redball')
     # vertical ghost lines
     maxWallHeight = brickSize * brickLines * PPM
     BorderLine(self.world, a2w((maxWallHeight, 0)), a2w((maxWallHeight, displayHeight)), 1, False, 'redball', 'ball') 
     BorderLine(self.world, a2w((displayWidth - maxWallHeight - 1, 0)), a2w((displayWidth - maxWallHeight - 1, displayHeight)), 1, False, 'redball', 'ball')
     self.middleX, self.middleY = self.display.size / 2
     self.middle = a2w((self.middleX, self.middleY))
     BatManager(self.field1, self.world, self.renderer)
     BatManager(self.field2, self.world, self.renderer)
     self.bonus = None
     self.balls = []
     self.redballs = []
     self.towers = []
     self.ghosts = []
     self.mainLoop = g_player.setOnFrameHandler(self.step)