示例#1
0
def Generator(Blockgroesse, Hoehe, Breite, HoeheBlock, BreiteBlock):
    # Da der unterste Block sonst im Nicht Darstellbaren Bereich gehen würde                x=0, y=1 ist der AusgangsPunkt unten Rechts
    # Anzahl der Blöcke wie Hoch der Generator geht (7 Hoch)
    HoeheBlock = int(HoeheBlock / 2 - 2)
    # Namen der Objekte
    ObjektNamen = Blockanzahl(HoeheBlock, BreiteBlock,
                              (HoeheBlock * BreiteBlock))
    # Liste aller Objekte die Später Zurück gegeben wird
    AlleObjekte = []
    Blocknummer = 0
    BreiteGanzRechts = BreiteBlock - 1
    HoeheGanzOben = HoeheBlock - 1
    for y in range(HoeheBlock):
        for x in range(BreiteBlock):
            if y != HoeheGanzOben:
                Zufall = randint(0, 50)
                if Zufall < 2:
                    ObjektNamen[int(Blocknummer)] = K.Diamant(
                        x * 32, Hoehe - Blockgroesse * y)
                elif Zufall < 10 and not Zufall < 2:
                    ObjektNamen[int(Blocknummer)] = K.Eisen(
                        x * 32, Hoehe - Blockgroesse * y)
                elif Zufall < 15 and not Zufall < 10:
                    ObjektNamen[int(Blocknummer)] = K.Erde(
                        x * 32, Hoehe - Blockgroesse * y)
                    ObjektNamen[int(Blocknummer)].Checkgras(y, HoeheGanzOben)
                elif Zufall < 18 and not Zufall < 15:
                    ObjektNamen[int(Blocknummer)] = K.Gold(
                        x * 32, Hoehe - Blockgroesse * y)
                else:
                    ObjektNamen[int(Blocknummer)] = K.ReinerStein(
                        x * 32, Hoehe - Blockgroesse * y)
            else:
                ObjektNamen[int(Blocknummer)] = K.Erde(
                    x * 32, Hoehe - Blockgroesse * y)
                ObjektNamen[int(Blocknummer)].Checkgras(y, HoeheGanzOben)

            AlleObjekte.append(ObjektNamen[int(Blocknummer)])
            Blocknummer += 1
    Baum = BaumGenerator(Blockgroesse, HoeheBlock, BreiteBlock, Hoehe, Breite)
    for k in Baum:
        AlleObjekte.append(k)
    Berg = Berge(Blockgroesse, Hoehe, Breite, HoeheBlock, BreiteBlock, Baum)
    for i in Berg:
        AlleObjekte.append(i)
    return AlleObjekte
示例#2
0
def Berg_Bloecke(X, Y, Bildschirm_Breite, Untere_Breite, Anzahl):
    Zufall = randint(0, 100)
    # Wenn der Block über X hinweg geht
    # If Abfrage, das wenn es Größer als Breite ist (Fensterbreite) oder kleiner als 0, dann an der anderen Seite Weiter machen
    if X >= Bildschirm_Breite:
        X -= Bildschirm_Breite
    if Untere_Breite == Anzahl or Anzahl == 1:
        Finaler_Block = K.Erde(X, Y)
    elif Zufall <= 2:
        Finaler_Block = K.Diamant(X, Y)
    elif Zufall <= 5:
        Finaler_Block = K.Gold(X, Y)
    elif Zufall <= 15:
        Finaler_Block = K.Eisen(X, Y)
    elif Zufall <= 20:
        Finaler_Block = K.Erde(X, Y)
        Finaler_Block.Blockart = "Erde"
    else:
        Finaler_Block = K.ReinerStein(X, Y)

    return Finaler_Block
