Exemple #1
0
 def displayStatus(self):
     txt = Font(digit_font,
                int(game.fontSize)).render(str(game.text), True,
                                           game.textColor)
     scoreText = txt.get_rect()
     scoreText.center = (X // 2, (Y // 2) - 60)
     win.blit(txt, scoreText)
Exemple #2
0
class Label(Sprite):
    def __init__(self, text, size, text_color, background_color=None):
        Sprite.__init__(self)
        self.text = text
        self.previous_text = text
        self.size = size
        self.text_color = text_color
        self.background_color = background_color
        self.image = Font(FONT, size).render(
            text, True, text_color, background_color)
        self.rect = self.image.get_rect()

    def update(self, *args):
        if self.previous_text != self.text:
            self.image = Font(FONT, self.size).render(
                self.text, True, self.text_color, self.background_color)
            previous_center = self.rect.center
            self.rect = self.image.get_rect()
            self.rect.center = previous_center
            self.previous_text = self.text
Exemple #3
0
class TextInput(Label):
    def __init__(self, size, text_color, background_color):
        Label.__init__(self, '', size, text_color, background_color)
        self.size = size
        self.text_color = text_color
        self.background_color = background_color

    def on_text_changed(self, newText):
        self.text += newText
        self.image = Font(FONT, self.size).render(
            self.text, True, self.text_color, self.background_color)
        previous_center = self.rect.center
        self.rect = self.image.get_rect()
        self.rect.center = previous_center
Exemple #4
0
    def gameOverEndScreen(self, text, color):
        pygame.mixer.music.pause()
        s = pygame.Surface((X, Y), pygame.SRCALPHA)
        s.fill((0, 0, 0, 200))
        win.blit(s, (0, 0))

        txt = Font(digit_font, 80).render(str(text), True, color)
        scoreText = txt.get_rect()
        scoreText.center = (X // 2, (Y // 2) - 70)
        win.blit(txt, scoreText)

        txt = Font(digit_font, 20).render("<Press space to restart>", True,
                                          (255, 255, 255))
        scoreText = txt.get_rect()
        scoreText.center = (X // 2, (Y // 2) - 20)
        win.blit(txt, scoreText)

        txt = Font(digit_font,
                   18).render("Your high scores are saved automatically", True,
                              (255, 255, 255))
        scoreText = txt.get_rect()
        scoreText.center = (X // 2, (Y // 2) + 30)
        win.blit(txt, scoreText)
Exemple #5
0
class MenuState(State):
    def __init__(self, game):
        State.__init__(self, game)

        # Fonts
        self._font1 = Font('freesansbold.ttf', 44)
        self._font2 = Font('freesansbold.ttf', 16)
        self._font3 = Font('freesansbold.ttf', 24)

        # Texts
        self._titles = [
            self._font1.render(text, True, _WHITE)
            for text in ['Multiplayer', 'Dinosaur']
        ]
        self._credit = Font('freesansbold.ttf',
                            12).render('Made by xxMrPHDxx', True, _GRAY)
        self._options = ['Play', 'Join', 'Help']
        self._selected = 0

    def draw(self, screen):
        # Clear screen
        screen.fill(_BLACK)

        # Draw title
        for i, title in enumerate(self._titles):
            w = title.get_rect().width
            screen.blit(title, ((self.game.width - w) / 2, 50 + i * 50))

        # Draw credit
        w = self._credit.get_rect().width
        screen.blit(self._credit, ((self.game.width - w) / 2, 150))

        # Draw options
        for i, option in enumerate(self._options):
            font, col = ((self._font3, _RED) if self._selected == i else
                         (self._font2, _WHITE))
            text = font.render(option, True, col)
            rect = text.get_rect()
            w, h = rect.width, rect.height
            screen.blit(text,
                        ((self.game.width - w) / 2, 280 + i * 32 - h / 2))

    def key_down(self, event):
        if event.key == pygame.K_DOWN:
            self._selected += 1
        if event.key == pygame.K_UP:
            self._selected -= 1
        if self._selected < 0: self._selected = len(self._options) - 1
        elif self._selected >= len(self._options): self._selected = 0
Exemple #6
0
    def displayNumbers(self):
        gameScoreTxt = Font(digit_font, 22).render(str(game.score), True,
                                                   (60, 60, 60))
        gameSavedScoreTxt = Font(digit_font,
                                 22).render(str(game.savedScore), True,
                                            (60, 60, 60))
        gameLevelTxt = Font(digit_font, 22).render(str(game.level), True,
                                                   (60, 60, 60))

        gameScoreRect = gameScoreTxt.get_rect()
        gameSavedScoreRect = gameSavedScoreTxt.get_rect()
        gameLevelRect = gameLevelTxt.get_rect()

        gameScoreRect.left, gameScoreRect.top = 33, 544
        gameSavedScoreRect.left, gameSavedScoreRect.top = 198, 544
        gameLevelRect.left, gameLevelRect.top = 33, 597

        win.blit(gameScoreTxt, gameScoreRect)
        win.blit(gameSavedScoreTxt, gameSavedScoreRect)
        win.blit(gameLevelTxt, gameLevelRect)

        for i in range(1, self.lives + 1):
            win.blit(pygame.image.load("assets/pac.png"),
                     (X - 193 + (i * 18), 544 + 6))
Exemple #7
0
class TextPane(Drawable):
    DEFAULTCOLOR = (0, 0, 0)
    DEFAULTFONTSIZE = 12

    def __init__(self, text, fontsize=None, color=None):
        Drawable.__init__(self)
        self.text = str(text)
        self.fs = fontsize if fontsize is not None else TextPane.DEFAULTFONTSIZE
        self.fc = color if color is not None else TextPane.DEFAULTCOLOR
        self.bg = None
        self.textRect = None
        self.update()

    def setText(self, text):
        self.text = str(text)
        self.update()

    def setBGcolor(self, color=None):
        if color is None or len(color) == 3:
            self.bg = color
        else:
            self.bg = None

    def center(self):
        pass

    def update(self):
        from pygame.font import Font
        self.textRect = Font(None, self.fs).render(self.text, 1, self.fc)
        rect = self.textRect.get_rect()
        self.size = Vec2D(rect.width, rect.height)

    def draw(self, surf):
        if self.bg is not None:
            from pygame.draw import rect
            rect(surf, self.bg, self.getRect())
        surf.blit(self.textRect, self.pos.getTuple())