Example #1
0
    def create_credits(self):
        self.image = pygame.Surface((1024, 720 * 2))
        self.rect = pygame.Rect((0, 0, 1024, 720))
        font = media.get_font(32)
        s = font.render("Congratulations!", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 20 + 720))

        font = media.get_font(16)
        s = font.render("Hitler has been defeated!", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 120 + 720))
        s = font.render("Wikipedia is free again!", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 150 + 720))

        s = font.render("Entry for pyweek #20", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 220 + 720))
        s = font.render("https://github.com/benoxoft/Wikipedia1942", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 250 + 720))

        s = font.render("All art content from opengameart.org", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 350 + 720))

        s = font.render("opengameart.org/content/rotating-crystal-animation-8-step", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 380 + 720))

        s = font.render("opengameart.org/content/aircrafts", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 410 + 720))

        s = font.render("opengameart.org/content/orthographic-outdoor-tiles", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 440 + 720))

        s = font.render("opengameart.org/content/fluffy-clouds", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 470 + 720))

        s = font.render("opengameart.org/content/10-basic-message-boxes", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 500 + 720))

        s = font.render("opengameart.org/content/explosion-animated", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 530 + 720))

        s = font.render("opengameart.org/content/skull", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 560 + 720))

        s = font.render("opengameart.org/content/lava-background-6-screen-resolutions", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 590 + 720))

        s = font.render("opengameart.org/content/confrontation", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 620 + 720))

        s = font.render("Thank you for playing!", True, GEM_FONT_COLOR)
        self.image.blit(s, ((1024 - s.get_rect().w) / 2, 670 + 720))
        self.show_credits = True
Example #2
0
 def create_previous_button(self):
     buttons_font = media.get_font(16)
     sprevious = buttons_font.render("Previous", True, GEM_FONT_COLOR)
     self.prev_rect = pygame.Rect(
         (self.rect.x + 430, self.rect.y + 594, sprevious.get_rect().w, sprevious.get_rect().h)
     )
     return (sprevious, (430, 594))
Example #3
0
    def show_menu(self):
        self.show_game_title()
        font = media.get_font(8 * gl.RESIZE_FACTOR)
        s = font.render("Select how many birds", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             90 * gl.RESIZE_FACTOR))
        if self.cursor_pos == 0:
            s = font.render("-> 2 birds", True, (255, 255, 255))
        else:
            s = font.render("   2 birds", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             100 * gl.RESIZE_FACTOR))

        if self.cursor_pos == 1:
            s = font.render("-> 3 birds", True, (255, 255, 255))
        else:
            s = font.render("   3 birds", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             110 * gl.RESIZE_FACTOR))
        if self.cursor_pos == 2:
            s = font.render("-> 4 birds", True, (255, 255, 255))
        else:
            s = font.render("   4 birds", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             120 * gl.RESIZE_FACTOR))
Example #4
0
    def show_game_over(self):
        font = media.get_font(8 * gl.RESIZE_FACTOR)

        if self.game_over == 1:
            s = font.render("GAME OVER!", True, (255, 255, 255))
        elif self.game_over == 2:
            s = font.render("YOU WON!", True, (255, 255, 255))
        elif self.game_over == 3:
            s = font.render("EVERYBIRD IS DEAD!", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             90 * gl.RESIZE_FACTOR))

        if self.cursor_pos == 0:
            s = font.render("-> play again       ", True, (255, 255, 255))
        else:
            s = font.render("   play again       ", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             100 * gl.RESIZE_FACTOR))

        if self.cursor_pos == 1:
            s = font.render("-> back to main menu", True, (255, 255, 255))
        else:
            s = font.render("   back to main menu", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             110 * gl.RESIZE_FACTOR))
        if self.cursor_pos == 2:
            s = font.render("-> quit             ", True, (255, 255, 255))
        else:
            s = font.render("   quit             ", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             120 * gl.RESIZE_FACTOR))
Example #5
0
 def show_game_over(self):
     font = media.get_font(8 * gl.RESIZE_FACTOR)
     
     if self.game_over == 1:
         s = font.render("GAME OVER!", True, (255,255,255))
     elif self.game_over == 2:
         s = font.render("YOU WON!", True, (255,255,255))
     elif self.game_over == 3:
         s = font.render("EVERYBIRD IS DEAD!", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 90 * gl.RESIZE_FACTOR))
     
     if self.cursor_pos == 0:
         s = font.render("-> play again       ", True, (255,255,255))
     else:
         s = font.render("   play again       ", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 100 * gl.RESIZE_FACTOR))
     
     if self.cursor_pos == 1:
         s = font.render("-> back to main menu", True, (255,255,255))
     else:
         s = font.render("   back to main menu", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 110 * gl.RESIZE_FACTOR))
     if self.cursor_pos == 2:
         s = font.render("-> quit             ", True, (255,255,255))
     else:
         s = font.render("   quit             ", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 120 * gl.RESIZE_FACTOR))
Example #6
0
 def create_title(self):
     title_font = media.get_font(32)
     if self.level_cleared:
         title = title_font.render("Page cleared!", True, GEM_FONT_COLOR)
     else:
         title = title_font.render("Warp zone", True, GEM_FONT_COLOR)
     return (title, ((self.base_image.get_rect().w - title.get_rect().w) / 2, 48))
Example #7
0
 def draw_life_bar(self):
     font = media.get_font(8)
     s = font.render("Life:", True, GEM_FONT_COLOR)
     self.image.blit(s, (812, 0))
     for i in range(0, self.current_life):
         bar = pygame.Surface((10, 38))
         bar.fill((200, 30, 30))
         self.image.blit(bar, (812 + 18 * i, 10))
Example #8
0
    def create_image(self):
        self.image = pygame.Surface((self.base_image.get_rect().w, self.base_image.get_rect().h))
        self.image.blit(self.base_image, (0, 0))
        f = media.get_font(32)
        s = f.render("Game Over!!", True, GEM_FONT_COLOR)
        self.image.blit(s, (150, 56))

        buttons = media.get_font(16)

        s = buttons.render("Try Again", True, GEM_FONT_COLOR)
        self.image.blit(s, (120, 312))
        self.try_again_rect = pygame.Rect((self.rect.x + 120, self.rect.y + +312, s.get_rect().w, s.get_rect().h))
        s = buttons.render("Quit", True, GEM_FONT_COLOR)
        self.image.blit(s, (464, 312))
        self.quit_rect = pygame.Rect((self.rect.x + 464, self.rect.y + 312, s.get_rect().w, s.get_rect().h))

        colorkey = self.image.get_at((0, 0))
        self.image.set_colorkey(colorkey, pygame.RLEACCEL)
Example #9
0
    def render_page(self):
        item_font = media.get_font(9)
        page_items = self.pages[self.current_page - 1].split("\n")

        for i in range(0, len(page_items)):
            y = 140 + 24 * i
            item_rect = pygame.Rect((self.rect.x + 48, self.rect.y + y, 700, 24))
            item = item_font.render(page_items[i], True, GEM_FONT_COLOR)
            self.image.blit(item, (56, y + 8))
Example #10
0
 def show_demo_message(self):
     self.show_game_title()
     font = media.get_font(8 * gl.RESIZE_FACTOR)
     s = font.render("press <space> to start", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 90 * gl.RESIZE_FACTOR))
     s = font.render("press <ESC> to quit anytime", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 100 * gl.RESIZE_FACTOR))
     s = font.render("1,2,3 change screen resolution", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 110 * gl.RESIZE_FACTOR))
Example #11
0
 def create_title(self):
     title_font = media.get_font(32)
     if self.current_page == 1:
         s = "Introduction"
     elif self.current_page == 2:
         s = "Gameplay"
     else:
         s = "Power-ups"
     title = title_font.render(s, True, GEM_FONT_COLOR)
     return (title, ((self.base_image.get_rect().w - title.get_rect().w) / 2, 48))
Example #12
0
 def create_next_button(self):
     buttons_font = media.get_font(16)
     if self.current_page == self.count_pages():
         snext = buttons_font.render("Close", True, GEM_FONT_COLOR)
         self.next_rect = pygame.Rect((self.rect.x + 648, self.rect.y + 594, snext.get_rect().w, snext.get_rect().h))
         return (snext, (648, 594))
     else:
         snext = buttons_font.render("Next", True, GEM_FONT_COLOR)
         self.next_rect = pygame.Rect((self.rect.x + 660, self.rect.y + 594, snext.get_rect().w, snext.get_rect().h))
         return (snext, (660, 594))
Example #13
0
 def create_yes(self):
     buttons_font = media.get_font(16)
     ok = buttons_font.render("Yes", True, GEM_FONT_COLOR)
     self.ok_rect = pygame.Rect(
         (
             self.owner.rect.x + self.rect.x + 328,
             self.owner.rect.y + self.rect.y + 256,
             ok.get_rect().w,
             ok.get_rect().h,
         )
     )
     return (ok, (328, 256))
