Example #1
0
 def addObjects(self, newDrawableObjects):
     for sprite in newDrawableObjects:
         RenderUpdates.add_internal(self, sprite)
         self._spritelist.insert(
             len(self._spritelist) - 1,
             [sprite, sprite.getXPos(),
              sprite.getYPos()])
Example #2
0
    def removeObject(self, sprite):

       for i in self._spritelist:
           if i[0] == sprite:
               self._spritelist.remove(i)
               break
       RenderUpdates.remove_internal(self, sprite)
Example #3
0
  def start_song(self):
    self.toparr_group = RenderUpdates()
    self.fx_group = RenderUpdates()
    self.text_group = RenderUpdates()
    self.text_group.add([self.score, self.lifebar, self.judging_disp])
    self.text_group.add(self.holdtext)

    if mainconfig["showcombo"]: self.text_group.add(self.combos)

    if self.game.double:
      self.arrow_group = [OrderedRenderUpdates(),
                          OrderedRenderUpdates()]

      for i in range(2):
        self.steps[i].play()
        for d in self.game.dirs:
          if mainconfig["explodestyle"] > -1:
            self.toparrfx[i][d].add(self.fx_group)
          if not self.dark: self.toparr[i][d].add(self.toparr_group)
      self.sprite_groups = [self.toparr_group, self.arrow_group[0],
                            self.arrow_group[1], self.fx_group,
                            self.text_group]
    else:
      self.steps.play()
      self.arrow_group = OrderedRenderUpdates()
      for d in self.game.dirs:
        if mainconfig["explodestyle"] > -1: self.toparrfx[d].add(self.fx_group)
        if not self.dark: self.toparr[d].add(self.toparr_group)
      self.sprite_groups = [self.toparr_group, self.arrow_group,
                            self.fx_group, self.text_group]
Example #4
0
    def removeObject(self, sprite):

        for i in self._spritelist:
            if i[0] == sprite:
                self._spritelist.remove(i)
                break
        RenderUpdates.remove_internal(self, sprite)
Example #5
0
    def draw_start_text(self):
        """
        description:
            - Creates and draws the Text object when being in pause mode
        :return: nothing
        """
        dbi = DatabaseInteract()
        sets = dbi.get_settings()

        key_left = sets[1]
        key_right = sets[3]
        key_shoot = sets[8]

        heading1 = TextElement(
            center_position=(400, 400),
            font_size=18,
            bg_rgb=BLUE,
            text_rgb=WHITE,
            text=f"Startwinkel mit '{key_left}' und '{key_right}' auswählen",
            )
        heading2 = TextElement(
            center_position=(400, 450),
            font_size=18,
            bg_rgb=BLUE,
            text_rgb=WHITE,
            text=f"Mit '{key_shoot}' Ball abschiessen, zum Beenden 'ESC' drücken ",
            )
        elems = RenderUpdates(heading1,heading2)
        elems.draw(self.screen)
Example #6
0
	def clear( self, drawToSurface ):
		if self.bgMangr.dirty:
			#there's no point in clearing things because we're
			#about to wipe the whole surface in update()
			return
		RenderUpdates.clear( self, drawToSurface, 
		                     self.bgMangr.GetBgSurface )
    def add_internal(self, sprite):
        #prevent duplication
        if self.spritedict.has_key(sprite):
            return

        RenderUpdates.add_internal(self, sprite)

        if not hasattr(sprite, 'zAxis'):
            #TODO: is this legal?
            sprite.zAxis = 0

        z = sprite.zAxis

        if z == 0:
            self.orderedSprites.insert(0, sprite)

        else:
            success = 0
            for i in range(len(self.orderedSprites) - 1):
                candidate = self.orderedSprites[i]
                if z < candidate.zAxis:
                    self.orderedSprites.insert(i, sprite)
                    success = 1
                    break
            if not success:
                self.orderedSprites.append(sprite)
Example #8
0
 def addObject(self, newDrawableObject):
     RenderUpdates.add_internal(self, newDrawableObject)
     self._spritelist.insert(
         len(self._spritelist) - 1, [
             newDrawableObject,
             newDrawableObject.getXPos(),
             newDrawableObject.getYPos()
         ])
Example #9
0
 def load_flower_data(self, data):
     """
     Loads the list of flowers
     :param data:
     :return:
     """
     self.flower_database = data
     self.flowers = RenderUpdates(data.values())
Example #10
0
def main():
    fundo, tela, clock = config()
    musica = pygame.mixer.Sound("BGM/Firelink Shrine.wav")
    grupo = RenderUpdates()
    personagem = Hero(20, 290, "dante", grupo)
    pygame.font.init()
    frase = Text(40, 'Quem eh voce e oque faz aqui?', 'carolingia.ttf')

    lx = [b for b in range(-4, 76)]
    l1 = [-10]
    l2 = [6]

    parede = [x for x in range(-10, 16)]

    iniciarConversa = [43, 0]

    teclas = {
        K_LEFT: False,
        K_RIGHT: False,
        K_UP: False,
        K_DOWN: False,
        K_RETURN: False,
        27: False
    }  # obs 27 = tecla 'esc'

    musica.play()
    fundo = fundo.convert()
    pygame.display.flip()
    while True:
        clock.tick(FPS)

        for e in pygame.event.get([KEYUP, KEYDOWN]):
            valor = (e.type == KEYDOWN)
            if e.key in teclas.keys():
                teclas[e.key] = valor

        if teclas[27]:  # tecla ESC
            pygame.quit()
            sys.exit()

        if teclas[K_LEFT]:
            personagem.move("LEFT")
        if teclas[K_RIGHT]:
            personagem.move("RIGHT")
        if teclas[K_UP]:
            personagem.move("UP")
        if teclas[K_DOWN]:
            personagem.move("DOWN")

        if personagem.px == iniciarConversa[
                0] and personagem.py == iniciarConversa[1]:
            tela.blit(frase.frases, (200, 500))
            pygame.display.flip()

        #print(personagem.px, personagem.py)

        grupo.clear(tela, fundo)
        pygame.display.update(grupo.draw(tela))
