예제 #1
0
    def MainCollide(self, dx, dy):
        for block in gb.maps.new_blocks:
            if self.rect.colliderect(block):
                if block.is_wall:
                    if dx > 0:
                        self.rect.right = block.rect.left
                    if dx < 0:
                        self.rect.left = block.rect.right
                    if dy > 0:
                        self.rect.bottom = block.rect.top
                    if dy < 0:
                        self.rect.top = block.rect.bottom

                #block.ID 3 is stairs down
                if block.ID == 3:
                    gb.onLevel += 1
                    gb.mapName = 'level' + str(gb.onLevel) + '.level'
                    gb.LoadGame()
                    gb.MovePlayer()

                # Closed door 2
                if block.ID == 7:
                    gb.maps.new_blocks.remove(block)
                    newblock = gb.maps.Blocks(5, block.rect.x, block.rect.y,
                                              'door_open2.png', False)
                    gb.maps.new_blocks.append(newblock)

            # Closed door 1
                if block.ID == 8:
                    gb.maps.new_blocks.remove(block)
                    newblock = gb.maps.Blocks(6, block.rect.x, block.rect.y,
                                              'door_open1.png', False)
                    gb.maps.new_blocks.append(newblock)

            # locked door 1
                if block.ID == 9:
                    if self.keys:
                        self.keys -= 1
                        gb.maps.new_blocks.remove(block)
                        newblock = gb.maps.Blocks(5, block.rect.x,
                                                  block.rect.y,
                                                  'door_open2.png', False)
                        gb.maps.new_blocks.append(newblock)

                # locked door 2
                if block.ID == 10:
                    if self.keys:
                        self.keys -= 1
                        gb.maps.new_blocks.remove(block)
                        newblock = gb.maps.Blocks(6, block.rect.x,
                                                  block.rect.y,
                                                  'door_open1.png', False)
                        gb.maps.new_blocks.append(newblock)
예제 #2
0
 def Saving(self):
     waiting = True
     key = gb.pygame.key.get_pressed()
     gb.pygame.font.init()
     myfont = gb.pygame.font.SysFont("monospace", 30)
     color = (0,0,0)
     while waiting:
         event = gb.pygame.event.poll()
         if event.type == gb.pygame.QUIT:
             waiting = False
         gb.maps.render()
         
         saveText = myfont.render("Save", 1, (255, 255, 255))
         quitText = myfont.render("Quit", 1, (255, 255, 255))
         
        
         yesBox = gb.pygame.draw.rect(gb.window.screen, (color), 
             (((800/3)), 100, 125, 50))  
         noBox = gb.pygame.draw.rect(gb.window.screen, (color), 
             ((((800/4)*2)), 100, 125, 50))
         
         yesOutline = gb.pygame.draw.rect(gb.window.screen, (255,100,100), 
             (yesBox.x, yesBox.y, 125, 50), 2)
         noOutline = gb.pygame.draw.rect(gb.window.screen, (255,100,100), 
             (noBox.x, noBox.y, 125, 50), 2)
         
         posx, posy = gb.pygame.mouse.get_pos() 
         if event.type == gb.pygame.KEYDOWN and event.key == gb.pygame.K_ESCAPE:
             waiting = False
              
         if event.type == gb.pygame.MOUSEBUTTONUP:
             if event.button == 1:
                 if yesBox.collidepoint(posx, posy):
                     gb.maps.save()
                     gb.LoadGame()
                     waiting = False
                 if noBox.collidepoint(posx, posy):
                     waiting = False
                     gb.playing = False
                     gb.SettingUp.SetUp(True)
         
         gb.window.screen.blit(saveText, (yesBox.x + 30, yesBox.y + 10))
         gb.window.screen.blit(quitText, (noBox.x + 30, noBox.y + 10))
        
         gb.pygame.display.flip()
         gb.window.RenderWindow('black')