Пример #1
0
def start_screen2():
    intro_text = [
        "Вы выбрались из котла!", "",
        "Теперь вам нужно пробежать мимо чертовых руин!",
        "Для начала игры нажмите 1"
    ]

    fon = pygame.transform.scale(load_image('fon2.jpg'), (WIDTH, HEIGHT))
    screen.blit(fon, (0, 0))
    font = pygame.font.Font(None, 30)
    text_coord = 50
    for line in intro_text:
        string_rendered = font.render(line, 1, pygame.Color('white'))
        intro_rect = string_rendered.get_rect()
        text_coord += 10
        intro_rect.top = text_coord
        intro_rect.x = 100
        text_coord += intro_rect.height
        screen.blit(string_rendered, intro_rect)

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                terminate()
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_1:
                pygame.mixer.Sound('data/level_audio.wav').play()
                level()  # начинаем игру
        pygame.display.flip()
        clock.tick(fps)
Пример #2
0
    def render_state(self):
        # the current state of the current player
        player_message = "Player: %s " % (self.current_player_id + 1, )

        # there is a gap when we're not allowed to launch
        # in this period we show a different message
        deltaTime = (pygame.time.get_ticks() - self.prepare_for_launch)
        if deltaTime < 3000 and not self.ship.is_launched:
            activity_message = "ready to launch in: %s" % (
                3 - int(deltaTime / 1000.0))
        else:
            self.is_launch_allowed = True
            activity_message = self.ship.get_render_message()

        # now, render the full message
        message = "%s - %s" % (player_message, activity_message)
        basicfont = pygame.font.SysFont(None, 20)
        text = basicfont.render(message, True, (255, 0, 0), (0, 0, 0))
        textrect = text.get_rect()
        screen.blit(text, textrect)

        # render the remaining fuel (if we're launched)
        if self.ship.is_launched:
            draw_gauge(100, 0, 100, self.ship.fuel)

        for p in self.players:
            p.render_details(basicfont)

            if self.current_player() == p:
                p.celestial.identify(get_gauge_colour(p.life / p.total_life))
Пример #3
0
 def draw(self, screen):
     #Background
     pg.sprite.Sprite.__init__(self)
     self.image = pg.image.load('Images/Screen_bgs/menu_bg.jpg').convert()
     self.rect = self.image.get_rect()
     self.rect.left, self.rect.top = (0, 0)
     screen.blit(self.image, self.rect)