Example #11
0
def main():
    colided_list = []
    level, screen, clock, fps, rect_list = set_config()
    group = RenderUpdates()
    heroine = Hero(100, 30, group)

    keys = {
        K_LEFT: False,
        K_RIGHT: False,
        K_UP: False,
        K_DOWN: False,
        K_RETURN: False,
        27: False,
        K_a: False
    }  # obs 27 = 'esc'

    pygame.display.flip()

    while True:
        clock.tick(fps)
        for event in pygame.event.get([KEYUP, KEYDOWN]):
            value = (event.type == KEYDOWN)
            if event.key in keys:
                keys[event.key] = value

        idx = heroine.rect.collidelist(rect_list)
        if idx != -1 and rect_list[idx] not in colided_list:
            colided_list.append(rect_list[idx])
            print rect_list[idx]
            if rect_list[
                    idx].x <= heroine.rect.x and heroine.rect.x <= rect_list[
                        idx].width:
                heroine.fsm.set_state("stand_still")
                heroine.cannot_move_to = None
                #import pdb; pdb.set_trace()
            else:
                heroine.cannot_move_to = heroine.fsm.side
        if idx == -1:
            heroine.fsm.set_state("fall")

        if keys[27]:  # tecla ESC
            pygame.quit()
            sys.exit()
        elif keys[K_LEFT] and heroine.cannot_move_to != "left":
            heroine.fsm.set_state("move")
            heroine.fsm.update("left")
        elif keys[K_RIGHT] and heroine.cannot_move_to != "right":
            heroine.fsm.set_state("move")
            heroine.fsm.update("right")
        elif keys[K_UP]:
            heroine.fsm.set_state("jump")
        elif keys[K_DOWN]:
            heroine.fsm.set_state("get_down")
        elif keys[K_a]:
            heroine.fsm.set_state("attack")
        heroine.fsm.auto_update()
        utils.clear_screen(level, screen)
        pygame.display.update(group.draw(screen))
Example #12
0
 def clear(self):
     """
         Clear all of the sprites in the group to the background.
     """
     levels = self.levels.keys()
     levels.sort()
     for l in levels:
         level = self.levels[l]
         RenderUpdates.clear(level, self.screen, self.bg)
Example #13
0
 def clear_layer(self):
     """Not used at this time.
     """
     for sprite in self.sprites():
         if len(self.levels) > 1:
             levels = self.levels.keys()
             levels.sort()
             for l in levels[1:]:
                 level = self.levels[l]
                 RenderUpdates.clear(level, self.screen, self.bg)
Example #14
0
    def __init__(self, randomizer):
        self.randomizer = randomizer

        # Set title
        pygame.display.set_caption("Pybomber")

        # Setup screen
        self.screen = pygame.display.get_surface()

        # Create sprite groups
        self.populatedBombGroup = SpriteGroup()
        self.bombGroup = SpriteGroup()
        self.bomberGroup = SpriteGroup()
        self.explosionGroup = SpriteGroup()
        self.immutableGroup = SpriteGroup()
        self.powerUpGroup = SpriteGroup()
        self.mutableGroup = SpriteGroup()
        self.universalGroup = SpriteGroup()  # For drawing everything.
        self.dirtyGroup = SpriteGroup()
        self.flyOverGroup = SpriteGroup()
        # Load a background
        self.background = pygame.image.load(BACKGROUND).convert()
        self.map = None

        # Draw background on screen
        self.screen.blit(self.background, ((0, 0), RESOLUTION))

        # Number of rows and colums in the current map.
        self.mapRows = 0
        self.mapColumns = 0
Example #15
0
    def __init__(self, randomizer):
        self.randomizer = randomizer

        # Set title
        pygame.display.set_caption("Pybomber")

        # Setup screen
        self.screen = pygame.display.get_surface()

        # Create sprite groups
        self.populatedBombGroup = SpriteGroup()
        self.bombGroup = SpriteGroup()
        self.bomberGroup = SpriteGroup()
        self.explosionGroup = SpriteGroup()
        self.immutableGroup = SpriteGroup()
        self.powerUpGroup = SpriteGroup()
        self.mutableGroup = SpriteGroup()
        self.universalGroup = SpriteGroup() # For drawing everything.
        self.dirtyGroup = SpriteGroup()
        self.flyOverGroup = SpriteGroup()
        # Load a background
        self.background = pygame.image.load(BACKGROUND).convert()
        self.map = None

        # Draw background on screen
        self.screen.blit(self.background, ((0, 0), RESOLUTION))

        # Number of rows and colums in the current map.
        self.mapRows = 0
        self.mapColumns = 0
