Example #1
0
    def __init__(self, screen):
        super(Fruit, self).__init__()
        self.screen = screen
        ss = SpriteSheet.spritesheet('images/Fruits.png')
        self.fruits = [ss.image_at((0,0,32,32)),
                       ss.image_at((32,0,32,32)),
                       ss.image_at((64,0,32,32)),
                       ss.image_at((96,0,32,32)),
                       ss.image_at((128,0,32,32))]
        self.values = [100, 300, 500, 700, 1000]
        index = random.randint(0,4)
        img, self.value = self.fruits[index], self.values[index]
        img = pygame.transform.scale(img, (25, 25))
        self.rect = img.get_rect()
        self.image = img
        self.rect.x, self.rect.y = 1000,1000 # hide fruit offscreen
        self.font = SysFont(None, 32, italic=True)
        self.score_image = self.font.render(str(self.value), True, (255, 255, 255), (0,0,0))

        self.randomint = 101
        self.fruitspawned = False
        self.destroyed = False

        # how long to show score
        self.frames = 0
Example #2
0
    def __init__(self, ai_settings, screen, sound=True):
        super().__init__()
        self.screen = screen
        self.ai_settings = ai_settings
        self.possible_scores = ai_settings.ufo_point_values
        self.score = None

        self.image = pygame.image.load('resources/Images/UFO Alien-1.png')
        self.rect = self.image.get_rect()
        self.score_image = None
        self.font = SysFont(None, 32, italic=True)
        self.prep_score()

        self.death_frames = []
        self.death_index = None
        self.death_frames.append(pygame.image.load('resources/Images/UFO Alien-3.png'))
        self.death_frames.append(self.score_image)
        self.last_frame = None
        self.wait_interval = 500

        self.entrance_sound = pygame.mixer.Sound('resources/Sounds/ufo_lowpitch.wav')
        self.death_sound = pygame.mixer.Sound('resources/Sounds/invaderkilled.wav')
        self.entrance_sound.set_volume(0.6)
        self.channel = ai_settings.ufo_channel

        self.speed = ai_settings.ufo_speed * (choice([-1, 1]))
        self.rect.x = 0 if self.speed > 0 else ai_settings.screen_width
        self.rect.y = ai_settings.screen_height * 0.1

        self.dead = False

        if sound:
            self.channel.play(self.entrance_sound, loops=-1)
class Scoreboard:
    def __init__(self, ai_settings, screen, stats):
        self.screen = screen
        self.screen_rect = screen.get_rect()
        self.ai_settings = ai_settings
        self.stats = stats
        self.text_color = (255, 255, 0)
        self.font = SysFont(None, 48)
        self.score_image = None
        self.score_rect = None
        self.high_score_image = None
        self.high_score_rect = None
        self.level_image = None
        self.level_rect = None
        self.ships = None
        self.prep_score()
        self.prep_high_score()
        self.prep_level()
        self.prep_ships()

    def prep_score(self):
        rounded_score = int(round(self.stats.score, -1))
        score_str = 'Score: {:,}'.format(rounded_score)
        self.score_image = self.font.render(score_str, True, self.text_color,
                                            self.ai_settings.bg_color)
        self.score_rect = self.score_image.get_rect()
        self.score_rect.right = self.screen_rect.right - 20
        self.score_rect.top = 20

    def prep_high_score(self):
        high_score = int(round(self.stats.high_score, -1))
        high_score_str = 'High Score: {:,}'.format(high_score)
        self.high_score_image = self.font.render(high_score_str, True,
                                                 self.text_color,
                                                 self.ai_settings.bg_color)
        self.high_score_rect = self.high_score_image.get_rect()
        self.high_score_rect.centerx = self.screen_rect.centerx
        self.high_score_rect.top = self.score_rect.top

    def prep_level(self):
        self.level_image = self.font.render('Level: ' + str(self.stats.level),
                                            True, self.text_color,
                                            self.ai_settings.bg_color)
        self.level_rect = self.level_image.get_rect()
        self.level_rect.right = self.score_rect.right
        self.level_rect.top = self.score_rect.bottom + 10

    def prep_ships(self):
        self.ships = Group()
        for ship_number in range(self.stats.ships_left):
            ship = Ship(self.ai_settings, self.screen)
            ship.rect.x = 10 + ship_number * (ship.rect.width + 5)
            ship.rect.y = 10
            self.ships.add(ship)

    def show_score(self):
        self.screen.blit(self.score_image, self.score_rect)
        self.screen.blit(self.high_score_image, self.high_score_rect)
        self.screen.blit(self.level_image, self.level_rect)
        self.ships.draw(self.screen)
Example #4
0
 def __init__(self, ai_settings, screen, stats):
     # creates the scoreboard
     self.screen = screen
     self.screen_rect = screen.get_rect()
     self.ai_settings = ai_settings
     self.stats = stats
     # Font settings for score information
     self.text_color = (255, 255, 0)
     self.font = SysFont(None, 48)
     # initial score image
     self.score_image = None
     self.score_rect = None
     # high score image
     self.high_score_image = None
     self.high_score_rect = None
     # level image
     self.level_image = None
     self.level_rect = None
     # ships left
     self.ships = None
     # initialize score, high score, level, ships
     self.prep_score()
     self.prep_high_score()
     self.prep_level()
     self.prep_ships()
Example #5
0
    def __init__(self, ai_settings, screen, stats):
        self.screen = screen
        self.screen_rect = screen.get_rect()
        self.ai_settings = ai_settings
        self.stats = stats

        # Font
        self.text_color = (238, 232, 170)
        self.font = SysFont(None, 48)

        # set score image
        self.score_image = None
        self.score_rect = None
        # set hs image
        self.hs_image = None
        self.hs_rect = None

        # level image
        self.level_image = None
        self.level_rect = None

        # ships left
        self.ships = None

        # initialize score, high score, level, ships
        self.prep_score()
        self.prep_hs()
        self.prep_level()
        self.prep_ships()
 def __init__(self, bg_color, screen):
     self.bg_color = bg_color
     self.screen = screen
     self.text = 'Pong'
     self.text_color = (255, 255, 255)
     self.font = SysFont(None, 48)
     self.image = None
     self.image_rect = None
 def __init__(self, bg_color, screen):
     self.bg_color = bg_color
     self.screen = screen
     self.text = 'AI -- No Walls'
     self.text_color = (0, 255, 0)
     self.font = SysFont(None, 36)
     self.image = None
     self.image_rect = None
Example #8
0
 def __init__(self, bot: 'Bot'):
     self.bot = bot
     self.bot.add_callback(self.run)
     pygame.init()
     self.win_size = (bot.game.map.width * CELL_SIZE, bot.game.map.height * CELL_SIZE)
     self.update_display_size()
     pygame.mouse.set_cursor(*pygame.cursors.tri_right)
     self.font = SysFont("vcrosdmono", 16)
     self.clock = pygame.time.Clock()
     self.speed_up = DEFAULT_SPEEDUP
     self.pause = False
     self.selected = None
Example #9
0
 def __init__(self,
              bg_color,
              screen,
              text,
              text_size=48,
              text_color=(0, 0, 0)):
     self.bg_color = bg_color
     self.screen = screen
     self.text = text
     self.text_color = text_color
     self.font = SysFont(None, text_size)
     self.image = None
     self.image_rect = None
Example #10
0
 def __init__(self,
              bg_color,
              screen,
              text,
              text_size=56,
              text_color=(255, 255, 255)):
     self.bg_color = bg_color
     self.screen = screen
     self.text = text
     self.text_color = text_color
     self.font = SysFont("Broadway", text_size)
     self.image = None
     self.image_rect = None
Example #11
0
    def __init__(self, ai_settings: Settings, screen: SurfaceType, msg: str):
        self._screen = screen
        self._screen_rect = screen.get_rect()

        self._width, self._height = 200, 50
        self._button_color = (0, 255, 0)
        self._text_color = (255, 255, 255)
        self._font = SysFont(None, 48)

        self.rect = pygame.Rect(0, 0, self._width, self._height)
        self.rect.center = self._screen_rect.center

        self._prep_msg(msg)
    def __init__(self, settings, screen, msg, y_factor=0.65):
        self.settings = settings
        self.screen = screen
        self.screen_rect = screen.get_rect()

        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.alt_color = (0, 255, 0)
        self.font = SysFont(None, 48)
        self.y_factor = y_factor

        self.msg = msg
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(self.text_color)
Example #13
0
    def __init__(self, ai_settings: Settings, screen: SurfaceType,
                 stats: GameStats):
        self._screen = screen
        self._screen_rect = screen.get_rect()
        self._ai_settings = ai_settings
        self._stats = stats

        self._text_color = 90, 200, 50
        self._font = SysFont(None, 48)

        self.prep_score()
        self.prep_high_score()
        self.prep_level()
        self.prep_ships()
