示例#1
0
 def onButton(self, event):
     button = event.GetEventObject()
     name = button.GetName()
     if name == "1":
         temp = SpriteLib.Alien(1)
         type = 1
         subType = 1
     elif name == "2":
         temp = SpriteLib.Alien(2)
         type = 1
         subType = 2
     elif name == "3":
         temp = SpriteLib.Alien(3)
         type = 1
         subType = 3
     elif name == "4":
         temp = SpriteLib.Alien(4)
         type = 1
         subType = 4
     elif name == "5":
         temp = SpriteLib.Alien(5)
         type = 1
         subType = 5
     elif name == "Env1":
         temp = SpriteLib.EnviornmentComponent(1)
         type = 2
         subType = 1
     print self.levelPanel.CalcScrolledPosition(5, 5)
     print self.levelPanel.CalcUnscrolledPosition(5, 5)
     self.staticBitmap.AddImage(
         temp, type, subType, self.levelPanel.CalcUnscrolledPosition(5, 5))
示例#2
0
    def __init__(self, parent, ID):
        wx.ScrolledWindow.__init__(self, parent, ID)

        self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))

        self.mainSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.scrollPnlSizer = wx.BoxSizer(wx.VERTICAL)
        self.contentSizer = wx.FlexGridSizer(rows=2, cols=2, hgap=10, vgap=5)

        #create panel for level data
        self.levelPanel = scrolled.ScrolledPanel(self,
                                                 -1,
                                                 size=(350, 400),
                                                 style=wx.TAB_TRAVERSAL
                                                 | wx.SUNKEN_BORDER,
                                                 name="levelPanel")

        self.staticBitmap = DragableCanvasBitmap(self.levelPanel)

        self.scrollPnlSizer.Add(self.staticBitmap, 0, wx.ALL, 5)
        self.levelPanel.SetSizer(self.scrollPnlSizer)

        self.mainSizer.Add(self.levelPanel, flag=wx.EXPAND)

        #add buttons for images
        self.contentSizer.Add(self.addButton(SpriteLib.Alien(1), "1"))
        self.contentSizer.Add(self.addButton(SpriteLib.Alien(2), "2"))
        self.contentSizer.Add(self.addButton(SpriteLib.Alien(3), "3"))
        self.contentSizer.Add(self.addButton(SpriteLib.Alien(4), "4"))
        self.contentSizer.Add(self.addButton(SpriteLib.Alien(5), "5"))
        self.contentSizer.Add(
            self.addButton(SpriteLib.EnviornmentComponent(1), "Env1"))

        b = wx.Button(self, 10, "Save Level", (20, 20))
        self.Bind(wx.EVT_BUTTON, self.OnSaveClick, b)
        b.SetDefault()
        b.SetSize(b.GetBestSize())
        self.contentSizer.Add(b)

        self.mainSizer.Add(self.contentSizer)

        self.SetSizer(self.mainSizer)

        self.levelPanel.SetupScrolling()
示例#3
0
    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()