Example #16
0
	def __init__( self, screen, display ):
		self.nextModelClass = None
		self.screen = screen
		self.screenRect = screen.get_rect()
		self.display = display

		self.model = None

		self.bgImage = load_png( 'bg_mainmenu.png' )

		self.btnGroup = RenderUpdates()

		fBtn = ImgButton( 'freestyle', self.Freestyle )
		fBtn.rect.midtop = self.screenRect.midtop
		fBtn.rect.y += 100
		self.btnGroup.add( fBtn )
		self.freestyleButton = fBtn

		fBtn = ImgButton( 'freestyle_tricky', self.FreestyleTricky )
		fBtn.rect.midtop = self.screenRect.midtop
		fBtn.rect.y += 160
		self.btnGroup.add( fBtn )
		self.freestyleTrickyButton = fBtn

		fBtn = ImgButton( 'speedy', self.Speedy )
		fBtn.rect.midtop = self.screenRect.midtop
		fBtn.rect.y += 220
		self.btnGroup.add( fBtn )
		self.speedyButton = fBtn

		fBtn = ImgButton( 'sharpshooter', self.Sharpshooter )
		fBtn.rect.midtop = self.screenRect.midtop
		fBtn.rect.y += 280
		self.btnGroup.add( fBtn )
		self.sharpshooterButton = fBtn

		fBtn = ImgButton( 'firehose', self.Firehose )
		fBtn.rect.midtop = self.screenRect.midtop
		fBtn.rect.y += 340
		self.btnGroup.add( fBtn )
		self.firehoseButton = fBtn

		fBtn = ImgButton( 'loading', self.Loading )
		fBtn.rect.midtop = self.screenRect.midtop
		fBtn.rect.y += 400
		self.loadingButton = fBtn


		dBtn = ImgButton( 'debug', self.Debug )
		dBtn.rect.midbottom = self.screenRect.midbottom
		dBtn.rect.y -= 10
		self.btnGroup.add( dBtn )
		self.debugButton = dBtn

		self.groups = [ self.btnGroup ]
Example #17
0
def getLoadScreen():
    screen = Display.get_surface()
    splashGroup = SpriteGroup()

    # Create text for connecting player
    connectingText = TextBar("Loading...", (0, 20, 250, 50), 35)
    imgWidth = connectingText.image.get_width()
    connectingText.rect.left = (screen.get_size()[X] - imgWidth) / 2
    splashGroup.add(connectingText)

    return splashGroup, connectingText
Example #18
0
 def add_below(self, ref_sprite, sprite):
     """ Add the sprite to the group below ref_sprite.
     
     The sprite will be added below ref sprite so ref_sprite is
     on top of it.
     """
     RenderUpdates.add_internal(self, sprite)
     i = self._spritelist.index(ref_sprite)
     self._spritelist.insert(i+1, sprite)
     
     sprite.add_internal(self)
Example #19
0
def getLoadScreen():
    screen = Display.get_surface()
    splashGroup = SpriteGroup()

    # Create text for connecting player
    connectingText = TextBar ('Loading...', (0, 20, 250, 50), 35)
    imgWidth = connectingText.image.get_width()
    connectingText.rect.left = (screen.get_size()[X] - imgWidth) / 2
    splashGroup.add(connectingText)

    return splashGroup,connectingText
Example #20
0
    def __init__(self):
        super().__init__()

        self.ghost = self._create_ghost()
        self.ghost_group = RenderUpdates(self.ghost)

        walls = self._create_walls()
        self.wall_group = RenderUpdates(*walls)

        pickups = self._create_pickups()
        self.pickup_group = RenderUpdates(*pickups)
Example #21
0
 def add_ontop(self, ref_sprite, sprite):
     """ Add the sprite to the group on top ref_sprite.
     
     The sprite will be added on top of ref sprite so ref_sprite is
     below of it.
     """
     RenderUpdates.add_internal(self, sprite)
     i = self._spritelist.index(ref_sprite)
     self._spritelist.insert(i, sprite)
     
     sprite.add_internal(self)
Example #22
0
    def __init__(self):
        super().__init__()

        self.ball = self._create_ball()
        self.ball_group = RenderUpdates(self.ball)

        self.paddles = self._create_paddles()
        self.paddle_group = RenderUpdates(*self.paddles)

        self.border_walls = self._create_border()
        self.border_group = RenderUpdates(*self.border_walls)
    def __init__(self, items):
        platforms = [Platform([400 + 260 * i, 390], s[0], i)
                     for i, s in enumerate(items)]
        credits = Credits()
        self._score = TopScores()
        sprites = RenderUpdates([credits, self._score])
        sprites.add(platforms)

        pos = 0
        em = EventManager()
        em.clear()
        screen = pygame.display.get_surface()

        em.get()
        quit = False

        screen.blit(Menu.bg, [0, 0])
        sprites.draw(screen)
        pygame.display.update()
        
        while not quit:
            for ev in em.get():
                if ev.type == PLAYER:
                    if ev.key == LEFT:
                        if pos != 0:
                            pos -= 1
                            for p in platforms: p.left()
                    elif ev.key == RIGHT:
                        if pos != len(items) - 1:
                            pos += 1
                            for p in platforms: p.right()
                    else:
                        try:
                            r = items[pos][1][ev.key](self, platforms[pos],
                                                      pos, ev.key)
                            if r:
                                # If the callback returns true, then we
                                # need to redraw the whole screen and
                                # reread our scores. (If it returns false,
                                # it probably means it just modified some
                                # cart text).
                                self._score.read_scores()
                                screen.blit(Menu.bg, [0, 0])
                                pygame.display.update()
                        except KeyError: pass

                elif ev.type == QUIT: quit = True

            sprites.update(pygame.time.get_ticks())
            pygame.display.update(sprites.draw(screen))
            sprites.clear(screen, Menu.bg)
            pygame.time.clock.tick(60)
