Files
2026-10-28 11:01:35 +01:00

93 lines
3.7 KiB
Python

# 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)