Пример #4
0
    def draw(self, screen):
        if not self.spawn and not self.onPlatform:
            ran = random.randrange(0, 2)
            if ran < 1:
                self.x = self.path[1] - 1
                self.spawn = True

        self.move(self.option)
        if self.walk_count + 1 >= 39:
            self.walk_count = 0

        if self.vel > 0:
            if self.x > self.path[1]:
                self.x = self.path[1] - 1
            screen.blit(self.walkRight[self.walk_count // 3], (self.x, self.y))
            self.walk_count += 1
        else:
            if self.x > self.path[1]:
                self.x = self.path[1] - 1
            screen.blit(self.walkLeft[self.walk_count // 3], (self.x, self.y))
            self.walk_count += 1
        self.hitbox = (self.x, self.y - 10, 45, 65)
        if self.afterSpawn and not self.onPlatform:
            self.x = 64
            self.afterSpawn = False
Пример #5
0
def background_scroll(x1, x2, speed=5):
    x1 -= speed
    x2 -= speed
    screen.blit(background, (x1, y_first_image))
    screen.blit(background, (x2, y_second_image))
    if x1 < -WIDTH:
        x1 = WIDTH
    if x2 < -WIDTH:
        x2 = WIDTH
    return x1, x2
Пример #6
0
    def render_game_over(self):
        screen.fill(black)

        basicfont = pygame.font.SysFont(None, 50)
        text = basicfont.render("Player %s wins!" % (self.winner().id), True,
                                (255, 0, 0), (0, 0, 0))
        textrect = text.get_rect()
        textrect.center = (width / 2, height / 2)
        screen.blit(text, textrect)

        pygame.display.flip()
        time.sleep(3)
Пример #7
0
def main():
    pygame.init()
    pygame.display.set_caption(GAME_NAME)

    hero = HeroPlane(
        240, 550, screen)  # import module 与 from module import 的区别, 前者调用要先加模块名
    enemy = Enemy(screen)

    while True:
        screen.blit(bg, (0., 0.))
        hero.display()
        enemy.display()
        pygame.display.update()
        Control.key_control(hero)
Пример #8
0
def victory():
    victory_image = load_image('victory.png')
    x_pos = -800
    v = 400
    running = True
    screen.blit(victory, (x_pos, 0))
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                terminate()
        screen.fill((255, 255, 255))
        if x_pos < 0:
            x_pos += v * clock.tick() / 1000
        screen.blit(victory_image, (int(x_pos), 0))
        pygame.display.flip()
Пример #9
0
def game_over():
    image = load_image('game_over.png')
    x_pos = -800
    v = 400
    running = True
    screen.blit(image, (x_pos, 0))
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                terminate()
        screen.fill((0, 0, 0))
        if x_pos < 0:
            x_pos += v * clock.tick() / 1000
        screen.blit(image, (int(x_pos), 0))
        pygame.display.flip()
Пример #10
0
    def render_details(self, basicfont):

        # write some text about the player
        pid = self.id
        p_message = "Player: %s " % (pid)
        p_text = basicfont.render(p_message, True, (255, 0, 0), (0, 0, 0))
        p_textrect = p_text.get_rect()
        p_textrect.x = 30
        p_textrect.y = 20 * pid
        screen.blit(p_text, p_textrect)

        # draw the icon for the planet
        self.icon_rect.y = 20 * (pid) - 3
        screen.blit(self.icon, self.icon_rect)

        draw_gauge(100, pid * 20, self.total_life, self.life)
Пример #11
0
    def move(self):
        # this gets called all the time after the ship is launched
        # so we use this to record when we've finally taken-off
        deltaTime = (pygame.time.get_ticks() - self.launch_time)
        if deltaTime > 1000:
            self.is_launching = False

        # move the ship accordingto the acceleration
        # we use this to check collisions, but we don't render with this
        self.speed += self.acceleration
        self.pos += self.speed
        # move the sprite to the position
        self.rect.centerx = self.pos[0]
        self.rect.centery = self.pos[1]

        # copy the sprite, and point in the direction we're moving
        angle = atan2(self.speed[0], self.speed[1]) * 180 / pi
        rotated = pygame.transform.rotate(self.sprite, angle)
        rotated_rect = rotated.get_rect()

        # move the rotated sprite to where it belongs, and draw it
        rotated_rect.centerx = self.pos[0]
        rotated_rect.centery = self.pos[1]
        screen.blit(rotated, rotated_rect)
Пример #12
0
def engine():
    global FPS, clock, activity, cameray, generation
    start_generate_platform()
    Sceleton(platforms[1][0], platforms[1][-1] - 45)
    Mist()
    pause = False
    image_fon = load_image('fon.png')
    y_pos = -1200  # начальная позиция
    image_pause = load_image('pause.png')
    arrow_image = load_image('bone1.png')
    pos = 0, 0
    while True:
        for event in pygame.event.get():
            pygame.mouse.set_visible(False)
            if event.type == pygame.QUIT:
                terminate()
            if event.type == pygame.MOUSEMOTION:
                pos = event.pos
                if activity:
                    sceleton_sprite.update(pos[0])
            if activity and event.type == pygame.MOUSEBUTTONDOWN:
                sceleton_sprite.update(0, True)
            if not activity and event.type == pygame.MOUSEBUTTONDOWN and generation:
                activity = True
                pause = False
            if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
                pause = True
        screen.fill((0, 0, 0))
        screen.blit(image_fon, (0, y_pos))
        platform_sprites.draw(screen)
        sceleton_sprite.draw(screen)
        enemy_sprites.draw(screen)
        shell_sprites.draw(screen)
        screen.blit(arrow_image, (pos))
        if activity:
            sceleton_sprite.update()
            platform_sprites.update()
            enemy_sprites.update()
            shell_sprites.update()
            if y_pos < 0:
                y_pos += cameray
                mist_sprite.draw(screen)
                mist_sprite.update()
            else:
                victory()
                generation = False
                activity = False
            clock.tick(FPS)
        if pause and generation:
            activity = False
            screen.blit(image_pause, (0, 0))
        pygame.display.flip()
Пример #13
0
 def blit(self, screen):
     screen.blit(self.sprite, self.rect)
Пример #14
0
 def draw(self, screen):
     screen.blit(self.orange, (self.x, self.y))
     self.hitbox = (self.x + 35, self.y + 20, 70, 70)
Пример #15
0
 def draw(self, screen):
     screen.blit(self.flex_bucks, (self.x, self.y))
     self.hitbox = (self.x + 10, self.y, 30, 40)
Пример #16
0
def level():
    global x_first_image, x_second_image, speed_score, progress, x_last_obstacle, speed_koef, multiple_speed, count_obstacles_onlevel, pause
    pygame.mouse.set_visible(False)
    intro_text = ['PAUSE']
    pause_fon = pygame.Surface((WIDTH, HEIGHT))
    pause_fon.convert_alpha(pause_fon)
    pause_fon.set_alpha(2)
    font = pygame.font.Font(None, 80)
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                terminate()
            if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
                pause = not pause
        if pause:
            for line in intro_text:
                string_rendered = font.render(line, 1,
                                              pygame.Color(255, 255, 255))
                intro_rect = string_rendered.get_rect()
                intro_rect.x = WIDTH // 2 - 40
                intro_rect.top = HEIGHT // 2
                screen.blit(string_rendered, intro_rect)
            screen.blit(pause_fon, (0, 0))
            pygame.display.flip()
        if not pause:
            if not (x_first_image > 0 and x_second_image > 0):
                while len(objects_sprites) < count_obstacles_onlevel:
                    y = random.randint(0, player_y)
                    x = WIDTH + random.randint(0, 5) * speed_koef
                    progress += 1
                    choose_obj(x, y)
            pygame.display.update()
            if pygame.key.get_pressed()[273]:
                player.jump = True
                player.speed = 3

            x_first_image, x_second_image = background_scroll(
                x_first_image, x_second_image, speed_score.speed)

            objects_sprites.update()
            if not (x_first_image > player_x and x_second_image > player_x):
                player_sprite.update()
                player_sprite.draw(screen)

            objects_sprites.draw(screen)

            font = pygame.font.Font(None, 30)
            text_coord = 50

            string_rendered = font.render(str(speed_score.score), 1,
                                          pygame.Color('red'))
            intro_rect = string_rendered.get_rect()
            text_coord += 10
            intro_rect.top = text_coord
            intro_rect.x = 10
            text_coord += intro_rect.height
            screen.blit(string_rendered, intro_rect)

            pygame.display.flip()
            clock.tick(fps)
            progress_counter()
Пример #17
0
 def draw(self, screen):
     screen.blit(self.heart, (self.x, self.y))
Пример #18
0
def Menu_Background():

    background = pg.image.load('background.png')
    screen.blit(background, (0, 0))
    pg.display.update()
Пример #19
0
def redrawGameWindow(screen, background, chars, terr, background_x, haduk,
                     items, steps, enemiesCount):
    relative_background_x = background_x[0] % background.get_rect().width
    screen_width = background.get_rect().width

    screen.blit(background, (relative_background_x - screen_width, 0))

    if relative_background_x < screen_width:
        screen.blit(background, (relative_background_x, 0))

    for dog in chars['bulldog']:
        dog.option = 1
    for knight in chars['knight']:
        knight.option = 1

    if chars['player'].walkCount + 1 >= 59:
        chars['player'].walkCount = 0
    if chars['player'].left:
        screen.blit(chars['player'].walkLeft[chars['player'].walkCount // 10],
                    (chars['player'].x, chars['player'].y))
        chars['player'].walkCount += 1
    elif chars['player'].right:
        screen.blit(chars['player'].walkRight[chars['player'].walkCount // 10],
                    (chars['player'].x, chars['player'].y))
        chars['player'].walkCount += 1
        if chars['player'].x >= screen_width * 4 / 5 - chars[
                'player'].width * 3 - chars['player'].vel:
            background_x[0] -= 5
            steps[0] += 5
            chars['player'].platform_end -= 5
            chars['player'].platform_beg -= 5
            for buck in items['cash']:
                buck.x -= 5
            for orange in items['oranges']:
                orange.x -= 5
            if terr['platforms']:
                for x in terr['platforms']:
                    x.x -= 5
                    if x.x < -(x.width * 3):
                        terr['platforms'].pop(0)
            for dog in chars['bulldog']:
                if dog.onPlatform:
                    dog.path[0] -= 5
                    dog.path[1] -= 5
                    if dog.path[1] < 0:
                        chars['bulldog'].pop(chars['bulldog'].index(dog))
                        enemiesCount[0] -= 1
                    if dog.isRight:
                        dog.option = 2
            for knight in chars['knight']:
                if knight.onPlatform:
                    knight.path[0] -= 5
                    knight.path[1] -= 5
                    if knight.path[1] < 0:
                        chars['knight'].pop(chars['knight'].index(knight))
                        enemiesCount[0] -= 1
                if knight.isRight:
                    knight.option = 2

    else:
        if chars['player'].wasLeft:
            screen.blit(chars['player'].player_standL,
                        (chars['player'].x, chars['player'].y))
        else:
            screen.blit(chars['player'].player_standR,
                        (chars['player'].x, chars['player'].y))
    chars['player'].hitbox = (chars['player'].x, chars['player'].y, 24, 36)
    #pg.draw.rect(screen, (255,0,0), chars['player'].hitbox, 2)

    for had in haduk:
        had.draw(screen)

    for x in terr['platforms']:
        x.draw(screen)
    for bull in chars['bulldog']:
        bull.draw(screen)
    for kni in chars['knight']:
        kni.draw(screen)
    for buck in items['cash']:
        buck.draw(screen)
    for citrus in items['oranges']:
        citrus.draw(screen)
    items['hud_cash'].clear()
    for hc in range(chars['player'].coins):
        items['hud_cash'].append(characters.Bucks(hc * 25, 48))
    for money in items['hud_cash']:
        money.draw(screen)
    items['heart'].clear()
    for ht in range(chars['player'].health):
        items['heart'].append(characters.Heart(ht * 48, 0))
    for love in items['heart']:
        love.draw(screen)
    items['oranges_s'].clear()
    for ora in range(chars['player'].oranges):
        items['oranges_s'].append(characters.Orange_Small(ora * 28, 84))
    for small_citrus in items['oranges_s']:
        small_citrus.draw(screen)

    for y in range(24, 18, -1):
        for x in range(33):
            terr['dirt'].draw(screen, x * terr['dirt'].width,
                              y * terr['dirt'].height)
    for x in range(33):
        terr['grass'].draw(screen, x * terr['grass'].width,
                           570)  #take screen_height and - dirt layers

    pg.display.update()
Пример #20
0
 def draw(self, screen):
     screen.blit(self.orange_small, (self.x, self.y))
Пример #21
0
 def draw(self):
     screen.blit(self.image, self.rect)
Пример #22
0
 def draw(self, screen):
     if self.facing == 1:
         screen.blit(self.haduken, (self.x, self.y))
     else:
         screen.blit(self.hadukenL, (self.x, self.y))
     self.hitbox = (self.x + 8, self.y + 6, 26, 22)
        isWinner.start()
        players.clear()
        balls.clear()
        random_start = currentXPos = randrange(0, size[0])
        for i in range(NUMBER_PLAYERS - 1):
            players.append(
                Player(weights=isWinner.weights,
                       bias=isWinner.bias,
                       start=False))
            balls.append(Ball(currentXPos=random_start))

        players.append(isWinner)
        balls.append(Ball(currentXPos=random_start))

    font = pygame.font.SysFont('ComicSans', FONT_SIZE, False, False)
    screen.blit(font.render("Score: " + str(bestScore), True, BLACK),
                START_POINT_DESC)
    screen.blit(font.render("Alive: " + str(isAlive), True, BLACK),
                [START_POINT_DESC[0], START_POINT_DESC[1] + 20])
    screen.blit(font.render("Generation: " + str(generation), True, BLACK),
                [START_POINT_DESC[0], START_POINT_DESC[1] + 2 * 20])
    screen.blit(
        font.render(
            "Best score in game: " + str(highestScoreAllTime) +
            " in Generation: " + str(generationFromHighestScore), True, BLACK),
        [START_POINT_DESC[0], START_POINT_DESC[1] + 3 * 20])
    pygame.display.flip()
    clock.tick(200)

pygame.quit()
Пример #24
0
 def draw_text(self, text, size, color, x, y):
     self.font = loadCustomFont('Fonts/Amatic_SC/amatic_sc.ttf', 72)
     text_surface = self.font.render(text, True, color)
     text_rect = text_surface.get_rect()
     text_rect.midtop = (x, y)
     screen.blit(text_surface, text_rect)
Пример #25
0
            if e.key == pygame.K_DOWN:
                down = False
        if e.type == pygame.K_ESCAPE:
            pygame.display.quit()
            exit()

    """Отрисовка объектов"""

    info_string.fill((150, 150, 150))

    """отображение героя"""
    hero.update(left, right, up, down)
    camera.update(hero)

    for e in sprite_group:
        screen.blit(e.image, camera.apply(e))

    """отрисовка строений"""
    for e in city_group:
        screen.blit(e.image, camera.apply(e))

    """отрисовка шрифтов"""

    ind = 0
    for e in city_group:
        screen.blit(e.image, camera.apply(e))
        screen.blit(city_font.render(city_name_list[ind], 1, (50, 50, 150)), camera.apply(e))
        ind += 1

    screen.blit(hero.image, camera.apply(hero))