Example #24
0
def main():
    fundo, tela, clock = config()
    musica = pygame.mixer.Sound("BGM/Firelink Shrine.wav")
    grupo = RenderUpdates()
    personagem = Hero(20, 290, "dante", grupo)
    pygame.font.init()
    frase = Text(40, 'Quem eh voce e oque faz aqui?', 'carolingia.ttf')

    lx = [b for b in range(-4, 76)]
    l1 = [-10]
    l2 = [6]

    parede = [x for x in range(-10, 16)]

    iniciarConversa = [43, 0]

    teclas = {K_LEFT: False, K_RIGHT: False, K_UP: False, K_DOWN: False,
              K_RETURN: False, 27: False}  # obs 27 = tecla 'esc'

    musica.play()
    fundo = fundo.convert()
    pygame.display.flip()
    while True:
        clock.tick(FPS)

        for e in pygame.event.get([KEYUP, KEYDOWN]):
            valor = (e.type == KEYDOWN)
            if e.key in teclas.keys():
                teclas[e.key] = valor

        if teclas[27]:  # tecla ESC
            pygame.quit()
            sys.exit()

        if teclas[K_LEFT]:
            personagem.move("LEFT")
        if teclas[K_RIGHT]:
            personagem.move("RIGHT")
        if teclas[K_UP]:
            personagem.move("UP")
        if teclas[K_DOWN]:
            personagem.move("DOWN")

        if personagem.px == iniciarConversa[0] and personagem.py == iniciarConversa[1]:
            tela.blit(frase.frases, (200, 500))
            pygame.display.flip()

        #print(personagem.px, personagem.py)

        grupo.clear(tela, fundo)
        pygame.display.update(grupo.draw(tela))
Example #25
0
class CursorScreen(Screen):
    """A Screen with custom cursors"""
    def setup(self):
        self._cursor_group = RenderUpdates()
        self._loaded_cursor = None
        self.set_cursor(None)

    def on_enter(self):
        super(CursorScreen, self).on_enter()
        pygame.mouse.set_visible(0)

    def on_exit(self):
        super(CursorScreen, self).on_exit()
        pygame.mouse.set_visible(1)

    def draw(self, surface):
        super(CursorScreen, self).draw(surface)
        self.set_cursor(self.game.tool)
        self._loaded_cursor.set_highlight(self.cursor_highlight())
        self._cursor_group.update()
        self._cursor_group.draw(surface)

    def set_cursor(self, item):
        if item is None or item.CURSOR is None:
            cursor = HAND
        else:
            cursor = item.CURSOR
        if cursor != self._loaded_cursor:
            self._loaded_cursor = cursor
            self._loaded_cursor.load(self.gd.resource)
            self._cursor_group.empty()
            self._cursor_group.add(self._loaded_cursor)

    def cursor_highlight(self):
        return self.container.mouseover_widget.highlight_cursor
Example #26
0
    def __init__(self, sprites):

       self._spritelist = [[sprites, sprites.getXPos(), sprites.getYPos()]]
       #self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()])
       RenderUpdates.__init__(self, sprites)

       self.xPos = 0
       self.yPos = 0
       self.xSize = 0
       self.ySize = 0
       
       self.calcPosition()
       self.calcSize()
       self.setRelativePositions()
Example #27
0
def titleScreen(screen, clock, menu):
    title = UITextElement(
        True, [screen.get_width() / 2,
               int(60 * (screen.get_height() / 720))], "Game",
        int(50 * (screen.get_height() / 720)), None, (255, 255, 255))
    play_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(410 * (screen.get_height() / 720))], "Play",
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255), "M.Game")
    options_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(460 * (screen.get_height() / 720))], "Options",
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255),
        "M.Options")
    quit_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(510 * (screen.get_height() / 720))], "Quit",
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255), "M.Quit")

    buttons = RenderUpdates(title, play_button, options_button, quit_button)
    ##buttons.add(new_button)
    return menuLoop(screen, clock, menu, buttons)
Example #28
0
def title_screen(screen, player=False):
    # Make a Title that is a "button"
    game_title = UIElement(
        center_position=(400, 200),
        font_size=100,
        bg_rgb=TITLE_SCREEN_COLOR,
        text_rgb=TITLE_TEXT_COLOR,
        text="Party 2020!",
        reactive=False,
    )
    # Make the start "button"
    start_button = UIElement(
        center_position=(400, 400),
        font_size=50,
        bg_rgb=TITLE_SCREEN_COLOR,
        text_rgb=TITLE_TEXT_COLOR,
        text="START",
        action=GameMode.GAME_SCREEN,
    )
    # Make the quit "button"
    quit_button = UIElement(
        center_position=(400, 450),
        font_size=30,
        bg_rgb=TITLE_SCREEN_COLOR,
        text_rgb=TITLE_TEXT_COLOR,
        text="QUIT",
        action=GameMode.QUIT,
    )
    # Make a description that is a "button"
    desc1 = UIElement(
        center_position=(400, 525),
        font_size=15,
        bg_rgb=TITLE_SCREEN_COLOR,
        text_rgb=TITLE_TEXT_COLOR,
        text="Avoid the virus",
        reactive=False,
    )
    # Make a description that is a "button"
    desc2 = UIElement(
        center_position=(400, 540),
        font_size=15,
        bg_rgb=TITLE_SCREEN_COLOR,
        text_rgb=TITLE_TEXT_COLOR,
        text="Masks will save you if you're exposed to the virus",
        reactive=False,
    )
    # Make a description that is a "button"
    desc3 = UIElement(
        center_position=(400, 555),
        font_size=15,
        bg_rgb=TITLE_SCREEN_COLOR,
        text_rgb=TITLE_TEXT_COLOR,
        text="Catch toilet paper",
        reactive=False,
    )

    buttons = RenderUpdates(game_title, start_button, quit_button, desc1,
                            desc2, desc3)

    return title_loop(screen, buttons, fill=TITLE_SCREEN_COLOR)