Example #14
0
    def __init__(self,
                 location=(0, 0),
                 size=(0, 0),
                 caption="",
                 font=None,
                 fontColor=(255, 255, 255),
                 fixedToCaption=True):
        super(Label, self).__init__(location=location, size=size)

        self.__font = SysFont('arial', 20) if (font == None) else font
        self.fixedToCaption = fixedToCaption
        self.caption = caption
        self.fontColor = fontColor

        Label.graphicInit(self)
Example #15
0
 def __init__(self):
     self.width = 0
     self.height = 0
     self.full_screen = True
     self.fps = 0
     self.caption = 'Adventure'
     self.active_game = True
     self.statistics = False
     self.background_path = 'Gamedata/Backgrounds/fon.png'
     self.max_distance = 0
     self.total_distance = 0
     self.sound = True
     self.font = SysFont(None, 45)
     self._screen = None
     self._camera = None
Example #16
0
    def __init__(self, ai_settings, screen, msg):
        self.ai_settings = ai_settings
        self.screen = screen
        self.screen_rect = screen.get_rect()

        # Dimensions and properties of the button
        self.width, self.height = 200, 50
        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.font = SysFont(None, 48)
        # Build button rect and center it
        self.rect = Rect(0, 0, self.width, self.height)
        self.rect.center = self.screen_rect.center
        # Prep button message only once
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(msg)
Example #17
0
class Button:
    def __init__(self, ai_settings, screen, msg):
        self.ai_settings = ai_settings
        self.screen = screen
        self.screen_rect = screen.get_rect()

        # Dimensions and properties of the button
        self.width, self.height = 200, 50
        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.font = SysFont(None, 48)
        # Build button rect and center it
        self.rect = Rect(0, 0, self.width, self.height)
        self.rect.center = self.screen_rect.center
        # Prep button message only once
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(msg)

    def prep_msg(self, msg):
        """Turn msg into a rendered image and center it on the button"""
        self.msg_image = self.font.render(msg, True, self.text_color,
                                          self.button_color)
        self.msg_image_rect = self.msg_image.get_rect()
        self.msg_image_rect.center = self.rect.center

    def draw_button(self):
        """Draw button and then draw message"""
        self.screen.fill(self.button_color, self.rect)
        self.screen.blit(self.msg_image, self.msg_image_rect)
class Board:
    """Generic board class for displaying score type information"""
    def __init__(self, config, screen, text, text_color, border_color):
        # display info and config
        self.screen = screen
        self.screen_rect = screen.get_rect()
        self.config = config

        # font, text, image settings
        self.text = str(text)
        self.text_color = text_color
        self.font = SysFont(None, 48)
        self.border = True
        self.width, self.height = self.font.size(text)
        self.width, self.height = (self.width * 2), (self.height + self.height / 6)
        self.rect = Rect(0, 0, self.width, self.height)
        self.border_color = border_color
        self.image = None
        self.image_rect = None

    def prep_board(self):
        """Render text as a displayable image"""
        raise NotImplementedError('Objects inheriting from Board must implement a prep_board method')

    def place_board(self):
        """Place the board on the screen"""
        raise NotImplementedError('Objects inheriting from Board must implement a place_board method')

    def show(self):
        """Draw the board to the screen"""
        if self.border:
            draw.rect(self.screen, self.border_color, self.rect, 3)
        self.screen.blit(self.image, self.image_rect)
Example #19
0
class Button:
    def __init__(self, ai_settings: Settings, screen: SurfaceType, msg: str):
        self._screen = screen
        self._screen_rect = screen.get_rect()

        self._width, self._height = 200, 50
        self._button_color = (0, 255, 0)
        self._text_color = (255, 255, 255)
        self._font = SysFont(None, 48)

        self.rect = pygame.Rect(0, 0, self._width, self._height)
        self.rect.center = self._screen_rect.center

        self._prep_msg(msg)

    def _prep_msg(self, message: str):
        # print(self._text_color, self._button_color, sep=" -> ")

        self._msg_image = self._font.render(message, True, self._text_color,
                                            self._button_color)

        self._msg_image_rect = self._msg_image.get_rect()
        self._msg_image_rect.center = self.rect.center

    def draw_button(self):
        self._screen.fill(self._button_color, self.rect)
        self._screen.blit(self._msg_image, self._msg_image_rect)
