From c3bdb12c239740a8841fe1f5a34c0da12ec730b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Kosen=C4=8Duks?= Date: Thu, 15 Feb 2024 11:56:04 +0000 Subject: [PATCH] Add Ya napisal --- Ya napisal | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Ya napisal diff --git a/Ya napisal b/Ya napisal new file mode 100644 index 0000000..1ee9170 --- /dev/null +++ b/Ya napisal @@ -0,0 +1,125 @@ +import pygame, sys, random + +def draw_floor(): + screen.blit(floor_surface,(floor_x_pos,900)) + screen.blit(floor_surface,(floor_x_pos + 576,900)) + +def check_collision(): + for pipe in pipe_list: + if bird_rect.colliderect(pipe): + return False + + if bird_rect.top <= -100 or bird_rect.bottom >= 900: + return False + + return True + +def rotate_bird(bird): + new_bird = pygame.transform.rotozoom(bird,-bird_movement * 3,1) + return new_bird + +def bird_animation(): + new_bird = bird_frames[bird_index] + new_bird_rect = new_bird.get_rect(center = (100,bird_rect.centery)) + return new_bird,new_bird_rect + +def score_display(game_state): + if game_state == 'main_game': + score_surface = game_font.render(str(int(score)),True,(255,255,255)) + score_rect = score_surface.get_rect(center = (288,100)) + screen.blit(score_surface,score_rect) + if game_state == 'game_over': + score_surface = game_font.render(f'Score: {int(score)}' ,True,(255,255,255)) + score_rect = score_surface.get_rect(center = (288,100)) + screen.blit(score_surface,score_rect) + + high_score_surface = game_font.render(f'High score: {int(high_score)}',True,(255,255,255)) + high_score_rect = high_score_surface.get_rect(center = (288,850)) + screen.blit(high_score_surface,high_score_rect) + +def update_score(score, high_score): + if score > high_score: + high_score = score + return high_score + +pygame.mixer.pre_init(frequency = 44100, size = 16, channels = 1, buffer = 512) +pygame.init() +screen = pygame.display.set_mode((576,1024)) +clock = pygame.time.Clock() +game_font = pygame.font.Font('04B_19.TTF',40) + +gravity = 0.25 +bird_movement = 0 +game_active = True +score = 0 +high_score = 0 + +bg_surface = pygame.image.load('background-day.png').convert() +bg_surface = pygame.transform.scale2x(bg_surface) + +floor_surface = pygame.image.load('base.png').convert() +floor_surface = pygame.transform.scale2x(floor_surface) +floor_x_pos = 0 + +bird_downflap = pygame.transform.scale2x(pygame.image.load( 'bluebird-downflap.png').convert_alpha()) +bird_midflap = pygame.transform.scale2x(pygame.image.load( 'bluebird-midflap.png').convert_alpha()) +bird_upflap = pygame.transform.scale2x(pygame.image.load( 'bluebird-upflap.png').convert_alpha()) +bird_frames = [bird_downflap,bird_midflap,bird_upflap] +bird_index = 0 +bird_surface = bird_frames[bird_index] +bird_rect = bird_surface.get_rect(center = (100,512)) + +BIRDFLAP = pygame.USEREVENT + 1 +pygame.time.set_timer(BIRDFLAP,200) + + +pipe_list = [] + + +while True: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_SPACE and game_active: + bird_movement = 0 + bird_movement -= 8 + if event.key == pygame.K_SPACE and game_active == False: + game_active = True + bird_rect.center = (100,512) + bird_movement = 0 + score = 0 + + + + if event.type == BIRDFLAP: + if bird_index < 2: + bird_index += 1 + else: + bird_index = 0 + + bird_surface,bird_rect = bird_animation() + + screen.blit(bg_surface,(0,0)) + + if game_active: + + bird_movement += gravity + rotated_bird = rotate_bird(bird_surface) + bird_rect.centery += bird_movement + screen.blit(rotated_bird,bird_rect) + game_active = check_collision() + + score += 0.01 + score_display('main_game') + else: + score_display('game_over') + + floor_x_pos -= 1 + draw_floor() + if floor_x_pos <= -576: + floor_x_pos = 0 + + pygame.display.update() + clock.tick(120) \ No newline at end of file