152 lines
3.0 KiB
Python
152 lines
3.0 KiB
Python
from meinspiel import MeinSpiel
|
|
import pygame
|
|
from pygame.locals import *
|
|
import random
|
|
|
|
pygame.init()
|
|
|
|
Spielerfigur = pygame.image.load("H:\git\E-To-Linus-Hasenspiel\Bilder/Ritter1.png")
|
|
Gegner = pygame.image.load("H:\git\E-To-Linus-Hasenspiel\Bilder/Goblin.png")
|
|
Herzen = pygame.image.load("H:\git\E-To-Linus-Hasenspiel\Bilder/Herz.png")
|
|
|
|
spielerX = 6
|
|
spielerY = 6
|
|
HerzX = -1
|
|
Leben = 3
|
|
|
|
GegnerX = (random.uniform(0,13))
|
|
GegnerY = (random.uniform(0,13))
|
|
Gegnerbewegung = 0.1
|
|
|
|
print(GegnerY)
|
|
print(GegnerX)
|
|
|
|
# Variablen/KONSTANTEN
|
|
Breite, Hoehe = 840, 840
|
|
Pixel = 60
|
|
FelderX, FelderY = int(Breite / Pixel), int(Hoehe / Pixel)
|
|
FPS = 60
|
|
|
|
SCHWARZ = (0, 0, 0)
|
|
WEISS = (255, 255, 255)
|
|
|
|
pyGameBilder = []
|
|
|
|
# Mein Spiel erstellen
|
|
meinSpiel = MeinSpiel(FelderX, FelderY)
|
|
|
|
# Bilder laden
|
|
for fname in meinSpiel.bilder:
|
|
pyGameBilder.append(pygame.image.load(fname))
|
|
|
|
# Anfangskonfiguration
|
|
meinSpiel.anfangsKonfiguration()
|
|
|
|
print(GegnerX)
|
|
# Fenster
|
|
fenster = pygame.display.set_mode((Breite, Hoehe))
|
|
pygame.display.set_caption("Medival Goblin Dungeon")
|
|
|
|
clock = pygame.time.Clock()
|
|
|
|
# Hauptschleife
|
|
while True:
|
|
|
|
# Ereignisse überprüfen
|
|
for event in pygame.event.get():
|
|
|
|
# Beenden
|
|
if event.type == QUIT:
|
|
pygame.quit()
|
|
exit()
|
|
|
|
if event.type == KEYDOWN:
|
|
|
|
if event.key == K_ESCAPE:
|
|
pygame.quit()
|
|
exit()
|
|
|
|
# Bewegung
|
|
if event.key == K_w:
|
|
spielerY -= 1
|
|
|
|
if event.key == K_s:
|
|
spielerY += 1
|
|
|
|
if event.key == K_a:
|
|
spielerX -= 1
|
|
|
|
if event.key == K_d:
|
|
spielerX += 1
|
|
|
|
meinSpiel.tasteGedrueckt(event.key)
|
|
|
|
# Attacke
|
|
|
|
# Spielfeld zeichnen
|
|
|
|
for x in range(FelderX):
|
|
for y in range(FelderY):
|
|
fenster.blit(
|
|
pyGameBilder[meinSpiel.spielfeld[x][y]],
|
|
(x * Pixel, y * Pixel)
|
|
)
|
|
# Lebensanzeige
|
|
for Herzposition in range(3):
|
|
fenster.blit(
|
|
Herzen,
|
|
(HerzX + Herzposition * 60, 0)
|
|
)
|
|
if GegnerX and GegnerY == spielerY and spielerX:
|
|
print("Getroffen")
|
|
|
|
#Gegner Logik
|
|
GegnerX += Gegnerbewegung
|
|
GegnerY += Gegnerbewegung
|
|
|
|
if GegnerY < 0 or GegnerY > 13:
|
|
Gegnerbewegung *= -1
|
|
|
|
if GegnerX < 0 or GegnerX > 13:
|
|
Gegnerbewegung *= -1
|
|
|
|
|
|
# Spielfigur und Gegner zeichnen
|
|
|
|
|
|
fenster.blit(
|
|
Spielerfigur,
|
|
(spielerX * Pixel, spielerY * Pixel)
|
|
)
|
|
fenster.blit(
|
|
Gegner,
|
|
(GegnerX * Pixel, GegnerY * Pixel)
|
|
)
|
|
|
|
# Berührung prüfen
|
|
spieler_rect = pygame.Rect(
|
|
spielerX * Pixel + 10,
|
|
spielerY * Pixel + 10,
|
|
40,
|
|
40
|
|
)
|
|
|
|
gegner_rect = pygame.Rect(
|
|
GegnerX * Pixel + 10,
|
|
GegnerY * Pixel + 10,
|
|
40,
|
|
40
|
|
)
|
|
|
|
if spieler_rect.colliderect(gegner_rect):
|
|
Leben -= 1
|
|
print("Leben",Leben)
|
|
|
|
|
|
|
|
|
|
# Fenster aktualisieren
|
|
pygame.display.flip()
|
|
|
|
clock.tick(FPS)
|