Example #20
0
    def __init__(self, settings, screen, msg, y_factor=0.65):
        self.settings = settings
        self.screen = screen
        self.screen_rect = screen.get_rect()

        # Dimensions and properties of the button
        self.button_color = (0, 0, 0)
        self.text_color = (0, 0, 0)
        self.alt_color = (0, 0, 255)
        self.font = SysFont(None, 48)
        self.y_factor = y_factor

        # Prep button message
        self.msg = msg
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(self.text_color)
Example #21
0
class Titletext:
    # Text
    def __init__(self,
                 bg_color,
                 screen,
                 text,
                 text_size=56,
                 text_color=(0, 0, 0)):
        self.bg_color = bg_color
        self.screen = screen
        self.text = text
        self.text_color = text_color
        self.font = SysFont(None, text_size)
        self.image = None
        self.image_rect = None

    def prep_image(self):

        self.image = self.font.render(self.text, True, self.text_color,
                                      self.bg_color)
        self.image_rect = self.image.get_rect()

    def blitme(self):

        self.screen.blit(self.image, self.image_rect)
Example #22
0
class Title:
    """Represents the title text to be displayed on screen"""
    def __init__(self,
                 bg_color,
                 screen,
                 text,
                 text_size=50,
                 text_color=(255, 0, 0)):
        self.bg_color = bg_color
        self.screen = screen
        self.text = text
        self.text_color = text_color
        self.font = SysFont(None, text_size)
        self.image = None
        self.image_rect = None

    def prep_image(self):
        """Render the subtitle text as an image"""
        self.image = self.font.render(self.text, True, self.text_color,
                                      self.bg_color)
        self.image_rect = self.image.get_rect()

    def blitme(self):
        """Draw the subtitle's image to the screen"""
        self.screen.blit(self.image, self.image_rect)
Example #23
0
    def __init__(self, settings, screen, msg, y_factor=0.60):
        self.settings = settings
        self.screen = screen
        self.screen_rect = screen.get_rect()

        # set button
        self.button_color = (51, 161, 201)
        self.text_color = (255, 255, 255)
        self.alt_color = (187, 255, 255)
        self.font = SysFont(None, 48)
        self.y_factor = y_factor

        # set message
        self.msg = msg
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(self.text_color)
    def __init__(self, config, screen, text, text_color, border_color):
        # display info and config
        self.screen = screen
        self.screen_rect = screen.get_rect()
        self.config = config

        # font, text, image settings
        self.text = str(text)
        self.text_color = text_color
        self.font = SysFont(None, 48)
        self.border = True
        self.width, self.height = self.font.size(text)
        self.width, self.height = (self.width * 2), (self.height + self.height / 6)
        self.rect = Rect(0, 0, self.width, self.height)
        self.border_color = border_color
        self.image = None
        self.image_rect = None
 def __init__(self, ai_settings, screen, stats):
     self.screen = screen
     self.screen_rect = screen.get_rect()
     self.ai_settings = ai_settings
     self.stats = stats
     self.text_color = (255, 255, 0)
     self.font = SysFont(None, 48)
     self.score_image = None
     self.score_rect = None
     self.high_score_image = None
     self.high_score_rect = None
     self.level_image = None
     self.level_rect = None
     self.ships = None
     self.prep_score()
     self.prep_high_score()
     self.prep_level()
     self.prep_ships()
Example #26
0
    def __init__(self, ai_settings, screen, sound=True):
        super().__init__()

        self.screen = screen
        self.ai_settings = ai_settings
        self.possible_scores = ai_settings.UFO_pts
        self.score = None

        self.image = [pygame.image.load('images/face.png'),
                      pygame.image.load('images/face1.png'),
                      pygame.image.load('images/face2.png'),
                      pygame.image.load('images/face3.png')]
        self.image_index = 0
        self.image = self.image[self.image_index]
        self.rect = self.image.get_rect()
        self.score_image = None
        self.font = SysFont(None, 32, bold=True)
        self.prep_score()

        self.death_frames = [pygame.image.load('images/deaths/deadface.png'),
                             pygame.image.load('images/deaths/deadface1.png'),
                             pygame.image.load('images/deaths/deadface2.png'),
                             pygame.image.load('images/deaths/deadface3.png'),
                             pygame.image.load('images/deaths/deadface4.png'),
                             pygame.image.load('images/deaths/deadface5.png')]
        self.death_index = None
        # self.death_frames.append(pygame.image.load('images/deaths/deadface.png'))
        self.death_frames.append(self.score_image)
        self.last_frame = None
        self.wait_interval = 500

        self.entrance_sound = pygame.mixer.Sound('sound/UFO_entrance.wav')
        self.death_sound = pygame.mixer.Sound('sound/UFO_death.wav')
        self.entrance_sound.set_volume(0.6)
        self.channel = ai_settings.ufo_channel

        self.speed = ai_settings.ufo_spd * (choice([-1, 1]))
        self.rect.x = 0 if self.speed > 0 else ai_settings.screen_width
        self.rect.y = ai_settings.screen_height * 0.1

        self.dead = False

        if sound:
            self.channel.play(self.entrance_sound, loops=-1)
