Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- clock = pygame.time.Clock()
- pygame.init()
- screen = pygame.display.set_mode((600, 300))
- pygame.display.set_caption("Polina's GAME")
- icon = pygame.image.load('иконка игры').convert_alpha()
- pygame.display.set_icon(icon)
- # myfont = pygame.font.Font('путь для шрифта')# шрифт для надписи fonts google
- # text_surface = myfont.render('test - текст надписи', False, 'Black') # доп. характеристики
- # ИГРОК
- walk_right = [
- pygame.image.load('...').convert_alpha() # перебор картинок игрока для создания анимации
- # ...
- ]
- walk_left = [
- # ...
- ]
- # соприкосновние
- player_anim_count = 0
- player_speed = 5
- player_x = 150
- player_y = 250
- is_jump = False
- jump_count = 8
- # если изображение png - convert_alpha()
- # иначе - convert()
- # ВРАГ
- enemy = pygame.image.load('путь к врагу').convert_alpha()
- enemy_timer = pygame.USEREVENT + 1
- pygame.time.set_timer(enemy_timer, 2500)
- enemy_list_in_game = []
- # ЗАДНИЙ ФОН
- bg = pygame.image.load('путь к фону').convert()
- bg_x = 0
- # ЗВУК
- bg_sound = pygame.mixer.Sound('путь к файлу звука')
- bg_sound.play()
- # ИГРА
- gameplay = True
- label = pygame.font.Font('путь к шрифту', 40)
- lose_label = label.render('ВЫ ПРОИГРАЛИ!!!', False, (193, 196, 199))
- restart_label = label.render('Хотите начать заново?', False, (115, 132, 148))
- restart_label_rect = restart_label.get_rect(topleft=(180, 200))
- # ПУЛЯ
- bullet = pygame.image.load('путь к пуле')
- bullets = []
- bullets_amount = 5
- running = True
- while running:
- screen.blit(bg, (bg_x, 0))
- screen.blit(bg, (bg_x + 600, 0))
- if gameplay:
- player_rect = walk_right[0].get_rect(topleft=(player_x, player_y))
- if enemy_list_in_game:
- for (i, element) in enumerate(enemy_list_in_game):
- screen.blit(enemy, element)
- element.x -= 10
- if element.x < -10:
- enemy_list_in_game.pop(i)
- if player_rect.colliderect(element):
- gameplay = False
- keys = pygame.key.get_pressed()
- if keys[pygame.K_LEFT]:
- screen.blit(walk_left[player_anim_count], (player_x, player_y))
- else:
- screen.blit(walk_right[player_anim_count], (player_x, player_y))
- if keys[pygame.K_LEFT] and player_x > 50:
- player_x -= player_speed
- elif keys[pygame.K_RIGHT] and player_x < 250:
- player_x += player_speed
- if not is_jump:
- if keys[pygame.K_SPACE]:
- is_jump = True
- else:
- if jump_count >= -8:
- if jump_count > 0:
- player_y -= (jump_count ** 2) / 2
- else:
- player_y += (jump_count ** 2) / 2
- jump_count -= 1
- else:
- is_jump = False
- jump_count = 8
- if player_anim_count == len(walk_right):
- player_anim_count = 0
- else:
- player_anim_count += 1
- bg_x -= 2
- if bg_x == -600:
- bg_x = 0
- if bullet:
- for (i, el) in enumerate(bullets):
- screen.blit(bullet, (el.x, el.y))
- el.x += 5
- if el.x > 650:
- bullets.pop(i)
- if enemy_list_in_game:
- for (index, enemy_el) in enumerate(enemy_list_in_game):
- if el.colliderect(enemy_el):
- enemy_list_in_game.pop(index)
- bullets.pop(i)
- else:
- screen.fill((0, 0, 0))
- screen.blit(lose_label, (180, 100))
- screen.blit(restart_label_label, restart_label_rect)
- mouse = pygame.mouse.get_pos()
- if restart_label_rect.collidepoint(mouse) and pygame.mouse.get_pressed()[0]:
- gameplay = True
- player_x = 150
- enemy_list_in_game.clear()
- bullets.clear()
- pygame.display.update()
- for event in pygame.event.get():
- if event.type == pygame.quit():
- running = False
- pygame.quit()
- if event.type == enemy_timer:
- enemy_list_in_game.append(enemy.get_rect(topleft=(620, 250)))
- if gameplay and event.type == pygame.KEYUP and event.key == pygame.K_c and bullets_amount > 0:
- bullets.append(bullet.get_rect(topleft=(player_x, player_y)))
- bullets_amount -= 1
- clock.tick(15)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement