09.09.2026
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 24 KiB |
@@ -1,2 +1,11 @@
|
|||||||
# E-To-Linus-Hasenspiel
|
# MeinErstesSpiel
|
||||||
Olla
|
|
||||||
|
|
||||||
|
## Meine Spielidee
|
||||||
|
Man hat einen Ritter der in der Mitte des Spielfelds startet und sich mit seinem Schwert gegen Kobolde verteidige die immer zufällig aus den Spielfeldrändern kommen auf ihn zu laufen. Er muss sie mit seinem Schwert ermorden denn wenn nicht verliert er ein Leben.
|
||||||
|
|
||||||
|
#09.09.2026
|
||||||
|
Heute habe ich relativ viel geschafft. Ich habe es hinbekommen der Spieler zu bewegen und habe außerdem noch mehrere Grafiken eingebaut wie zum Beispiel ein Herz für die Lebensanzeige und einen Kobold als Gegener. Jetzt probiere ich den Kobold zum Spieler gehen zu lassen. Jedoch läuft der Kobold noch aus dem Spielfeld heraus. Dies probiere ich nächste Woche zu verbessern.
|
||||||
|
|
||||||
|
|
||||||
|
# Bildquellen:
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import copy
|
||||||
|
import pygame
|
||||||
|
|
||||||
|
Startpositionx = (2)
|
||||||
|
Startpositiony = (2)
|
||||||
|
|
||||||
|
class MeinSpiel:
|
||||||
|
bilder = ["Bilder/steinboden.png","Bilder/Grass.jpg","Bilder/Ritter2.png"]
|
||||||
|
spielfeld = []
|
||||||
|
|
||||||
|
def __init__(self, felderX, felderY):
|
||||||
|
for x in range(felderX):
|
||||||
|
self.spielfeld.append([])
|
||||||
|
for y in range(felderY):
|
||||||
|
self.spielfeld[x].append(0)
|
||||||
|
|
||||||
|
def anfangsKonfiguration(self):
|
||||||
|
self.spielfeld[5][5] = 0
|
||||||
|
|
||||||
|
def tasteGedrueckt(self, taste):
|
||||||
|
if pygame.K_w == taste:
|
||||||
|
print(taste)
|
||||||
|
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
from meinspiel import MeinSpiel
|
||||||
|
import pygame
|
||||||
|
from pygame.locals import *
|
||||||
|
import random
|
||||||
|
|
||||||
|
pygame.init()
|
||||||
|
|
||||||
|
Spielerfigur = pygame.image.load("Bilder/Ritter2.png")
|
||||||
|
Gegner = pygame.image.load("Bilder/Goblin.png")
|
||||||
|
Herzen = pygame.image.load("Bilder/Herz.png")
|
||||||
|
|
||||||
|
spielerX = 6
|
||||||
|
spielerY = 6
|
||||||
|
HerzX = -1
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
)
|
||||||
|
|
||||||
|
#Gegner Logik
|
||||||
|
GegnerY += Gegnerbewegung
|
||||||
|
GegnerX += Gegnerbewegung
|
||||||
|
if GegnerY < 13 or GegnerY > 0:
|
||||||
|
Gegnerbewegung *= -1
|
||||||
|
if GegnerX < 13 or GegnerX > 0:
|
||||||
|
Gegnerbewegung *= -1
|
||||||
|
|
||||||
|
# Spielfigur und Gegner zeichnen
|
||||||
|
|
||||||
|
|
||||||
|
fenster.blit(
|
||||||
|
Spielerfigur,
|
||||||
|
(spielerX * Pixel, spielerY * Pixel)
|
||||||
|
)
|
||||||
|
fenster.blit(
|
||||||
|
Gegner,
|
||||||
|
(GegnerX * Pixel, GegnerY * Pixel)
|
||||||
|
)
|
||||||
|
# Fenster aktualisieren
|
||||||
|
pygame.display.flip()
|
||||||
|
|
||||||
|
clock.tick(FPS)
|
||||||