Example #27
0
 def __init__(self, name, size, bold=0, italic=0):
     val = name, size
     if FontPool.has_key(val):
         font = FontPool[val]
     else:
         font = SysFont(name, size, bold, italic)
         FontPool[val] = font
     self.font = font
     if size >= 20:
         self.text = self.textshadowed
Example #28
0
    def __init__(self, ai_settings, screen):
        """Initialize ufo settings."""
        super().__init__()

        # screen, settings, score values
        self.screen = screen
        self.ai_settings = ai_settings
        self.possible_scores = ai_settings.ufo_points
        self.score = None

        # images, score text
        self.image = pygame.image.load('images/ufo.png')
        self.rect = self.image.get_rect()
        self.score_image = None
        self.font = SysFont(None, 32, italic=True)
        self.prep_score()

        # death frames
        self.death_frames = []
        self.death_index = None
        self.death_frames.append(
            pygame.image.load('images/ufo_death/ufo_death.png'))
        self.death_frames.append(self.score_image)
        self.last_frame = None
        self.wait_interval = 500

        # sound
        self.entrance_sound = pygame.mixer.Sound('sounds/ufo_sound.wav')
        self.death_sound = pygame.mixer.Sound('sounds/ufo_death.wav')
        self.entrance_sound.set_volume(0.6)
        self.channel = ai_settings.ufo_channel

        # initial position, speed/direction
        self.speed = ai_settings.ufo_speed_factor * (choice([-1, 1]))
        self.rect.x = 0 if self.speed > 0 else ai_settings.screen_width
        self.rect.y = ai_settings.screen_height * 0.1

        # death flag
        self.dead = False

        # Play sound while its on screen
        self.channel.play(self.entrance_sound, loops=-1)
    def __init__(self, config, screen, msg):
        self.config = config
        self.screen = screen
        self.screen_rect = screen.get_rect()

        # Dimensions and properties of the button
        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.font = SysFont(None, 48)
        # Build button rect and center it
        self.width, self.height = self.font.size(msg)
        self.width, self.height = (self.width +
                                   self.width / 4), (self.height +
                                                     self.height / 4)
        self.rect = Rect(0, 0, self.width, self.height)
        self.rect.centerx = (self.config.screen_width // 2)
        self.rect.centery = int(self.config.screen_height * 0.75)
        # Prep button message only once
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(msg)
class Button:
    """Represents a click-able button"""
    def __init__(self, config, screen, msg):
        self.config = config
        self.screen = screen
        self.screen_rect = screen.get_rect()

        # Dimensions and properties of the button
        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.font = SysFont(None, 48)
        # Build button rect and center it
        self.width, self.height = self.font.size(msg)
        self.width, self.height = (self.width +
                                   self.width / 4), (self.height +
                                                     self.height / 4)
        self.rect = Rect(0, 0, self.width, self.height)
        self.rect.centerx = (self.config.screen_width // 2)
        self.rect.centery = int(self.config.screen_height * 0.75)
        # Prep button message only once
        self.msg_image, self.msg_image_rect = None, None
        self.prep_msg(msg)

    def check_button(self, mouse_x, mouse_y):
        """Check if the given button has been pressed"""
        if self.rect.collidepoint(mouse_x, mouse_y):
            return True
        else:
            return False

    def prep_msg(self, msg):
        """Turn msg into a rendered image and center it on the button"""
        self.msg_image = self.font.render(msg, True, self.text_color,
                                          self.config.bg_color)
        self.msg_image_rect = self.msg_image.get_rect()
        self.msg_image_rect.center = self.rect.center

    def draw_button(self):
        """Draw button and then draw message"""
        draw.rect(self.screen, self.button_color, self.rect, 3)
        self.screen.blit(self.msg_image, self.msg_image_rect)