Example #29
0
    def __init__(self, layer=None, sprites=[]):
        """Initialize the sprite group.

        @param layer: L{Screen.Layer} in which the sprite lives.
        @param sprites: Initial sprite or sequence of sprites in the group.

        """
        self.levels = {0: self}
        if layer is None:
            layer = conf.window
        else:
            pass
        self.layer = layer
        self.screen = layer.screen
        self.bg = layer.bg
        RenderUpdates.__init__(self, sprites)
Example #30
0
def title_screen(screen):
    title_btn = UIElement(center_position=(350, 250),
                          font_size=50,
                          bg_rgb=BLACK,
                          text_rgb=WHITE,
                          text="Earth invaders")
    start_btn = UIElement(
        center_position=(350, 350),
        font_size=30,
        bg_rgb=BLACK,
        text_rgb=WHITE,
        text="Start",
        action=GameState.NEWGAME,
    )
    quit_btn = UIElement(
        center_position=(350, 450),
        font_size=30,
        bg_rgb=BLACK,
        text_rgb=WHITE,
        text="Quit",
        action=GameState.QUIT,
    )

    secret_btn = UIElement(
        center_position=(538, 373),
        font_size=30,
        bg_rgb=WHITE,
        text_rgb=WHITE,
        text=".",
        action=GameState.SECRET,
    )

    buttons = RenderUpdates(title_btn, start_btn, quit_btn, secret_btn)

    return game_loop(screen, buttons)
Example #31
0
def manual_play(screen, board):
    root = Tk()
    canvas = Canvas(root)
    temp_new = Toplevel(canvas)
    Manual_play_window(temp_new, board)
    root.quit()
    root.mainloop()
    action=GameState.NEWGAME
    return_btn = UIElement(
        center_position=(400, 400),
        font_size=30,
        bg_rgb=BLUE,
        text_rgb=WHITE,
        text="Back",
        action=GameState.NEWGAME,
    )
    quit_btn = UIElement(
        center_position=(400, 500),
        font_size=30,
        bg_rgb=BLUE,
        text_rgb=WHITE,
        text="Quit",
        action=GameState.QUIT,
    )
    buttons = RenderUpdates(return_btn, quit_btn)
    return game_loop(screen, buttons)
Example #32
0
def play_level(screen, player):
    return_btn = UIElement(
        center_position=(110, 670),
        font_size=30,
        text_rgb=BLACK,
        text="Main menu",
        action=GameState.TITLE,
    )

    humlevel_btn = UIElement(
        center_position=(400, 200),
        font_size=40,
        text_rgb=BLACK,
        text="Human v/s Human",
        action=GameState.HUMAN,
    )

    AIlevel_btn = UIElement(
        center_position=(400, 300),
        font_size=40,
        text_rgb=BLACK,
        text="Human v/s AI",
        action=GameState.AI,
    )

    buttons = RenderUpdates(return_btn, humlevel_btn, AIlevel_btn)

    return game_loop(screen, buttons)
Example #33
0
def pauseScreen(screen, clock, menu):
    title = UITextElement(
        True, [screen.get_width() / 2,
               int(60 * (screen.get_height() / 720))], "Pause",
        int(50 * (screen.get_height() / 720)), None, (255, 255, 255))
    resume_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(160 * (screen.get_height() / 720))], ("Resume"),
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255), "M.Back")
    save_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(210 * (screen.get_height() / 720))], ("Save"),
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255), "S.Save")
    options_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(260 * (screen.get_height() / 720))], ("Options"),
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255),
        "M.Options")
    back_button = UITextElement(
        False,
        [screen.get_width() / 2,
         int(660 * (screen.get_height() / 720))], "Exit to main menu",
        int(30 * (screen.get_height() / 720)), None, (255, 255, 255), "M.Main")

    buttons = RenderUpdates(title, resume_button, save_button, options_button,
                            back_button)
    return menuLoop(screen, clock, menu, buttons)
Example #34
0
	def __init__( self, screen, display ):
		self.screen = screen
		self.screenRect = screen.get_rect()
		self.display = display
		self.model = None
		self.currentTime = 0

		self.bgImage = load_png( 'bg_game.png' )

		self.hiGroup = RenderUpdates()
		self.lowGroup = RenderUpdates()
		self.viewOnlyGroup = RenderUpdates()
		self.bubbleGroup = RenderUpdates()

		self.ins_spin = None
		self.ins_press = None
		self.quitButton = None
		self.squeezePrompt = None

		self.groups = [self.lowGroup, self.bubbleGroup, self.hiGroup, self.viewOnlyGroup]
		self.locks = []

		self.stripeOrder = ['violet','blue','green',
		                    'yellow','orange','red']
		self.stripeHeights = {
		                     'violet': 233,
		                     'blue':   189, 
		                     'green':  136,
		                     'yellow': 85,
		                     'orange': 44,
		                     'red':    11,
		                    }
		self.heaterRects = { 
		                    'green':  Rect ( 160, 470, 80, 100 ),
		                    'blue':   Rect ( 265, 470, 80, 100 ),
		                    'violet': Rect ( 370, 470, 80, 100 ),
		                    'red':    Rect ( 475, 470, 80, 100 ),
		                    'orange': Rect ( 580, 470, 80, 100 ),
		                    'yellow': Rect ( 685, 470, 80, 100 ),
		}


		self.purseStatusbars = []

		controller = mvcState.GetController()
		controller.gameEventListeners.append( self )
