diff --git a/harjoituspeli/peli.py b/harjoituspeli/peli.py index 4c03551027d433aeba5177d9c86216f51489d673..d0b08a5b4979e5f7ff935c86100418cdbb6bc4fe 100644 --- a/harjoituspeli/peli.py +++ b/harjoituspeli/peli.py @@ -49,6 +49,64 @@ taso = tasot[0] laatikot = [] fontti = pygame.font.SysFont("Arial", 20, False, False) + + +class Nappi: + """Luodaan Nappi-luokka""" + def __init__(self, teksti, sijainti): + self.text = teksti + self.pos=sijainti + self.nappi = pygame.rect.Rect((self.pos[0], self.pos[1], 260, 40)) + + #Annetaan napeille piirto ohjeet + def draw(self): + pygame.draw.rect(naytto, 'light gray', self.nappi, 0, 5) + pygame.draw.rect(naytto, 'dark gray', [self.pos[0], self.pos[1], 260, 40], 5, 5) + text2 = fontti.render(self.text, True, 'black') + naytto.blit(text2, (self.pos[0] + 15, self.pos[1] + 7)) + #Tarkistetaan, että nappia on painettu oikeassa kohdassa + def tarkista_painallus(self): + if self.nappi.collidepoint(pygame.mouse.get_pos()) and pygame.mouse.get_pressed()[0]: + return True + else: + return False + +def piirra_menu(): + """Piirretään menun napit + ja ohjataan niiden painamisesta syntvät kommenot""" + komento = -1 + pygame.draw.rect(naytto, VALKOINEN, [100, 100, 300, 300]) + pygame.draw.rect(naytto, VIHREA, [100, 100, 300, 300], 5) + pygame.draw.rect(naytto, MUSTA, [120, 120, 260, 40], 0, 5) + pygame.draw.rect(naytto, VALKOINEN, [120, 120, 260, 40], 5, 5) + txt = fontti.render("Menu", True, VALKOINEN) + naytto.blit(txt, (135, 127)) + menu = Nappi('Exit Menu', (120, 350)) + menu.draw() + nappi1 = Nappi("Aloita alusta", (120, 180)) + nappi1.draw() + nappi2 = Nappi("Tallenna", (120, 240)) + nappi2.draw() + nappi3 = Nappi("Quit Game", (120, 300)) + nappi3.draw() + if menu.tarkista_painallus(): + komento = 0 + elif nappi1.tarkista_painallus(): + komento = 1 + elif nappi2.tarkista_painallus(): + komento = 2 + elif nappi3.tarkista_painallus(): + komento = 3 + return komento + + +def piirra_menunappi(): + menu_btn = Nappi('Open Menu', (230, 450)) + menu_btn.draw() + menu = menu_btn.tarkista_painallus() + return menu + + def piirra_tekstia(teksti: str, väri: tuple, x: int, y: int): """funktiota kutsumalla voidaan kirjoittaa näytölle tekstiä""" kuva = fontti.render(teksti, True, väri) @@ -180,6 +238,8 @@ def aloita_alusta(): if lataa(): lataa() +komento = -1 +hiiri_alas=False # pelisilmukka while True: for tapahtuma in pygame.event.get(): @@ -187,6 +247,8 @@ while True: #tallennetaan pelin tila ennen poistumista tallenna() exit() + elif tapahtuma.type == pygame.MOUSEBUTTONDOWN: + hiiri_alas= True # taustaväri naytto.fill(MUSTA) @@ -200,6 +262,30 @@ while True: liike() + piirra_menunappi + + if hiiri_alas: + komento = piirra_menu() + + if komento == 0: + print("Exit Menu clicked") + hiiri_alas=False + komento = -1 + + elif komento == 1: + aloita_alusta() + hiiri_alas=False + komento = -1 + + elif komento == 2: + tallenna() + hiiri_alas=False + komento = -1 + + elif komento == 3: + pygame.quit() + exit() + naytto.blit(pelaaja_hahmo, (hahmo_x, hahmo_y)) pygame.display.flip()