Example #14
0
 def create_no(self):
     buttons_font = media.get_font(16)
     cancel = buttons_font.render("No", True, GEM_FONT_COLOR)
     self.cancel_rect = pygame.Rect(
         (
             self.owner.rect.x + self.rect.x + 116,
             self.owner.rect.y + self.rect.y + 256,
             cancel.get_rect().w,
             cancel.get_rect().h,
         )
     )
     return (cancel, (116, 256))
Example #15
0
 def show_demo_message(self):
     self.show_game_title()
     font = media.get_font(8 * gl.RESIZE_FACTOR)
     s = font.render("press <space> to start", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          90 * gl.RESIZE_FACTOR))
     s = font.render("press <ESC> to quit anytime", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          100 * gl.RESIZE_FACTOR))
     s = font.render("1,2,3 change screen resolution", True,
                     (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          110 * gl.RESIZE_FACTOR))
Example #16
0
 def show_help(self):
     self.show_game_title()
     font = media.get_font(8 * gl.RESIZE_FACTOR)
     s = font.render("You are the green bird", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 90 * gl.RESIZE_FACTOR))
     s = font.render("Use a, d and w to move", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 100 * gl.RESIZE_FACTOR))
     s = font.render("<space> create a bomb", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 110 * gl.RESIZE_FACTOR))
     s = font.render("press it again to throw it", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 120 * gl.RESIZE_FACTOR))
     s = font.render("press <space> to continue", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 130 * gl.RESIZE_FACTOR))
Example #17
0
 def __init__(self, gem):
     pygame.sprite.Sprite.__init__(self)
     font = media.get_font(GEM_FONT_SIZE)
     self.image = font.render(gem.name, True, GEM_FONT_COLOR)
     self.rect = pygame.Rect(
         (
             gem.rect.x - self.image.get_rect().w / 2,
             gem.rect.y + gem.size,
             self.image.get_rect().w,
             self.image.get_rect().h,
         )
     )
     self.speed = gem.speed
     self.gem = gem
Example #18
0
    def show_game_title(self):
        font = media.get_font(8 * gl.RESIZE_FACTOR)
        s = font.render("BOMBERBIRDS", True, (255,255,255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 20 * gl.RESIZE_FACTOR))
        s = font.render("entry for pyweek #18", True, (255,255,255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 30 * gl.RESIZE_FACTOR))
        s = font.render("by Benoit <benoxoft> Paquet", True, (255,255,255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 40 * gl.RESIZE_FACTOR))

        s = font.render("music from opengameart.org", True, (255,255,255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 194 * gl.RESIZE_FACTOR))
        s = font.render("title song by bart", True, (255,255,255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 204 * gl.RESIZE_FACTOR))
        s = font.render("game song by FoxSynergy", True, (255,255,255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 214 * gl.RESIZE_FACTOR))
Example #19
0
 def update(self, *args):
     if not self.updated:
         return
     self.image = pygame.Surface((self.rect.w, self.rect.h)).convert()
     colorkey = self.base_image.get_at((0, 0))
     self.image.fill(colorkey)
     self.image.blit(self.base_image, (0, 0))
     font = media.get_font(GEM_FONT_SIZE)
     page = font.render("Page: " + self.current_page, True, GEM_FONT_COLOR)
     self.image.blit(page, (16, 14))
     links = font.render("Gems left: " + str(self.links_left) + " / " + str(self.total_links), True, GEM_FONT_COLOR)
     self.image.blit(links, (16, 28))
     collected = font.render("Collected: " + str(self.collected), True, GEM_FONT_COLOR)
     self.image.blit(collected, (220, 28))
     self.draw_life_bar()
     colorkey = self.base_image.get_at((0, 0))
     self.image.set_colorkey(colorkey, pygame.RLEACCEL)
Example #20
0
    def render_page(self):
        item_font = media.get_font(8)
        page_items = self.found_links[16 * (self.current_page - 1) : 16 * self.current_page]

        for i in range(0, len(page_items)):
            y = 140 + 24 * i
            item_rect = pygame.Rect((self.rect.x + 48, self.rect.y + y, 700, 24))
            item = item_font.render(page_items[i], True, GEM_FONT_COLOR)

            if not self.messagebox and item_rect.collidepoint(pygame.mouse.get_pos()):
                selitem = pygame.Surface((item_rect.w, item_rect.h))
                selitem.fill((50, 155, 50))
                selitem.blit(item, (8, 8))
                self.image.blit(selitem, (48, y))
            else:
                self.image.blit(item, (56, y + 8))
            self.items_rect.append((page_items[i], item, item_rect))
Example #21
0
 def show_help(self):
     self.show_game_title()
     font = media.get_font(8 * gl.RESIZE_FACTOR)
     s = font.render("You are the green bird", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          90 * gl.RESIZE_FACTOR))
     s = font.render("Use a, d and w to move", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          100 * gl.RESIZE_FACTOR))
     s = font.render("<space> create a bomb", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          110 * gl.RESIZE_FACTOR))
     s = font.render("press it again to throw it", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          120 * gl.RESIZE_FACTOR))
     s = font.render("press <space> to continue", True, (255, 255, 255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                          130 * gl.RESIZE_FACTOR))
Example #22
0
    def show_game_title(self):
        font = media.get_font(8 * gl.RESIZE_FACTOR)
        s = font.render("BOMBERBIRDS", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             20 * gl.RESIZE_FACTOR))
        s = font.render("entry for pyweek #18", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             30 * gl.RESIZE_FACTOR))
        s = font.render("by Benoit <benoxoft> Paquet", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             40 * gl.RESIZE_FACTOR))

        s = font.render("music from opengameart.org", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             194 * gl.RESIZE_FACTOR))
        s = font.render("title song by bart", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             204 * gl.RESIZE_FACTOR))
        s = font.render("game song by FoxSynergy", True, (255, 255, 255))
        self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2,
                             214 * gl.RESIZE_FACTOR))
Example #23
0
 def show_menu(self):
     self.show_game_title()
     font = media.get_font(8 * gl.RESIZE_FACTOR)
     s = font.render("Select how many birds", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 90 * gl.RESIZE_FACTOR))
     if self.cursor_pos == 0:
         s = font.render("-> 2 birds", True, (255,255,255))
     else:
         s = font.render("   2 birds", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 100 * gl.RESIZE_FACTOR))
     
     if self.cursor_pos == 1:
         s = font.render("-> 3 birds", True, (255,255,255))
     else:
         s = font.render("   3 birds", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 110 * gl.RESIZE_FACTOR))
     if self.cursor_pos == 2:
         s = font.render("-> 4 birds", True, (255,255,255))
     else:
         s = font.render("   4 birds", True, (255,255,255))
     self.screen.blit(s, ((256 * gl.RESIZE_FACTOR - s.get_width()) / 2, 120 * gl.RESIZE_FACTOR))
Example #24
0
 def create_wikipedia(self):
     font = media.get_font(64)
     s = font.render("Wikipedia", True, GEM_FONT_COLOR)
     return (s, ((1024 - s.get_rect().w) / 2, 120))
Example #25
0
 def create_next_button(self):
     buttons_font = media.get_font(16)
     snext = buttons_font.render("Next", True, GEM_FONT_COLOR)
     self.next_rect = pygame.Rect((self.rect.x + 660, self.rect.y + 594, snext.get_rect().w, snext.get_rect().h))
     return (snext, (660, 594))
Example #26
0
 def create_start_game(self):
     font = media.get_font(32)
     s = font.render("Start Game", True, GEM_FONT_COLOR)
     rect = pygame.Rect((1024 - s.get_rect().w) / 2, 450, s.get_rect().w, s.get_rect().h)
     return (s, rect)
Example #27
0
 def create_1942(self):
     font = media.get_font(128)
     s = font.render("1942", True, GEM_FONT_COLOR)
     return (s, ((1024 - s.get_rect().w) / 2, 200))
Example #28
0
 def create_gameplay(self):
     font = media.get_font(32)
     s = font.render("Gameplay", True, GEM_FONT_COLOR)
     rect = pygame.Rect((1024 - s.get_rect().w) / 2, 500, s.get_rect().w, s.get_rect().h)
     return (s, rect)
Example #29
0
 def create_quit(self):
     font = media.get_font(32)
     s = font.render("Quit", True, GEM_FONT_COLOR)
     rect = pygame.Rect((1024 - s.get_rect().w) / 2, 550, s.get_rect().w, s.get_rect().h)
     return (s, rect)
Example #30
0
 def create_pages(self):
     pages_font = media.get_font(20)
     pages = pages_font.render(
         "Page: " + str(self.current_page) + " / " + str(self.count_pages()), True, GEM_FONT_COLOR
     )
     return (pages, (48, 592))
Example #31
0
 def create_title(self):
     title_font = media.get_font(32)
     title = title_font.render("Warp to?", True, GEM_FONT_COLOR)
     return (title, (32, 48))
Example #32
0
 def create_message(self):
     msg_font = media.get_font(8)
     msg = msg_font.render(self.word, True, GEM_FONT_COLOR)
     return (msg, (32, 148))