Пример #1
0
def madarbetoltes(felulet, madar, jatekvege):
    """Ezzel jeleníti és tölti be a madarat: ha él akkor az eredeti képet,
    ha nem, akkor pedig a halott elforgatott képet"""
    if jatekvege is False:
        betoltesek.kepmegjelenites(felulet, madar)
    else:
        meghaltmadar = Objektum(madar.szelesseg, madar.magassag,
                                elforgatas(madar.kep, -80))
        betoltesek.kepmegjelenites(felulet, meghaltmadar)
Пример #2
0
def csogeneralas(felulet, cso, start, jatekvege):
    """Ez tölti be a képernyőre az alsó cső-t, illetve magasságának függvényében tölti be a felső csövet"""
    if start is True:
        cso.szelesseg = csoszelesseg(cso, jatekvege)
        cso.magassag = csomagassag(cso, jatekvege)
        betoltesek.kepmegjelenites(felulet, cso)
        cso2 = Objektum(cso.szelesseg, cso.magassag - 120 - 700,
                        elforgatas(cso.kep, 180))
        betoltesek.kepmegjelenites(felulet, cso2)
Пример #3
0
def szamokmegjelenitese(felulet, eredmenyszamlalo, szamok):
    """Ennek segítségével jeleníti meg számokat a képernyőn a (szám)képekből"""
    if eredmenyszamlalo < 10:
        betoltesek.kepmegjelenites(felulet, szamok[eredmenyszamlalo])
    else:
        for i in range(len(str(eredmenyszamlalo))):
            szam = str(eredmenyszamlalo)[i]
            if i != 0:
                szamok[int(szam)].szelesseg += 38
            betoltesek.kepmegjelenites(felulet, szamok[int(szam)])
            szamok[int(szam)].szelesseg = 216
Пример #4
0
def fomenu():

    # Betöltjük az ablakot, illetve a képeket
    betoltesek.ablak()
    felulet = pygame.display.set_mode((432, 768))
    madar = Objektum(180, 300, betoltesek.kep("madar"))
    hatter = Objektum(0, 0, betoltesek.kep("hatter"))
    talaj = Objektum(0, 600, betoltesek.kep("talaj"))
    start = Objektum(60, 450, betoltesek.kep("startgomb"))
    eredmeny = Objektum(260, 450, betoltesek.kep("eredmenygomb"))
    flappybird = Objektum(78, 100, betoltesek.kep("flappybird"))

    # Kiléptek?
    quit = False

    # Betöltöjük a modult ami felel az FPS-ért
    ora = pygame.time.Clock()

    while not quit:

        # Ez felel az FPS-ért
        ora.tick(120)

        # Megnézzük, hogy rákattintottak-e az egyik menügombra
        for event in pygame.event.get():
            # Ha rákattintottak az X-re, kilép
            if event.type == pygame.QUIT:
                quit = True
            if klikkeltobjektum(start, event, 117, 66) is True:
                return 2
            if klikkeltobjektum(eredmeny, event, 117, 66) is True:
                return 4

        # Háttér megjelenítése
        betoltesek.kepmegjelenites(felulet, hatter)

        # Talaj generálása
        talajgeneralas(felulet, talaj, False)

        # Megjelenítjük a gombokat és a Flappy Bird feliratot
        betoltesek.kepmegjelenites(felulet, start)
        betoltesek.kepmegjelenites(felulet, eredmeny)
        betoltesek.kepmegjelenites(felulet, flappybird)

        # Megjelenítjük a madarat
        betoltesek.kepmegjelenites(felulet, madar)

        pygame.display.flip()

    # Kilépés amennyiben a felhasználó X-elt
    pygame.quit()
    sys.exit()
