import pygame
import os
os.chdir("D:/Computer Science/denis")
bg_path = os.path.abspath("bg.jpg")
ball_path = os.path.abspath("ball.png")
nlo1_path = os.path.abspath("nlo1.png")
nlo2_path = os.path.abspath("nlo2.png")
button_path = os.path.abspath("knopa.png")
strelka_path = os.path.abspath("strelka.png")
font_path = os.path.abspath("GravitasOne-Regular.ttf")
bg = pygame.image.load(os.path.basename(bg_path))
ball = pygame.image.load(os.path.basename(ball_path))
nlo1 = pygame.image.load(os.path.basename(nlo1_path))
nlo2 = pygame.image.load(os.path.basename(nlo2_path))
button1 = pygame.image.load(os.path.basename(button_path))
button2 = pygame.image.load(os.path.basename(button_path))
button3 = pygame.image.load(os.path.basename(button_path))
strelka = pygame.image.load(os.path.basename(strelka_path))
pygame.init()
font = pygame.font.Font(font_path, 70)
party = 1.5
taburet = 0.8
divan = 1.0
help = False
nlo1_collided = False
nlo2_collided = False
x = True
y = True
y2 = True
y3 = True
startgame = True
startmenu = True
startop = True
window = pygame.display.set_mode((1920, 1080))
screen = pygame.Surface((1920, 1080))
pygame.display.set_caption("1,2,3,4,5,6")
ball_x = 922
ball_y = 502
nlo1_y = 405
nlo2_y = 405
button_width = 552
button_height = 143
strelka_width = 80
strelka_height = 60
strelka_x = 10
strelka_y = 10
exitbutton_x = 684
exitbutton_y = 705
exit_text = font.render("EXIT", True, (255, 255, 255))
playbutton_x = 684
playbutton_y = 305
play_text = font.render("PLAY", True, (255, 255, 255))
optionbutton_x = 684
optionbutton_y = 505
option_text = font.render("OPTIONS", True, (255, 255, 255))
def options():
global menu1
global startop
while startop:
mehanika2()
pygame.display.update()
for menu in pygame.event.get():
if menu.type == pygame.QUIT:
startop = False
window.blit(screen, (0, 0))
screen.blit(bg, (0, 0))
screen.blit(pygame.transform.scale(strelka, (strelka_width, strelka_height)), (strelka_x, strelka_y))
def game():
global startgame, x, y, y2, y3, taburet, divan, party, help, nlo1_collided, nlo2_collided, ball_x, ball_y, nlo1_y, nlo2_y
while startgame:
pygame.display.update()
if y3:
ball_y -= divan
else:
ball_y += divan
if ball_y < 0:
y3 = False
if ball_y > 1005:
y3 = True
if x:
ball_x += taburet
else:
ball_x -= taburet
if ball_x > 1920 or ball_x < -75:
startgame = False
if y:
nlo1_y -= party
bogdan = True
else:
nlo1_y += party
bogdan = False
if nlo1_y < 0:
y = False
if nlo1_y > 810:
y = True
if y2:
nlo2_y -= party
bogdan2 = True
else:
nlo2_y += party
bogdan2 = False
if nlo2_y < 0:
y2 = False
if nlo2_y > 810:
y2 = True
for event in pygame.event.get():
if event.type == pygame.QUIT:
startgame = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN and bogdan:
y = False
if event.key == pygame.K_RETURN and not bogdan:
y = True
if event.key == pygame.K_SPACE and bogdan2:
y2 = False
if event.key == pygame.K_SPACE and not bogdan2:
y2 = True
nlo1_rect = pygame.Rect(1550, nlo1_y, 25, 270)
nlo2_rect = pygame.Rect(345, nlo2_y, 25, 270)
ball_rect = pygame.Rect(ball_x, ball_y, 75, 75)
if not ball_rect.colliderect(nlo1_rect) and not nlo1_collided:
nlo1_collided = True
help = False
nlo2_collided = False
if not ball_rect.colliderect(nlo2_rect) and not nlo2_collided:
nlo2_collided = True
help = False
nlo1_collided = False
if ball_rect.colliderect(nlo1_rect) and not help:
help = True
x = False
taburet = taburet + 0.1
divan = divan + 0.1
party = party + 0.05
if ball_rect.colliderect(nlo2_rect) and not help:
help = True
x = True
taburet = taburet + 0.1
divan = divan + 0.1
party = party + 0.05
window.blit(screen, (0, 0))
screen.blit(bg, (0, 0))
screen.blit(nlo1, (1550, nlo1_y))
screen.blit(nlo2, (100, nlo2_y))
screen.blit(ball, (ball_x, ball_y))
def menu1():
global startmenu
global mouse_pos
global menu1
while startmenu:
mehanika()
pygame.display.update()
for menu in pygame.event.get():
if menu.type == pygame.QUIT:
startmenu = False
window.blit(screen, (0, 0))
screen.blit(bg, (0, 0))
screen.blit(pygame.transform.scale(button1, (button_width, button_height)), (exitbutton_x, exitbutton_y))
screen.blit(pygame.transform.scale(button2, (button_width, button_height)), (playbutton_x, playbutton_y))
screen.blit(pygame.transform.scale(button3, (button_width, button_height)), (optionbutton_x, optionbutton_y))
screen.blit(option_text, (optionbutton_x + 60, optionbutton_y + 40))
screen.blit(play_text, (playbutton_x + 150, playbutton_y + 40))
screen.blit(exit_text, (exitbutton_x + 150, exitbutton_y + 40))
def mehanika():
global startmenu
global mouse_pos
global startop
mouse_pos = pygame.mouse.get_pos()
if exitbutton_x < mouse_pos[0] < exitbutton_x + button_width and exitbutton_y < mouse_pos[1] < exitbutton_y + button_height:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
startmenu = False
if playbutton_x < mouse_pos[0] < playbutton_x + button_width and playbutton_y < mouse_pos[1] < playbutton_y + button_height:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
startmenu = False
game()
if optionbutton_x < mouse_pos[0] < optionbutton_x + button_width and optionbutton_y < mouse_pos[1] < optionbutton_y + button_height:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
startmenu = False
options()
def mehanika2():
global startop
mouse_pos2 = pygame.mouse.get_pos()
if strelka_x < mouse_pos2[0] < strelka_x + strelka_width and strelka_y < mouse_pos2[1] < strelka_y + strelka_height:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
startop = False
menu1()
menu1()