# Importieren u. initialisieren der Pygame-Bibliothek from meinspiel import MeinSpiel import pygame from pygame.locals import * pygame.init() import time import random # Variablen/KONSTANTEN setzen Breite, Hoehe = 840, 840 Pixel = 120 FelderX, FelderY = int(Breite / Pixel), int(Hoehe / Pixel) FPS = 60 SCHWARZ = (0, 0, 0) WEISS = (255, 255, 255) GRUEN = (11, 110, 0) pyGameBilder = [] hintergrundBilder = [] wuerfelBilder = [] # surface = pygame.Surface((400, 300)) # Bilder aus meinSpiel werden für pygame vorbereitet meinSpiel = MeinSpiel(FelderX, FelderY) for fname in meinSpiel.hintergrundbilder: try: hintergrundBilder.append(pygame.image.load(fname)) except (FileNotFoundError, pygame.error): hintergrundBilder.append(pygame.image.load("Bilder/Hintergrundpixel/placeholder.jpg")) for fname in meinSpiel.bilder: try: pyGameBilder.append(pygame.image.load(fname)) except (FileNotFoundError, pygame.error): pyGameBilder.append(pygame.image.load("Bilder/Grass.jpg")) for fname in meinSpiel.wuerfel: try: wuerfelBilder.append(pygame.image.load(fname)) except (FileNotFoundError, pygame.error): print("Fehler beim Laden der Würfelbilder") background_img_wood = pygame.image.load( "Bilder/wood-table-texture-background-cropped.jpg") # Anfangskonfiguration für das Spielfeld wird geladen meinSpiel.anfangsKonfiguration() # Definieren und Öffnen eines neuen Fensters screen = pygame.display.set_mode((Breite, Hoehe)) pygame.display.set_caption("Brettspiel") clock = pygame.time.Clock() # Schleife Hauptprogramm while True: # Überprüfen, ob Nutzer eine Aktion durchgeführt hat for event in pygame.event.get(): # Beenden bei [ESC] oder [X] if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): pygame.quit() print(f"{int((pygame.mouse.get_pos()[0]) / 120)}, " f"{int((pygame.mouse.get_pos()[1]) / 120)}") # Spiellogik if event.type == pygame.MOUSEBUTTONDOWN: meinSpiel.mouseButtonClick(pygame.mouse.get_pos()[0], pygame.mouse.get_pos()[1]) if event.type == KEYDOWN: meinSpiel.tasteGedrueckt(event.key) # screen.blit(background_img_wood, (0,0)) <--------- festes, großes Hintergrundbild # Spielfeld löschen for x in range(FelderX): for y in range(FelderY): screen.blit(hintergrundBilder[meinSpiel.spielfeld[x][y]], (x * Pixel, y * Pixel)) for x in range(FelderX): for y in range(FelderY): for i, figur in enumerate(meinSpiel.spielfiguren[x][y]): # enumerate macht das gleiche wie range(len(meinSpiel.spielfiguren[x][y])), nur mit 2 Zählvariablen # "i" beginnt bei jedem Feld wieder bei 0 - keine feste if-Abfrage jeder einzelnen Figur, um die Verschiebungsvariablen zu setzen, nötig xVerschiebung = i * 30 # Verschiebung um 30 Pixel nach rechts, jede Figur im selben Feld etwas weiter yVerschiebung = 0 screen.blit(pyGameBilder[figur], (x * Pixel + xVerschiebung, y * Pixel + yVerschiebung)) # print(meinSpiel.zufallswert) if meinSpiel.wuerfelBildAnzeigen == True: time.sleep(0.01) screen.blit(pygame.image.load(f"Bilder/wuerfel-{meinSpiel.zufallswert}.png"), (310, 600)) pygame.draw.rect(screen, GRUEN, (290, 770, 200, 60)) screen.blit(pygame.font.Font("Bilder/NunitoSans-VariableFont.ttf", 38).render("WÜRFELN", True, (255, 255, 255)), (300, 775)) # print(f"[{i}] Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}") # Spielfeld/figuren zeichnen # Fenster aktualisieren pygame.display.flip() clock.tick(FPS)