Upload files to "/"
This commit is contained in:
137
kezdo.py
Normal file
137
kezdo.py
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
import pygame
|
||||||
|
from sys import exit
|
||||||
|
|
||||||
|
pygame.init()
|
||||||
|
|
||||||
|
GAME_WIDTH = 888
|
||||||
|
GAME_HEIGHT = 540
|
||||||
|
|
||||||
|
screen = pygame.display.set_mode((GAME_WIDTH, GAME_HEIGHT))
|
||||||
|
pygame.display.set_caption("Mukodik")
|
||||||
|
clock = pygame.time.Clock()
|
||||||
|
|
||||||
|
state = "menu"
|
||||||
|
|
||||||
|
menu_background = pygame.image.load("TITLESCREEN.png").convert()
|
||||||
|
|
||||||
|
new_game = pygame.image.load("NEW GAME.png").convert_alpha()
|
||||||
|
con = pygame.image.load("CONTINUE.png").convert_alpha()
|
||||||
|
reset = pygame.image.load("RESET.png").convert_alpha()
|
||||||
|
save = pygame.image.load("SAVE.png").convert_alpha()
|
||||||
|
settings = pygame.image.load("SETTINGS.png").convert_alpha()
|
||||||
|
quit_btn = pygame.image.load("QUIT.png").convert_alpha()
|
||||||
|
|
||||||
|
# LEVELS
|
||||||
|
level_one = pygame.image.load("levelONE_FORMATTED.png").convert()
|
||||||
|
level_two = pygame.image.load("levelTWO_FORMATTED.png").convert()
|
||||||
|
|
||||||
|
current_level = level_one
|
||||||
|
|
||||||
|
karakter_bal = pygame.image.load("charpixel_left.png").convert_alpha()
|
||||||
|
karakter_jobb = pygame.image.load("charpixel_rightside.png").convert_alpha()
|
||||||
|
|
||||||
|
new_game = pygame.transform.smoothscale(new_game, (160, 50))
|
||||||
|
con = pygame.transform.smoothscale(con, (160, 50))
|
||||||
|
reset = pygame.transform.smoothscale(reset, (160, 50))
|
||||||
|
save = pygame.transform.smoothscale(save, (160, 50))
|
||||||
|
settings = pygame.transform.smoothscale(settings, (160, 50))
|
||||||
|
quit_btn = pygame.transform.smoothscale(quit_btn, (160, 50))
|
||||||
|
karakter_jobb = pygame.transform.smoothscale(karakter_jobb, (160, 160))
|
||||||
|
karakter_bal = pygame.transform.smoothscale(karakter_bal, (160, 160))
|
||||||
|
|
||||||
|
new_game_rect = new_game.get_rect(center=(460, 180))
|
||||||
|
continue_rect = con.get_rect(center=(455, 230))
|
||||||
|
reset_rect = reset.get_rect(center=(455, 280))
|
||||||
|
save_rect = save.get_rect(center=(455, 330))
|
||||||
|
settings_rect = settings.get_rect(center=(455, 380))
|
||||||
|
quit_rect = quit_btn.get_rect(center=(455, 430))
|
||||||
|
|
||||||
|
# SCALE LEVEL
|
||||||
|
def load_level(level_surface):
|
||||||
|
rect = level_surface.get_rect()
|
||||||
|
level_scaled = pygame.transform.scale(level_surface, (rect.width, GAME_HEIGHT))
|
||||||
|
return level_scaled, level_scaled.get_rect()
|
||||||
|
|
||||||
|
level, level_rect = load_level(current_level)
|
||||||
|
|
||||||
|
KARAKTER_SPEED = 5
|
||||||
|
|
||||||
|
kamera_x = 0
|
||||||
|
kamera_y = 0
|
||||||
|
|
||||||
|
current_sprite = karakter_jobb
|
||||||
|
karakter_rect = karakter_jobb.get_rect()
|
||||||
|
|
||||||
|
karakter_x = 200
|
||||||
|
karakter_y = level_rect.height - karakter_rect.height
|
||||||
|
|
||||||
|
while True:
|
||||||
|
for event in pygame.event.get():
|
||||||
|
if event.type == pygame.QUIT:
|
||||||
|
pygame.quit()
|
||||||
|
exit()
|
||||||
|
|
||||||
|
if state == "menu":
|
||||||
|
if event.type == pygame.MOUSEBUTTONDOWN:
|
||||||
|
if new_game_rect.collidepoint(event.pos):
|
||||||
|
state = "game"
|
||||||
|
current_level = level_one
|
||||||
|
level, level_rect = load_level(current_level)
|
||||||
|
|
||||||
|
karakter_x = 200
|
||||||
|
karakter_y = level_rect.height - karakter_rect.height
|
||||||
|
kamera_x = 0
|
||||||
|
kamera_y = 0
|
||||||
|
|
||||||
|
keys = pygame.key.get_pressed()
|
||||||
|
|
||||||
|
if state == "game":
|
||||||
|
if keys[pygame.K_d]:
|
||||||
|
karakter_x += KARAKTER_SPEED
|
||||||
|
current_sprite = karakter_jobb
|
||||||
|
|
||||||
|
if keys[pygame.K_a]:
|
||||||
|
karakter_x -= KARAKTER_SPEED
|
||||||
|
current_sprite = karakter_bal
|
||||||
|
|
||||||
|
karakter_x = max(0, min(karakter_x, level_rect.width - karakter_rect.width))
|
||||||
|
karakter_y = max(0, min(karakter_y, level_rect.height - karakter_rect.height))
|
||||||
|
|
||||||
|
|
||||||
|
if karakter_x <= 0:
|
||||||
|
current_level = level_two
|
||||||
|
level, level_rect = load_level(current_level)
|
||||||
|
karakter_x = level_rect.width - karakter_rect.width - 5
|
||||||
|
|
||||||
|
elif karakter_x >= level_rect.width - karakter_rect.width:
|
||||||
|
current_level = level_two
|
||||||
|
level, level_rect = load_level(current_level)
|
||||||
|
karakter_x = 5
|
||||||
|
|
||||||
|
|
||||||
|
kamera_x = karakter_x + karakter_rect.width // 2 - GAME_WIDTH // 2
|
||||||
|
kamera_y = karakter_y + karakter_rect.height // 2 - GAME_HEIGHT // 2
|
||||||
|
|
||||||
|
kamera_x = max(0, min(kamera_x, level_rect.width - GAME_WIDTH))
|
||||||
|
kamera_y = max(0, min(kamera_y, level_rect.height - GAME_HEIGHT))
|
||||||
|
|
||||||
|
if state == "menu":
|
||||||
|
screen.blit(menu_background, (0, 0))
|
||||||
|
screen.blit(new_game, new_game_rect)
|
||||||
|
screen.blit(reset, reset_rect)
|
||||||
|
screen.blit(save, save_rect)
|
||||||
|
screen.blit(settings, settings_rect)
|
||||||
|
screen.blit(quit_btn, quit_rect)
|
||||||
|
screen.blit(con, continue_rect)
|
||||||
|
|
||||||
|
elif state == "game":
|
||||||
|
screen.fill((0, 0, 0))
|
||||||
|
screen.blit(level, (-kamera_x, -kamera_y))
|
||||||
|
|
||||||
|
karakter_screen_x = karakter_x - kamera_x
|
||||||
|
karakter_screen_y = karakter_y - kamera_y
|
||||||
|
|
||||||
|
screen.blit(current_sprite, (karakter_screen_x, karakter_screen_y))
|
||||||
|
|
||||||
|
pygame.display.flip()
|
||||||
|
clock.tick(60)
|
||||||
Reference in New Issue
Block a user