91 lines
3.4 KiB
Python
91 lines
3.4 KiB
Python
# Importieren u. initialisieren der Pygame-Bibliothek
|
|
from meinspiel import MeinSpiel
|
|
import pygame
|
|
from pygame.locals import *
|
|
pygame.init()
|
|
|
|
import time
|
|
|
|
|
|
# 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 = []
|
|
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/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"))
|
|
for fname in meinSpiel.wuerfel:
|
|
try:
|
|
wuerfelBilder.append(pygame.image.load(fname))
|
|
except:
|
|
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 == 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:
|
|
screen.blit(pygame.image.load(f"Bilder/wuerfel-{meinSpiel.zufallswert}.png"), (310, 600))
|
|
#print(f"[{i}] Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}")
|
|
if meinSpiel.am_zug >= 4:
|
|
meinSpiel.am_zug = 0
|
|
meinSpiel.figur_entfernt = False
|
|
|
|
# Spielfeld/figuren zeichnen
|
|
# Fenster aktualisieren
|
|
pygame.display.flip()
|
|
clock.tick(FPS)
|