Пример #5
0
def eredmeny():

    # Betöltjük az ablakot, illetve a képeket
    betoltesek.ablak()
    felulet = pygame.display.set_mode((432, 768))
    hatter = Objektum(0, 0, betoltesek.kep("hatter"))
    start = Objektum(150, 650, betoltesek.kep("startgomb"))
    eredmenynagy = Objektum(20, 10, betoltesek.kep("eredmenynagy"))

    # Kilépés már?
    quit = False

    while not quit:
        for event in pygame.event.get():
            # Ha rákattintottak az X-re, kilép
            if event.type == pygame.QUIT:
                quit = True
            # Menügomb figyelése
            if klikkeltobjektum(start, event, 117, 66) is True:
                return 2

        # Háttér, startgomb és eredménytábla képének megjelenítése
        betoltesek.kepmegjelenites(felulet, hatter)
        betoltesek.kepmegjelenites(felulet, start)
        betoltesek.kepmegjelenites(felulet, eredmenynagy)

        # Nagytáblán az eredmények megjelenítése névvel és ppntszámmal
        eredmenyek.nagytabla(felulet)

        pygame.display.flip()

    # Kilépés az X-re
    pygame.quit()
    sys.exit()
Пример #6
0
def jatekinditouzenet(start, felulet, uzenet):
    """A játék indítása előtti üzenetet tölti be """
    if start is False:
        betoltesek.kepmegjelenites(felulet, uzenet)
Пример #7
0
def gamover(talaj, cso, madar, hatter, eredmenyszamlalo):

    # Betöltjük az ablakot, illetve a képeket
    betoltesek.ablak()
    felulet = pygame.display.set_mode((432, 768))
    jatekvegefelirat = Objektum(72, 100, betoltesek.kep("jatekvege"))
    startgomb = Objektum(60, 450, betoltesek.kep("startgomb"))
    eredmenygomb = Objektum(260, 450, betoltesek.kep("eredmenygomb"))
    eredmenyrovid = Objektum(67, 200, betoltesek.kep("eredmenyrovid"))

    # Kilépés figyelő illetve megnézzük, hogy már bekértük-e a nevet, és kiírtuk-e fájlba is az eredményt
    quit = False
    nevmegjelenites = False
    kiiras = False

    while not quit:

        # Megnézzük, hogy rákattintottak-e az egyik menügombra
        for event in pygame.event.get():
            if klikkeltobjektum(startgomb, event, 117, 66) is True:
                return 2
            if klikkeltobjektum(eredmenygomb, event, 117, 66) is True:
                return 4
            # Ha rákattintottak az X-re, kilép
            if event.type == pygame.QUIT:
                quit = True

        # Háttér megjelenítése
        betoltesek.kepmegjelenites(felulet, hatter)

        # Talaj generálása
        talajgeneralas(felulet, talaj, True)
        csogeneralas(felulet, cso, True, True)

        # A madár megjelenítése
        madarbetoltes(felulet, madar, True)

        # Menügombok, és az eredménytábla megjelenítése
        betoltesek.kepmegjelenites(felulet, jatekvegefelirat)
        betoltesek.kepmegjelenites(felulet, startgomb)
        betoltesek.kepmegjelenites(felulet, eredmenygomb)
        betoltesek.kepmegjelenites(felulet, eredmenyrovid)

        # Jelenlegi pontszám kiírása az eredménytáblára
        eredmenyek.pontszam(felulet, eredmenyszamlalo)

        # Kiírja a maxpontszámot, illetve az eddigi rekorder nevét is amennyibe az nem a mostani játékos
        eredmenyek.maxpontnevkiiras(felulet, eredmenyszamlalo, kiiras)

        # Név bekérése egyszer majd megjelenítés
        if nevmegjelenites is False:
            nev = eredmenyek.nevbeker(felulet)
            legjobbnev = eredmenyek.legjobbnev(eredmenyszamlalo, nev)
            nevmegjelenites = True

        # Kiírja a rekorder nevét, akár a játékosét is amennyiben ő az.
        eredmenyek.jatekosnevmegjelenites(felulet, nev, legjobbnev)

        # Név és eredmény kiírása txtbe egyszer
        if kiiras is False:
            eredmenyek.kiir(nev, str(eredmenyszamlalo))
            kiiras = True

        pygame.display.flip()

    # Kilépés amennyiben a felhasználó X-elt
    pygame.quit()
    sys.exit()
