# Importieren u. initialisieren der Pygame-Bibliothek from meinspiel import MeinSpiel import pygame from pygame.locals import * pygame.init() # 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) pyGameBilder = [] hintergrundBilder = [] # 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/Grass.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")) 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 == 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(f"[{i}] Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}") # Spielfeld/figuren zeichnen # Fenster aktualisieren pygame.display.flip() clock.tick(FPS)