示例#3
0
def Esape_menu(Fenster, maus_x, maus_y, Verstecktes_fenster, schrift_rot,
               schrift_weiß, Links_klick, Regen_an, Regen_Geschwindigkeit,
               Musik_an, FensterBreite, FensterHoehe, Blockgroesse, Auswahl):
    schrift_rot_kopie = schrift_rot
    schrift_weiß_kopie = schrift_weiß
    Formen_lokal = []
    dict_lokal = []
    Grafiken = BilderLaden(Blockgroesse)
    Gras = Grafiken[1]
    Eisen = Grafiken[2]
    Gold = Grafiken[3]
    Diamant = Grafiken[4]
    Spielsequenz = 2

    Mauszeiger = pygame.draw.rect(Verstecktes_fenster, (0, 0, 0),
                                  (maus_x, maus_y, 10, 10))
    Font = pygame.font.SysFont('Arial', 32)

    # Escape Fenster
    Escape_Fenster = pygame.draw.rect(Fenster, schrift_weiß, (20, 20, 160, 40))
    Escape_Schrift = Font.render("ZURÜCK", True, (schrift_rot))
    if Mauszeiger.colliderect(Escape_Fenster):
        Escape_Fenster = pygame.draw.rect(Fenster, schrift_rot,
                                          (20, 20, 160, 40))
        Escape_Schrift = Font.render("ZURÜCK", True, (schrift_weiß))
    Fenster.blit(Escape_Schrift, (30, 23))
    # Übergabe des Klickens
    if Mauszeiger.colliderect(Escape_Fenster) and Links_klick == True:
        Spielsequenz = 1

    # Regen Ausschalten
    Regen_aus = pygame.draw.rect(Fenster, schrift_weiß, (200, 200, 220, 40))
    Regen_aus_Schrift = Font.render("Regen ist an", True, (schrift_rot))
    if Regen_an == False:
        Regen_aus = pygame.draw.rect(Fenster, schrift_rot, (200, 200, 220, 40))
        Regen_aus_Schrift = Font.render("Regen ist aus", True, (schrift_weiß))
    Fenster.blit(Regen_aus_Schrift, (210, 200))
    if Mauszeiger.colliderect(Regen_aus) and Links_klick == True:
        if Regen_an == True:
            Regen_an = False
        else:
            Regen_an = True

    # Musik Ausschalten
    Musik_aus = pygame.draw.rect(Fenster, schrift_weiß, (600, 200, 220, 40))
    Musik_aus_Schrift = Font.render("Musik ist an", True, (schrift_rot))
    if Musik_an == False:
        Musik_aus = pygame.draw.rect(Fenster, schrift_rot, (600, 200, 220, 40))
        Musik_aus_Schrift = Font.render("Musik ist aus", True, (schrift_weiß))
    Fenster.blit(Musik_aus_Schrift, (620, 200))
    if Mauszeiger.colliderect(Musik_aus) and Links_klick == True:
        if Musik_an == True:
            Musik_an = False
        else:
            Musik_an = True

    # Exit
    Exit = pygame.draw.rect(Fenster, schrift_weiß, (450, 400, 100, 40))
    Exit_Schrift = Font.render("EXIT", True, (schrift_rot))
    if Mauszeiger.colliderect(Exit):
        Exit = pygame.draw.rect(Fenster, schrift_rot, (450, 400, 100, 40))
        Exit_Schrift = Font.render("EXIT", True, schrift_weiß)
    Fenster.blit(Exit_Schrift, (465, 400))
    if Mauszeiger.colliderect(Exit) and Links_klick == True:
        sys.exit()

    # Blöcke an der Seite
    for i in range(1, 5):
        r1_y = FensterHoehe
        if i == 1:
            r1_x = 0
            r2_x = Blockgroesse
            r3_x = r2_x + Blockgroesse
            r4_x = r2_x + Blockgroesse * 2
        if i == 2:
            r1_x = FensterBreite - Blockgroesse
            r2_x = FensterBreite - Blockgroesse * 2
            r3_x = FensterBreite - Blockgroesse * 3
            r4_x = FensterBreite - Blockgroesse * 4
        if i == 4:
            r1_y = 0
            r1_x = FensterBreite - Blockgroesse
            r2_x = FensterBreite - Blockgroesse * 2
            r3_x = FensterBreite - Blockgroesse * 3
            r4_x = FensterBreite - Blockgroesse * 4
        if i in [1, 2]:
            dict_lokal.append(k.Diamant(r1_x, r1_y - Blockgroesse))
            dict_lokal.append(k.Gold(r1_x, r1_y - Blockgroesse * 2))
            dict_lokal.append(k.Eisen(r1_x, r1_y - Blockgroesse * 3))
            dict_lokal.append(k.Erde(r1_x, r1_y - Blockgroesse * 4))
            dict_lokal.append(k.Eisen(r2_x, r1_y - Blockgroesse))
            dict_lokal.append(k.Diamant(r2_x, r1_y - Blockgroesse * 2))
            dict_lokal.append(k.Erde(r2_x, r1_y - Blockgroesse * 3))
            dict_lokal.append(k.Gold(r3_x, r1_y - Blockgroesse))
            dict_lokal.append(k.Erde(r3_x, r1_y - Blockgroesse * 2))
            dict_lokal.append(k.Erde(r4_x, r1_y - Blockgroesse))
        elif i == 4:
            dict_lokal.append(k.Diamant(r1_x, r1_y))
            dict_lokal.append(k.Gold(r1_x, r1_y + Blockgroesse * 1))
            dict_lokal.append(k.Eisen(r1_x, r1_y + Blockgroesse * 2))
            dict_lokal.append(k.Erde(r1_x, r1_y + Blockgroesse * 3))
            dict_lokal.append(k.Eisen(r2_x, r1_y))
            dict_lokal.append(k.Diamant(r2_x, r1_y + Blockgroesse * 1))
            dict_lokal.append(k.Erde(r2_x, r1_y + Blockgroesse * 2))
            dict_lokal.append(k.Gold(r3_x, r1_y))
            dict_lokal.append(k.Erde(r3_x, r1_y + Blockgroesse * 1))
            dict_lokal.append(k.Erde(r4_x, r1_y))
    # Ausschmückungen an den Rändern in Bilder umformen
    for i in dict_lokal:
        # Blöcke pro Durchgang hinzufügen
        Formen_lokal.append(i)
        # Grafik der Blockart an den Punkt hinzufügen
        if i.Blockart == 'Gras':
            Fenster.blit(Gras, (i.xPosition, i.yPosition))
        elif i.Blockart == 'Eisen':
            Fenster.blit(Eisen, (i.xPosition, i.yPosition))
        elif i.Blockart == 'Gold':
            Fenster.blit(Gold, (i.xPosition, i.yPosition))
        elif i.Blockart == 'Diamant':
            Fenster.blit(Diamant, (i.xPosition, i.yPosition))

    return Spielsequenz, Regen_an, Regen_Geschwindigkeit, Musik_an, Auswahl