Пример #8
0
def jatek():

    # Betöltjük az ablakot, illetve a képeket
    betoltesek.ablak()
    felulet = pygame.display.set_mode((432, 768))
    madar = Objektum(100, 384, betoltesek.kep("madar"))
    cso = Objektum(432, random.randint(180, 600), betoltesek.kep("cso"))
    hatter = Objektum(0, 0, betoltesek.kep("hatter"))
    uzenet = Objektum(78, 250, betoltesek.kep("uzenet"))
    talaj = Objektum(0, 600, betoltesek.kep("talaj"))

    # Számok betöltése
    szamok = betoltesek.szamok()

    # Kilépés, jatekvege, és start figyelés
    quit = False
    jatekvege = False
    start = False

    # Klikkeltek már?
    madarklikk = False

    # Eredmény számlálója
    eredmenyszamlalo = 0

    # Betöltöjük a modult ami felel az FPS-ért
    ora = pygame.time.Clock()

    while not quit:

        # Ez felel az FPS-ért
        ora.tick(120)

        # Space illetve egérklikk figyelése
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN or event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
                start = True
                madarklikk = True
                # Idáig kell eljutnia klikkelés után
                ujmadarmagassag = madar.magassag - 55

            # A pálya tetejét nézi, hogy ne lehessen kimenni
            madar.magassag = kimentapalyarol(madar.magassag)

            # Ha rákattintottak az X-re, kilép
            if event.type == pygame.QUIT:
                quit = True

        # Háttér megjelenítése
        betoltesek.kepmegjelenites(felulet, hatter)

        # Talaj generálása
        talajgeneralas(felulet, talaj, jatekvege)

        # Ha elkezdődött a játék, a madár lefelé tart, klikkeléskor felfelé, de ha hozzáér a talajhoz, vége a játéknak
        if start is True:
            madar.magassag = madarlefele(madar, talaj, madarklikk)
            jatekvege = madartalajhozert(madar, talaj, jatekvege)
            madar.magassag = madarfelklikkutan(madar, madarklikk, jatekvege)
            madarklikk = madarelerteaklikkmagassagot(madarklikk, jatekvege,
                                                     madar, ujmadarmagassag)

        # Csövek generálása
        csogeneralas(felulet, cso, start, jatekvege)

        # A madár megjelenítése
        madarbetoltes(felulet, madar, jatekvege)

        # Betölti a segítő üzenetet a jtáék indítása előtt
        jatekinditouzenet(start, felulet, uzenet)

        # Számok megjelenítése
        if jatekvege is False:
            eredmenyek.szamokmegjelenitese(felulet, eredmenyszamlalo, szamok)

        # Itt vizsgáljuk, hogy belemente az oszlopba
        if belementazoszlopba(madar, cso) is True:
            jatekvege = True

        # Megnézi, hogy a madár a földön van-e már vagy oda kell rakni halál után
        madar.magassag += halalutanfold(madar, talaj, jatekvege)

        # Számlálás
        eredmenyszamlalo += eredmenyek.szamlalas(cso)

        # Ha vége a játéknak meghívja a gameovert
        if jatekvege is True and madar.magassag >= talaj.magassag - 36:
            jatekvegefelulet = gamover(talaj, cso, madar, hatter,
                                       eredmenyszamlalo)
            if jatekvegefelulet == 2:
                return 2
            elif jatekvegefelulet == 4:
                return 4

        pygame.display.flip()

    # Kilépés amennyiben a felhasználó X-elt
    pygame.quit()
    sys.exit()