コード例 #1
0
def start_end_screen(intro_text, button_text):
    FPS = 60
    clock = pygame.time.Clock()
    screen = pygame.display.set_mode(size)
    from class_blawhi import load_image
    fon = load_image('background.png')
    screen.blit(fon, (0, 0))
    font = pygame.font.SysFont('serif', 40)
    text_coord = 100
    for line in intro_text:
        string_rendered = font.render(line, 1, (70, 70, 70))
        intro_rect = string_rendered.get_rect()
        intro_rect.top = text_coord
        intro_rect.x = screen.get_width() / 2 - string_rendered.get_width() / 2
        text_coord += 50
        screen.blit(string_rendered, intro_rect)
    start_btn = font.render(button_text, 1, (70, 70, 70))
    start_rect = start_btn.get_rect()
    start_rect.top = 500
    start_rect.x = screen.get_width() / 2 - start_btn.get_width() / 2
    screen.blit(start_btn, start_rect)

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                terminate()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                if start_rect.left <= event.pos[0] <= start_rect.right \
                        and start_rect.top <= event.pos[1] <= start_rect.bottom:
                    return
        pygame.display.flip()
        clock.tick(FPS)
コード例 #2
0
class Platform(pygame.sprite.Sprite):
    image = load_image('platform.png')

    def __init__(self, *group, location=(0, 0)):
        super().__init__(*group)
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
コード例 #3
0
class FlagButtons(pygame.sprite.Sprite):
    images = [
        load_image('button.png', colorkey=-1),
        load_image('buttonRed.png', colorkey=-1),
        load_image('buttonGreen.png', colorkey=-1),
        load_image('buttonBlue.png', colorkey=-1)
    ]

    def __init__(self, num=0):
        super().__init__(all_sprites)
        self.add(flagRGB)
        if RGButtons[num] == 1:
            self.image = FlagButtons.images[num + 1]
        else:
            self.image = FlagButtons.images[0]
        self.rect = self.image.get_rect()
        self.rect.x = 780
        self.rect.y = 20 * num
コード例 #4
0
class Buttons(pygame.sprite.Sprite):
    images = [
        load_image('buttonRed.png', colorkey=-1),
        load_image('buttonGreen.png', colorkey=-1),
        load_image('buttonBlue.png', colorkey=-1)
    ]

    def __init__(self, *group, num=0, location=(0, 0)):
        super().__init__(*group)
        self.image = Buttons.images[num]
        self.num = num
        self.rect = self.image.get_rect()
        self.mask = pygame.mask.from_surface(self.image)
        self.rect.left, self.rect.top = location
        self.group = group[0]

    def update(self, RGButtons, all_sprites):
        if RGButtons[self.num]:
            self.group.remove(self)
            all_sprites.remove(self)
コード例 #5
0
class PlatformVer(pygame.sprite.Sprite):
    image = load_image('platform.png')

    def __init__(self, *group, location=(0, 0), lenn=100):
        super().__init__(*group)
        self.rect = self.image.get_rect()
        self.orig = location[1]
        self.lenn = lenn
        self.fl = 1
        self.rect.left, self.rect.top = location

    def update(self):
        if self.rect.top == self.orig:
            self.fl = -1
        if self.rect.top == self.orig - self.lenn:
            self.fl = 1
        self.rect.top += self.fl * 1
コード例 #6
0
def level(screen, platform_coords, RGB_coords, platform_hor_coords,
          platform_ver_coords, level_borders):
    from class_blawhi import load_image
    bg_image = load_image('background.png')
    background = pygame.Surface(screen.get_size())
    background.blit(bg_image, (0, 0))
    all_sprites = pygame.sprite.Group()
    from class_buttonsForBlawhi import FlagButtons, flagRGB, Buttons, RGButtons

    RGB = pygame.sprite.Group()
    RGB_list = []
    for i in range(3):
        FlagButtons(i)
        RGB_list.append(Buttons(RGB, num=i, location=RGB_coords[i]))

    from class_blawhi import Blawhi

    blawhi_player = Blawhi(all_sprites)
    platforms = pygame.sprite.Group()
    platforms_hor = pygame.sprite.Group()
    platforms_ver = pygame.sprite.Group()
    from class_platform import Platform, PlatformHor, PlatformVer

    for i in platform_coords:
        Platform(platforms, location=i)
    for i in platform_hor_coords:
        PlatformHor(platforms_hor, location=i)
    for i in platform_ver_coords:
        PlatformVer(platforms_ver, location=i)

    all_sprites.add(*platforms.sprites())
    all_sprites.add(*platforms_hor.sprites())
    all_sprites.add(*platforms_ver.sprites())
    all_sprites.add(*RGB.sprites())

    running = True
    left, right, up = False, False, False
    RGButtons[0], RGButtons[1], RGButtons[2] = 0, 0, 0  # так надо.
    FPS = 60
    clock = pygame.time.Clock()

    from class_camera import Camera
    camera = Camera(level_borders)
    count = 0

    from class_particle import Particle, particles

    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                terminate()
            if event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
                left = True
            if event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
                right = True
            if event.type == pygame.KEYUP and event.key == pygame.K_RIGHT:
                right = False
            if event.type == pygame.KEYUP and event.key == pygame.K_LEFT:
                left = False
            if event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
                up = True
            if event.type == pygame.KEYUP and event.key == pygame.K_UP:
                up = False

        copy = RGButtons[::]

        screen.blit(background, (0, 0))
        blawhi_player.update(left, right, up, platforms, RGB_list, RGB_coords, platforms_hor, platforms_ver, camera,
                             all_sprites)

        # if RGButtons != copy:
        for i in range(3):
            if RGButtons[i] != copy[i]:
                what = i
                Particle.create_particles((790, 20 * what - 10))
        if sum(RGButtons) != 0:
            particles.draw(screen)
            particles.update()
        platforms_hor.update()
        platforms_ver.update()

        flagRGB.empty()
        for i in range(3):
            FlagButtons(i)

        RGB.update(RGButtons, all_sprites)
        flagRGB.draw(screen)

        all_sprites.draw(screen)
        if blawhi_player.all_buttons_collected:
            count += 1
            if count == 20:
                running = False
        pygame.display.flip()
        clock.tick(FPS)