示例#4
0
def Startsequenz(Fenster, button_farbe_normal, schrift_farbe_normal,
                 start_button_breite, start_button_hoehe, FensterBreite,
                 FensterHoehe, Versteckter_monitor, maus_x, maus_y,
                 Links_klick, Blockgroesse):
    # Wichtige Variablen und Einstellungen einstellen
    Formen_lokal = []
    dict_lokal = []
    Grafiken = BilderLaden(Blockgroesse)
    Gras = Grafiken[1]
    Eisen = Grafiken[2]
    Gold = Grafiken[3]
    Diamant = Grafiken[4]
    font_Start = pygame.font.SysFont('Arial', 40)
    font_unreality = pygame.font.SysFont('Arial', 120)
    Phantom_fenster = pygame.draw.rect(
        Versteckter_monitor, (button_farbe_normal),
        (FensterBreite / 2 - int(start_button_breite / 2), FensterHoehe / 2 +
         start_button_hoehe, start_button_breite, start_button_hoehe))
    Mauszeiger = pygame.draw.rect(Versteckter_monitor, (0, 0, 0),
                                  (maus_x, maus_y, 10, 10))

    # Invertierte Farbe
    Font_farbe_kopie = schrift_farbe_normal
    button_farbe_kopie = button_farbe_normal
    if Mauszeiger.colliderect(Phantom_fenster):
        schrift_farbe_normal = button_farbe_normal
        button_farbe_normal = Font_farbe_kopie
    else:
        schrift_farbe_normal = Font_farbe_kopie
        button_farbe_normal = button_farbe_kopie
    # Darstellen der Gegenstände
    Start_rect = pygame.draw.rect(
        Fenster, (button_farbe_normal),
        (FensterBreite / 2 - int(start_button_breite / 2), FensterHoehe / 2 +
         start_button_hoehe, start_button_breite, start_button_hoehe))
    start_schrift = font_Start.render("START", True, (schrift_farbe_normal))
    Unreality_schrift = font_unreality.render("UNREALITY", True,
                                              (button_farbe_kopie))
    Fenster.blit(start_schrift,
                 (FensterBreite / 2 - int(start_button_breite / 2) + 35,
                  FensterHoehe / 2 + start_button_hoehe))
    Fenster.blit(Unreality_schrift, (200, 180))

    # Ausschmückungen an den Rändern erstellen
    # UntenLinks
    for i in range(1, 5):
        r1_y = FensterHoehe
        if i == 1:
            r1_x = 0
            r2_x = Blockgroesse
            r3_x = r2_x + Blockgroesse
            r4_x = r2_x + Blockgroesse * 2
        if i == 2:
            r1_x = FensterBreite - Blockgroesse
            r2_x = FensterBreite - Blockgroesse * 2
            r3_x = FensterBreite - Blockgroesse * 3
            r4_x = FensterBreite - Blockgroesse * 4
        if i == 3:
            r1_y = 0
            r1_x = 0
            r2_x = Blockgroesse
            r3_x = r2_x + Blockgroesse
            r4_x = r2_x + Blockgroesse * 2
        if i == 4:
            r1_y = 0
            r1_x = FensterBreite - Blockgroesse
            r2_x = FensterBreite - Blockgroesse * 2
            r3_x = FensterBreite - Blockgroesse * 3
            r4_x = FensterBreite - Blockgroesse * 4
        if i in [1, 2]:
            dict_lokal.append(k.Diamant(r1_x, r1_y - Blockgroesse))
            dict_lokal.append(k.Gold(r1_x, r1_y - Blockgroesse * 2))
            dict_lokal.append(k.Eisen(r1_x, r1_y - Blockgroesse * 3))
            dict_lokal.append(k.Erde(r1_x, r1_y - Blockgroesse * 4))
            dict_lokal.append(k.Eisen(r2_x, r1_y - Blockgroesse))
            dict_lokal.append(k.Diamant(r2_x, r1_y - Blockgroesse * 2))
            dict_lokal.append(k.Erde(r2_x, r1_y - Blockgroesse * 3))
            dict_lokal.append(k.Gold(r3_x, r1_y - Blockgroesse))
            dict_lokal.append(k.Erde(r3_x, r1_y - Blockgroesse * 2))
            dict_lokal.append(k.Erde(r4_x, r1_y - Blockgroesse))
        elif i in [3, 4]:
            dict_lokal.append(k.Diamant(r1_x, r1_y))
            dict_lokal.append(k.Gold(r1_x, r1_y + Blockgroesse * 1))
            dict_lokal.append(k.Eisen(r1_x, r1_y + Blockgroesse * 2))
            dict_lokal.append(k.Erde(r1_x, r1_y + Blockgroesse * 3))
            dict_lokal.append(k.Eisen(r2_x, r1_y))
            dict_lokal.append(k.Diamant(r2_x, r1_y + Blockgroesse * 1))
            dict_lokal.append(k.Erde(r2_x, r1_y + Blockgroesse * 2))
            dict_lokal.append(k.Gold(r3_x, r1_y))
            dict_lokal.append(k.Erde(r3_x, r1_y + Blockgroesse * 1))
            dict_lokal.append(k.Erde(r4_x, r1_y))
    # Ausschmückungen an den Rändern in Bilder umformen
    for i in dict_lokal:
        # Blöcke pro Durchgang hinzufügen
        Formen_lokal.append(i)
        # Grafik der Blockart an den Punkt hinzufügen
        if i.Blockart == 'Gras':
            Fenster.blit(Gras, (i.xPosition, i.yPosition))
        elif i.Blockart == 'Eisen':
            Fenster.blit(Eisen, (i.xPosition, i.yPosition))
        elif i.Blockart == 'Gold':
            Fenster.blit(Gold, (i.xPosition, i.yPosition))
        elif i.Blockart == 'Diamant':
            Fenster.blit(Diamant, (i.xPosition, i.yPosition))

    # Abbruchkriterium um Ins Hauptspiel zu kommen
    if Mauszeiger.colliderect(Phantom_fenster) and Links_klick == True:
        return 1
    else:
        return 0
示例#5
0
                if not Inventar[Inv_Pointer - 1].Gegenstandsart in [
                        "Spitzhacke", "Schwert"
                ] and Figur.colliderect(
                        Neuer_Cursor) == False and Figur.colliderect(
                            potenzieller_block
                        ) == False and Nicht_in_Luft == True:
                    Gegenstand = Inventar[Inv_Pointer - 1]
                    Gegenstand_Art = Gegenstand.Gegenstandsart
                    if Gegenstand.Anzahl > 1:
                        Inventar[Inv_Pointer - 1].Anzahl -= 1
                    else:
                        Inventar.pop(Inv_Pointer - 1)
                    if Gegenstand_Art == "ReinerStein":
                        Neuer_Block = klassen.ReinerStein(MausX, MausY)
                    elif Gegenstand_Art == "Erde":
                        Neuer_Block = klassen.Erde(MausX, MausY)
                        Neuer_Block.Blockart = "Erde"
                    elif Gegenstand_Art == "Eisen":
                        Neuer_Block = klassen.Eisen(MausX, MausY)
                    elif Gegenstand_Art == "Gold":
                        Neuer_Block = klassen.Gold(MausX, MausY)
                    elif Gegenstand_Art == "Diamant":
                        Neuer_Block = klassen.Diamant(MausX, MausY)
                    elif Gegenstand_Art == "Eiche":
                        Neuer_Block = klassen.Eiche(MausX, MausY)
                    elif Gegenstand_Art == "Birke":
                        Neuer_Block = klassen.Birke(MausX, MausY)
                    elif Gegenstand_Art == "Bruchstein":
                        Neuer_Block = klassen.Bruchstein(MausX, MausY)
                    dict.append(Neuer_Block)