Giter Club home page Giter Club logo

puf-ss18's Introduction

puf-ss18

Pattern & Frameworks (Sommersemester 2018)

puf-ss18's People

Contributors

awdng avatar katzieg avatar mathiassotta avatar

Stargazers

Matthias Hertel avatar

Watchers

 avatar

puf-ss18's Issues

Spielmatrix

  • Es soll eine Spielmatrix entstehen, die das Spielfeld (11 x 11 Felder) abbildet und
  • die wir für die Ereignisbehandlung nutzen können (Kollision, Bombenradius)

Startscreen entwickeln

  • Startscreen als View implementieren
  • Startscreen-Grafiken und Interaktionselemente (StartButton, Highscoreliste) implementieren
  • Eingabe von Name für Player1 und Player1, Speicherung im jeweiligen Player Objekt

Bombe platzieren

  • die Bombe kann auf freien Flächen (!=DestructibleBlock || !=UndesctructibleBlock) platziert werden

  • die Bombe soll entsprechend der Spielmatrix immer genau auf der Mitte des Feldes platziert werden, auf dem sich player befindet

Threads

  • Spieltimer als Thread behandeln
  • nach Ablauf des Timers soll das Spiel in den GameOver-Screen wechseln
  • GameOver-Screen ist die Highscoreliste
  • Highscoreliste als Thread behandeln

Scores (Anzeige der Punkte, Zählung)

Punkte sollen gezählt und angezeigt werden. Zum Beispiel für das Zerstören von Blöcken (tbc) oder Gegnern; man könnte auch das Legen von Bomben mit Punkten belohnen und Tode mit Punktabzug bestrafen :D

  • Logik für Punktzählung integrieren
  • Punkte auf der Spieloberfläche anzeigen/aktualisieren

Enemy entwickeln

  • es soll einen Nicht-Spieler-Charakter (NPC) = enemy geben, der als Element der Spiellogik fungiert.
  • wird der enemy vom player durch eine geschickte Bombenexplosion zerstört, ist das Spiel
    gewonnen
  • der enemy soll nicht-lineare Bewegungen entlang der von ihm begehbaren Felder (!=UndestructableBlock && !=DesctructableBlock) ausführen; vielleicht so, daß nicht sofort ein Bewegungsmuster abgeleitet werden kann
  • der** Bewegungsablauf von enemy sollte trotzdem nicht unnatürlich wirken

DestructableBlocks platzieren

Es sollen DestructableBlocks, initial in Form von Rectangles, auf der Spielfläche platziert werden. Ilse hatte betont: das Layout kann statisch - also immer gleich - sein. Dies könnte also mit dem Scene-Builder umgesetzt werden.

  • player und enemy sollten genügend Freiraum haben und nicht komplett von Blöcken eingesperrt sein

Sound

  • es soll ein Sound bei einer Bombenexplosion hörbar sein
  • es soll Hintergrundmusik hörbar sein
  • es soll ein Sound für Win-/Fail-Event hörbar sein

Score-Zählung mit DB-Speicherung

  • Spielernamen (ID) werden erfasst für die Punktezählung
  • GameEvents beeinflussen den Punktestand (selbstverschuldeter Spielertod führt zu Punktabzug, Gegnerauslöschung erhöht den Punktestand, das Zerstören von Blöcken erhöht den Punktestand minimal)
  • nach Spielbeendigung werden Punkte auf einem Server gespeichert
  • es soll eine Highscore-Liste geben, die im Startscreen angezeigt werden kann

Player Movement Sprites

Es wäre natürlich sehr schön, die Spielerbewegung je nach Richtung animiert zu sehen (Mr. Bomberman läuft). Ich habe schon ein paar Zeilen Code für die View-Direction eingebaut, die man dafür vielleicht nutzen könnte (ist noch ungetestet).

  • Spielerbewegung animieren (LEFT, RIGHT, UP, DOWN)

Bombenkollision entwickeln

Tipp von Ilse: unsichtbaren circle platzieren und für Koll.abfrage verwenden

  • bei der Platzierung liegt bomb (sichtbar) unter player

  • bewegt sich player von der bomb weg (steht in Bezug auf die Spielmatrix vollständig auf einem anderen Feld), so wird das Feld für die Lebensdauer der bomb nicht begehbar (analog UndestructableBlock)

Bombenexplosion entwickeln

Lebenszyklus einer Bombe:

  • Bombe wird gelegt > Timer der Bombe wird gestartet
  • Timer läuft ab > die Bombe explodiert und erzeugt Zerstörung innerhalb ihres Explosionsradius
  • DestructibleBlock(s), player oder enemy innerhalb des Explosionsradius werden zerstört
  • DestructibleBlock(s) verschwinden nach Zerstörung durch Explosion
  • die Bombe explodiert nach Ablauf des Timers
  • die Bombe soll initial einen Explosionsradius von 2 Matrixfeldern haben und zwar in alle möglichen Bewegungsrichtungen (= N, S, E, W)

Schematische Darstellung der Explosionsausbreitung:

         |
         |
     ─ ─ O ─ ─
         |
         |

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.