Example #35
0
    def __init__(self):
        super().__init__()

        self.player = self._make_player()
        self.player_group = RenderUpdates(self.player)

        self.pickup_count = self._make_pickup_count()
        self.total_time = self._make_total_time()
        self.timer = self._make_timer()
        self.display_group = RenderUpdates(self.timer, self.total_time, 
                                            self.pickup_count)

        self.pickup = self._make_pickup()
        self.pickup_group = RenderUpdates(self.pickup)

        self.walls = self._make_walls()
        self.walls_group = RenderUpdates(*self.walls)
Example #36
0
    def add(self, sprites, level=0):
        """Add sprite to group.

            - sprites: a single sprite, or multiple sprites.
            - level: drawing layer at which to add the sprite.
                     higher numbers will be drawn on top of lower numbers.
                     level less than 0 indicate that sprits will be drawn bellow others
                     Default level is ZERO 
        """
        if level == 0:
            RenderUpdates.add(self, sprites)
        else:
            if not self.levels.has_key(level):
                level_group = SpriteGroup(self.layer)
                self.levels[level] = level_group
            else:
                level_group = self.levels[level]
            level_group.add(sprites)
Example #37
0
	def __init__( self, screen, display ):
		self.screen = screen
		self.screenRect = screen.get_rect()
		self.display = display

		self.model = None

		self.bgImage = load_png( 'bg_winscreen.png' )

		self.btnGroup = RenderUpdates()

		quitBtn = QuitButton()
		quitBtn.rect.bottomleft = self.screenRect.bottomleft
		quitBtn.rect.move_ip( 10, -10 )
		self.btnGroup.add( quitBtn )
		self.quitButton = quitBtn

		self.groups = [ self.btnGroup ]
Example #38
0
    def cleanState(self):
        pygame.display.set_caption("Pybomber")
        self.screen.blit(self.background, ((0, 0), RESOLUTION))

        self.populatedBombGroup = SpriteGroup()
        self.bombGroup = SpriteGroup()
        self.bomberGroup = SpriteGroup()
        self.explosionGroup = SpriteGroup()
        self.immutableGroup = SpriteGroup()
        self.powerUpGroup = SpriteGroup()
        self.mutableGroup = SpriteGroup()
        self.universalGroup = SpriteGroup()  # For drawing everything.
        self.dirtyGroup = SpriteGroup()
        self.groundGroup = SpriteGroup()
        self.flyOverGroup = SpriteGroup()
        self.mapRows = 0
        self.mapColumns = 0
        self.curWidgetID = 0
Example #39
0
    def cleanState(self):
        pygame.display.set_caption("Pybomber")
        self.screen.blit(self.background, ((0, 0), RESOLUTION))

        self.populatedBombGroup = SpriteGroup()
        self.bombGroup = SpriteGroup()
        self.bomberGroup = SpriteGroup()
        self.explosionGroup = SpriteGroup()
        self.immutableGroup = SpriteGroup()
        self.powerUpGroup = SpriteGroup()
        self.mutableGroup = SpriteGroup()
        self.universalGroup = SpriteGroup() # For drawing everything.
        self.dirtyGroup = SpriteGroup()
        self.groundGroup = SpriteGroup()
        self.flyOverGroup = SpriteGroup()
        self.mapRows = 0
        self.mapColumns = 0
        self.curWidgetID = 0
Example #40
0
 def draw_spcl_txt(self):
     """
     description:
         - Write the type of the special that just dropped to the top of the screen.
     :return: nothing
     """
     if self.spcl_text is not None:
         info = TextElement(
             center_position=(590, 10),
             font_size=16,
             bg_rgb=BLUE,
             text_rgb=WHITE,
             text=f"Spezial: {self.spcl_text.text} aufgetaucht",
             )
         elems = RenderUpdates(info)
         elems.draw(self.screen)
         if self.spcl_text.tick():
             self.spcl_text = None
Example #41
0
    def grow_flora(self, play_area):
        """
        Grows the decorative plants
        :param play_area:
        :return: void
        """

        plant_db = grow_plants(play_area,
                               num=randint(90, 150),
                               plant_type="grass",
                               bias="center")

        plant_db = merge_plant_sets(
            plant_db,
            grow_plants(play_area,
                        num=randint(50, 75),
                        plant_type="grassy_plant",
                        bias="edges"))
        plant_db = merge_plant_sets(
            plant_db,
            grow_plants(play_area,
                        num=randint(1, 2),
                        plant_type="pretty_log",
                        bias="edges"))
        plant_db = merge_plant_sets(
            plant_db,
            grow_plants(play_area,
                        num=randint(0, 3),
                        plant_type="stump",
                        bias="edges"))
        plant_db = merge_plant_sets(
            plant_db,
            grow_plants(play_area,
                        num=randint(25, 55),
                        plant_type="leaves",
                        bias="edges"))
        plant_db = merge_plant_sets(
            plant_db,
            grow_plants(play_area,
                        num=randint(15, 25),
                        plant_type="bushy_grass",
                        bias="edges"))

        self.plants = RenderUpdates(list(plant_db.values()))
Example #42
0
    def add_internal (self, sprite):
        """RenderLayer.add_internal (...) -> None
        """
        if sprite in self.spritedict:
            return
        RenderUpdates.add_internal (self, sprite)

        if sprite.depth == 0:
            self.sprite_depths.insert (0, sprite)
        else:
            success = False
            for i in range (len (self.sprite_depths) - 1):
                candidate = self.sprite_depths[i]
                if sprite.depth < candidate.depth:
                    self.sprite_depths.insert (i, sprite)
                    success = True
                    break
            if not success:
                self.sprite_depths.append (sprite)
Example #43
0
def play_level(screen, player):
    return_btn = UIElement(center_position=(140, 570),
                           font_size=30,
                           text_color=WHITE,
                           background_color=BLUE,
                           text="Return to main menu",
                           action=GameState.TITLE)

    buttons = RenderUpdates(return_btn)
    return game_loop(screen, buttons)
Example #44
0
def level_easy(
):  #Create buttons for the Easy level, position them in a random location
    pos = [(250, 300), (600, 300)]
    loc = random.sample(pos, 2)

    greenbtn = make_game_button(loc[0], 70, GREEN)
    redbtn = make_game_button(loc[1], 70, RED)
    loc.clear()
    buttons = RenderUpdates(greenbtn, redbtn)
    return buttons
Example #45
0
def main():
    level, screen, clock, fps = set_config()
    group = RenderUpdates()
    heroine = Hero(20, 140, "elisa", group)

    keys = {
        K_LEFT: False,
        K_RIGHT: False,
        K_UP: False,
        K_DOWN: False,
        K_RETURN: False,
        27: False,
        K_a: False
    }  # obs 27 = 'esc'

    pygame.display.flip()
    while True:
        clock.tick(fps)

        for e in pygame.event.get([KEYUP, KEYDOWN]):
            valor = (e.type == KEYDOWN)
            if e.key in keys.keys():
                keys[e.key] = valor

        if keys[27]:  # tecla ESC
            pygame.quit()
            sys.exit()
        if heroine.attacking:
            heroine.animate_attack()
        elif keys[K_LEFT]:
            heroine.move("left")
        elif keys[K_RIGHT]:
            heroine.move("right")
        elif keys[K_UP]:
            heroine.jump()
        elif keys[K_DOWN]:
            heroine.get_down()
        elif keys[K_a]:
            heroine.attack()
        #heroine.is_jumping(gravity)

        utils.clear_screen(level, screen)
        pygame.display.update(group.draw(screen))
Example #46
0
 def draw(self):
     """
         draw all sprites onto the surface
     """
     render = []
     levels = self.levels.keys()
     levels.sort()
     for lvl in levels:
         level = self.levels[lvl]
         render += RenderUpdates.draw(level, self.screen)
     return render
Example #47
0
 def __init__(self, title='Checkers', log_level=log.INFO, show_fps=False):
     log.basicConfig(level=log_level)
     self.show_fps = show_fps
     self.window_title = title
     self.game = Board(BOARD_DIM)
     # Initialize Game Groups
     self.brown_spaces = RenderUpdates()
     self.pieces = RenderUpdates()
     self.piece_selected = GroupSingle()
     self.space_selected = GroupSingle()
     self.current_piece_position = ORIGIN
     self.screen = None
     self.fps_clock = None
     self.font = None
     self.font_rect = None
     self.background = None
     self.background_rect = None
     self.fps_text = None
     self.fps_rect = None
     self.winner_text = None
     self.winner_rect = None
Example #48
0
File: event.py Project: alecain/one
    def __init__(self):
        self.objs = {}
        self.events = []
        self.render = RenderUpdates()
        self.projectiles = Group()
        self.enemies = Group()
        self.you = None
        self.bg_sprite = BGSprite(pygame.display.get_surface())

        # Since we don't care about MOST EVENTS
        pygame.event.set_allowed(None)
        pygame.event.set_allowed([ MOUSEBUTTONDOWN, KEYDOWN, QUIT, UPDATEEVENT, SPAWNEVENT ])
Example #49
0
    def __init__( self, tela, descricao_mapa=None ):
        self.tela     = tela
        self.entrada  = None
        self.saida    = None
        self.tamanho  = None
        self.mapa     = None
        self.tam_peca = None

        # grupo que contem objetos nao desenhados
        self.nao_desenhados = RenderUpdates()

        if descricao_mapa:
            self.monta_labirinto( descricao_mapa )
Example #50
0
 def __init__(self, title='Checkers', log_drag=False, show_fps=False, ip='127.0.0.1', port=5000, spectate=False):
     self.game_running = True
     self.player = None
     self.log_drag = log_drag
     self.show_fps = show_fps
     self.window_title = title
     self.game = NetBoard(handler=self, ip=ip, port=port, spectate=spectate)
     # Initialize Game Groups
     self.board_spaces = set()
     self.pieces = RenderUpdates()
     self.piece_selected = GroupSingle()
     self.bg_text = RenderUpdates()
     self.fg_text = RenderUpdates()
     self.current_piece_position = ORIGIN
     self.screen = None
     self.fps_clock = None
     self.font = None
     self.background = None
     self.background_rect = None
     self.fps_text = None
     self.winner_text = None
     self.turn_text = None
     self.player_text = None
     self.game_id_text = None
Example #51
0
def main():
    # Get filename
    try:
        image_file = sys.argv[1]
        framerate = sys.argv[2]
    except:
        image_file = raw_input("Enter name of image file: ")
        framerate = raw_input("Enter framerate: ")

    timedelay = (1.0)/(float(framerate))
    # Initialize display
    try:
        screen = pygame.display.set_mode((600,600),
                                    HWSURFACE|DOUBLEBUF)
    except:
        screen = pygame.display.set_mode((600,600))

    background = pygame.image.load(BACKGROUND).convert()
    screen.blit(background, (0,0,400,400))

    temp_img = pygame.image.load(image_file)
    anim_size = (temp_img.get_height(), temp_img.get_height())
    surf = pygame.surface.Surface(anim_size)
    anim = Animation(surf, (0,0,temp_img.get_height(),temp_img.get_height()),
                     image_file)
    sprites = SpriteGroup()
    sprites.add(anim)

    # Display animation
    pygame.display.flip()

    while 1:
        cur_time = t.time()
        sprites.clear(screen, background)
        sprites.update()
        dirty = sprites.draw(screen)
        pygame.display.update(dirty)

        for event in pygame.event.get():
            if event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    sys.exit()

        t.sleep(t.time() - cur_time + timedelay)
Example #52
0
 def __init__(self, name, rect_data, speed, max_frame, max_frame_delay, img):
     """ Init.
     - rect_data : list contains =>
     - x : position x
     - y : position y
     - w : width of rect_collapse
     - h : height of collase
     - direction
     """
     super(BaseEntity, self).__init__()
     self.name = name
     self.rect = None
     self.image = None
     self.childs = Group()
     self.rect_collapse = Rect(rect_data)
     self.speed = speed
     self.direction = UP
     # Create animation for the entity
     self.animation = self.init_animation(max_frame, max_frame_delay, img)
Example #53
0
    def __init__(self,level=0):
        pygame.init()
        
        self.screen = pygame.display.set_mode(self.screen_size)
        if self.title:
            pygame.display.set_caption(self.title)
        self.fps = 30

        #group definitions
        self.userPlacedObjects = Group()
        self.startItems = RenderUpdates()
        self.playerGroup = RenderUpdates()
        self.tails = RenderUpdates()
        self.blackHoles = RenderUpdates()
        self.obstacles = RenderUpdates()
        self.masslessObstacles = RenderUpdates()
        self.goalCollide = Group()
        self.toolbar = OrderedUpdates()

        #level/transition/player & enemy/obstacle creation hocus pocus
        self.goal = Goal(573,372,self.goalCollide,30)
        self.bar = ToolBar(0,626,self.toolbar,self.screen,self,self.goal)
        self.player = Player(50,535,self.screen,(255,0,0),self.playerGroup,1000,624,(2,-2),self.tails,self)
        
        self.level = level
        self.levelUp = True
        self.stars = Starfield(self.screen,1000,626,200)
        BlackHole(339,70,self.blackHoles,self.screen,80,71,16)
        temp = EarthRounder(513,313,self.masslessObstacles,self.screen,40,0)
        temp.rotate(55)
        temp = Alien(60,188,self.masslessObstacles,self.screen,34,1)
        temp.rotate(-15)
        temp = Alien(107,268,self.masslessObstacles,self.screen,35,1)
        temp.rotate(-75)
        temp = Alien(816,533,self.masslessObstacles,self.screen,39,0)
        temp.rotate(-13)
        temp = BlueUpAnDown(811,227,self.masslessObstacles,self.screen,34,1,97,239)
        temp.rotate(80)
        self.obstacles.add(self.blackHoles)
        self.obstacles.add(self.goalCollide)
        self.freeb = False
        self.gotoLevel = level
        self.loaded = False

        if system.thereIsASaveFile() and level == 0:
            self.intro_screen = Intro(0,0,self.startItems,str('title_w_file.png'))
            self.thereIsAFile = True
        elif level == 0:
            self.intro_screen = Intro(0,0,self.startItems)
            self.thereIsAFile = False
Example #54
0
 def __init__(self, title='Checkers', log_level=log.INFO, show_fps=False):
     log.basicConfig(level=log_level)
     self.show_fps = show_fps
     self.window_title = title
     self.game = Board(BOARD_DIM)
     # Initialize Game Groups
     self.brown_spaces = RenderUpdates()
     self.pieces = RenderUpdates()
     self.piece_selected = GroupSingle()
     self.space_selected = GroupSingle()
     self.current_piece_position = ORIGIN
     self.screen = None
     self.fps_clock = None
     self.font = None
     self.font_rect = None
     self.background = None
     self.background_rect = None
     self.fps_text = None
     self.fps_rect = None
     self.winner_text = None
     self.winner_rect = None
Example #55
0
	def remove_internal( self, sprite ):
		RenderUpdates.remove_internal( self, sprite )
		del self.displayRects[sprite]
Example #56
0
	def add_internal( self, sprite ):
		RenderUpdates.add_internal( self, sprite )
		center = self.bgMangr.GetDisplayCenter(sprite.rect)
		self.displayRects[sprite] = sprite.rect.move(0,0) #copy
		self.displayRects[sprite].center = center
Example #57
0
	def __init__( self, bgMangr ):
		RenderUpdates.__init__(self)
		self.bgMangr = bgMangr
		self.displayRects = {}