Skip to content

Eceri/PRIMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRIMA

Zum Spiel

Zum Code

Zu den Dokumenten

Checkliste

Nr Bezeichnung Inhalt
- Titel Knights Quest
- Name Michael Lorens
- Matrikelnummer 256488
1 Nutzerinteraktion Die Spielerfigur wird mit "A" und "D" seitlich bewegt, mit "W" springt sie, "Q" wechselt die waffe und "E" löst einen Angriff, einen Axtschwung oder ein Feuerball aus einem Zepter, je nach Waffe. Über "ESC" kann das Spiel pausiert/fortgesetzt werden. Hier kann man den Sound stumm stellen.
2 Objektinteraktion Der Spieler und seine Geschosse interagieren mit den Platformen im Spiel. Kollidiert der Spieler mit einer Plattform, wird er von dieser anghalten angehalten, und an die richtige Position geschoben. Die Resolution der Kollisionen des Spielers wird anhand der Sprite größen berechnet. Ist es eine bewegende Plattform, wird der Spieler auch von dieser mitgenommen. (Bewegt sich die plattform runter, fällt der Spieler, das ist ungewollt, aber ich habe noch keine Lösung gefunden). Der Feuerball zerstört sich bei einer Kollision und verschwindet (die Animation dafür gibts noch nicht). Er verschwindet auch nach einer gewissen Distanz. Gegner Gibt es Leider noch nicht.
3 Objektanzahl variabel Die Projektile des Spielers werden zur lauf zeit erzeugt und zerstört.
4 Szenenhierarchie An oberster stelle steht eine game-Node. Dieser Node sind das Level und der Spieler untergeornet. Im Level befinden sich "Floor"-Objekte, diese stellen die Plattformen dar. Zudem hat das level einen "Background" dieser dient zur Darstellungen des Hintergrund und hat bislang 3 NodeSprites, die letzendlich die Einzelteile des Hintergrunds sind. Der Spieler hat 7 SpriteNodes die im untergeordnet sind, sie stellen die verschiedenen Animation für die Spieler bewegungen dar. Attack, Walk, und Idle jeweils für beide Waffen. Zudem hat er eine Fall-animation, Leider nur mit dem Zepter.
5 Sound Es gibt Backgroundmusik und einen Sound sobald der Spieler einen Feuerball erzeugt. Beides lässt sich über das Pausenmenü stumm stellen.
6 GUI Der Startscreen und das Pausenmenü sind über HTML elemente dargestellt. Wenn diese nicht sichtbar sein sollen werden sie per CSS (z-Index) nach hinten geschoben und sind so nicht mehr sichtbar. Entsprechen werden sie beim pausieren in den Vordergrund gezogen.
7 Externe Daten Es ist möglich das Level in der Levels.json zu ändern. Diese Datei wird beim Laden der Seite gelsen und daraus wird das Level generiert. Das erfolgt über einen fetch
8 Verhaltensklassen Das Level wird in der Level.ts erzeugt, diese Klasse bekommt von außen (aus der Main.ts) die zuvor gelesenen Level aus der JSON, und generiert aus dießer das Level. Die Floor Klasse beschreibt Statische Plattformen, die haben lediglich einen Coat und eine Position. Moving floors haben zusätzlich einen Bewegungsrichtung und Geschwindigkeit. Die Character.ts beschreibt die Spielerfigur, die einige Verhaltensmethoden für die sprünge, kollision und animation hat.
9 Subklassen Die Klassen Floor und Projectile erben von der CollidableObject Klasse. Diese beschreibt die geimeinsame getRectWorld(), hier Sollte eventuell noch der Spieler erben, da dieser auch eine getRectWorld() hat, das erforder jedoch einen größen umbau. Die MovingFloor Klasse erbt von der Floor klasse und erweitert diese um die oben genannten punkte. Character, CollidableObject, Level und Background erben von f.Node.
10 Maße & Positionen Der Spieler ist etwa eine Spieleinheit groß und breit. Die Plattformen sind variabel und können beliebig in die breite skaliert werden, die höhe ist fest auf 1 oder 1/5 Spieleinheit beschränkt. Die Hitbox des Projektils ist etwa 2/5 Spieleinheiten groß. Diese Maße sahen und fühlten sich nach einigem Rumprobieren am besten an.
11 Event-System Das Event System wurde nach der Vorlesung bislang nicht erweitert, jedoch wurden einige Dinge verschoben und abgeändert sodas die FPS des Spiels und der Animationen nicht mehr so stark zusammenhängen.

Resource: Character: https://uilleaggodwin.itch.io/roguelike-dungeon-asset-bundle

Hintergrund: https://vnitti.itch.io/taiga-asset-pack

Hintergrund-Musik: https://opengameart.org/content/platformer-game-music-pack

Feuerball-Sound: http://rpg.hamsterrepublic.com/wiki-images/4/43/FlameMagic.ogg

About

PRIMA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •