Giter Site home page Giter Site logo

haw-se2-projecthorse's People

Contributors

fabianhaw avatar francisao avatar mariaai avatar ngochuyen92 avatar philippgrulich avatar scrittl avatar vikwin avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

haw-se2-projecthorse's Issues

Ambient Background / Wetter System

Kleiner Gedanke, vielleicht will sich jemand drauf stürzen oder Kommentare dazu hier lassen.

Idee: Ein Ambient/Wettersystem das sozusagen als Overlay läuft und ein bischen Atmosphäre schafft. einsetzbar für alle Minispiele

Z.B.:
Regenwetter, im Hintergrund hört man ruhige Klavirmusik und Regen auf dem Boden tropfen. An der "Scheibe" also auf dem ganzen Screen laufen ein paar Regentropfen herunter. Dazu färbt sich die ganze Szene etwas dunkel blau.

Sonnig: Alles wird etwas Goldgeb gefärbt, dazu mal ein Blendeffekt auf der Scheibe und Gelbe Sonnenstrahlen. Musik eher etwas leicht fröhliches.

Abendsonne: Alles in ein dunkleres rot/blau färben
Morgen auf der Wiese: Ein bisschen Nebel dazu Tau auf der Scheibe.
Klare Nacht mit Mondschein...
usw.

Grundsätzlich sollte das ganze natürlich sehr dezent wirken damit der Spielspaß nicht negativ beeinflusst wird.

Vermutlich ein guter Kandidat für ein bisschen Shader-Spielerei. Man könnte das System so aufbauen das es n-Verschiedene ambients gibt und man sich eines per Random holt und ablaufen lässt.

Weitergesponnen könnte man das auch abhängig von einem Wetterdienst und Uhrzeit machen. Also einen Shadertyp der je nach Uhrzeit/Sonnenstand die Szene einfärbt.
Ein anderer Typ der nach Sonne/Wolken/Regen etwas drüber legt.

Neue Package Struktur

Ich würde gerne die Package Struktur anpassen.

- assetmanager // vielleicht auch in die level.util
- navigationmanager // ausgelagert aus der gamemanger.  vielleicht besser als eigenes Modul?
- settingmanager // ausgelagert aus der gamemanger.  vielleicht besser als eigenes Modul?
- scoremanager // savegamemanager ? 
- level  // Alles was mit der Anzeige zutun hat. Was wäre ein besserer name? 
          - game
          - menu
          - util // Alle Hilfsfunktionen die von allen Level Klassen genutzt werden könnten.
                 - swipehandler
                 - player
                 - uimanager
                 - inputmanager
           Level.java

Also das nur mal so als Idee.
Ich glaube das würde die Übersicht und Zugehörigkeit aber nochmal verbessern.
Was denkt ihr?

"neues spiel?"-button?

wie sieht es mit einem einheitlichen button aus, welcher aufpopt, wenn eine runde in einem minispiel gespielt wurde, damit die person eine neue runde beginnen kann? so wie es beim hütchenspiel zur zeit ist.

AssetManager - Zugriff auf Dateien

Die Idee die .atlas Dateien beim Start der App einmal komplett in den Speicher zu laden hat die Ladezeit scheinbar ersteinmal reduziert. Beim rekursiven Abstieg werden die Pfade zu den Dateien vom AssetManager in einer HashMap gespeichert, sodass auch ein disposen des .atlas und anschließendes laden intern vom AssetManager schnell gemanaged werden kann.
Allerdings ist ein schneller Zugriff auf Sounds / Music noch nicht implementiert. Auch hier ist die Idee, die Pfade intern im AssetManager zu speichern. Mir fallen da 2 Möglichkeiten ein, die unterschiedliche Probleme bzw. gewisse Einschränkungen für alle mitbringen, die auf Sound / Music Dateien zugreifen wollen:

1.) Wie in der (veralteten) load Methode werden über loadSounds(levelID) alle Sounds in den Arbeitsspeicher geladen.
Vorteil: Einfacher Zugriff.
Nachteil: Unter Umständen zu hoher Arbeitsspeicherverbauch.

2.) Über loadSound(levelID, filename) bzw. loadMusic(levelID, filename) wird auf eine Datei zugegriffen.
Vorteil: Einfacher Zugriff.
Nachteil: Für alle Sound- bzw. Musikdateien im Ordner levelID (inkl. aller Unterordner) muss gelten,
dass jeder Dateiname nur einmal vergeben ist. Denn wenn im Ordner levelID/unterordner1/unterordner2/
und in levelID/unterordner3/ zwei Dateien liegen die denselben Namen tragen, obwohl es unterschiedliche Sounds sind, kann über loadSound(levelID, filename) kein eindeutiger Pfad gefunden werden wenn nur die Parameter levelID und filename bekannt sind.
Lösung:
1.) Man gibt den Dateipfad vollqualifiziert an: loadSound(levelID/unterordner1/unterordner2/, filename) - Damit ist der Vorteil die Pfade vorher zu ermitteln zunichte gemacht. Denn diese Pfadangabe unterscheidet sich kaum vom Pfad, den der AssetManager intern ermittelt hat: sounds/levelID/unterordner1/unterordner2/
Oder
2.) Es muss für alle gelten, dass in einem Ordner levelID alle Dateinamen eindeutig sind, und zwar über alle Unterordner hinweg.

Also in der Zusammenfassung ist das Problem, dass in der 1. Variante der Arbeitsspeicher strapaziert wird, in der 2. Variante gibt es 2 Möglichkeiten: Man akzeptiert die Einschränkung in der Bennenung von Dateinamen oder man übergibt fast vollständige Pfade als Parameter - und muss bei Veränderungen in der eigenen Verzeichnisstruktur auch diese Parameter anpassen. Jetzt gehts nur darum, womit ihr euch eher anfreunden könnt - es sei denn, jemand hat einen besseren Vorschlag!?

Projektplan - Praktikum

Aufgabe:

  • Erstellen Sie einen Projektplan. Was muss noch gemacht werden, wer macht es bis wann?
  • Beschreiben Sie ihr Vorgehensmodell.
  • Beschreiben Sie die vergebenen Rollen
    Abzugeben ist der Plan und eine Beschreibung des Vorgehensmodells (Bezeichnung
    eines Standardmodells oder sonst detaillierte Beschreibung)

Edit:
Anscheinend gab es ein Missverständnis zu dieser Aufgabe. Ich sehe mich nicht als allein Verantwortlich, also bitte alle entsprechend vorantreiben, damit wir das ganze bis Montag Mittag fertig haben.

OverlayModul

Hey Leute,
ich hab mal ein paar erste Ideen bezüglich der Overlay Sachen erstellt.
Das ist alles aber noch sehr roh und ich hoff das ihr euch auch dran beteiligt.

Meine Idee wahr:
Ein Overlay ist eine Stage und wird entweder als Popup oder als NavigationBar implementiert.

Die NavigationBar kann mehrere Button beinhalten die entweder unten oder oben angezeigt werden.
Als ersten Test habe ich mal eine GameNavigationBar implementiert in der ein Pausebutton angezeigt wird.

Popups sind z.B. Benachrichtigungs oder Einstellungs Dialoge.

Das ganze würde ich wenn möglich mit den LIBGDX Layout Managers umsetzen wollen. Wobei ich da noch nicht ganz durchgestiegen bin.

Zum Entwickeln hab ich jetzt einen eigenen Branch(UI/OverlayModul) erstellt weil das ganze ja erstmal sehr losgelöst von der restlichen Entwicklung laufen kann und so nicht dauern die Commits des restlichen Projekts mit reinkommen.

Also gerne Commiten und oft Pushen damit immer alle den aktuellen Stand haben.

Quellenangabe Images/Sounds/etc.

wie sieht es genau mit der angabe der quellen aus? wie machen wir das genau? ist es notwendig cc-0 quellen auch anzugeben, oder nur bei cc-by?
drängt auch nicht all zu sehr, da ich links erstmal bei mir auf dem pc abspeicher...

AssetManager funktioniert nicht unter Android

Fehlerbeschreibung:
Das Spiel stürzt beim starten im Android Emulator / auf dem Smartphone ab, weil der AssetManager keine Dateien findet.

Möglicher Grund:
Der AssetManager ist momentan so implementiert, dass er über nicht-LibGdx Aufrufe über die Verzeichnisse und Dateien iteriert.
Das Problem hierbei ist, dass unter Android der Assets Ordner nicht als Dateisystemordner verwaltet wird und somit die Inhalte nicht für einfache File Aufrufe zur Verfügung stehen.
Siehe https://github.com/libgdx/libgdx/wiki/File-handling#platform-filesystems
und http://developer.android.com/reference/android/content/res/AssetManager.html

Dieses Problem hat höchste Priorität und sollte umgehend behoben werden.

Darstellung City HH

Der Hamburg Bildschirm skaliert nicht korrekt, weil zum Einen absolute Koordinaten und Schriftgrößen verwendet werden (hier bitte alles zur Laufzeit in Relation zur Bildschirmgröße berechnen) und zum Anderen auf Gdx.graphics.getWidth() und Gdx.graphics.getHeight() genutzt wird (liefert nicht den Viewport!! Hier bitte ausschließlich this.width und this.height aus der abstrakten Level Klasse verwenden).

Reitendes Pferd als Worldmap

Die Worldmap soll dahin gehend abgeändert werden, dass das Pferd ähnlich Super Mario auf einer Deutschlandkarte einen Pfad von Stadt zu Stadt abläuft. Beim stehen auf einer Stadt soll die jeweilige Stadtflagge als "Betreten Button" eingeblendet werden. Die Deutschlandkartengrafik soll dafür neu erstellt werden für ein spieleartigeres Design.

Gedanken dazu:
-die Pfade enthalten der Einfachheit halber keine Gabelungen
-die Pfade sollen erst zur Laufzeit gezeichnet werden, nicht fest im Hintergrund vorgezeichnet sein
(-optional sollen Städte freigeschaltet werden können)

Lizenzfindung

Mir fällt vor allem MIT und GPL ein....
Vor und Nachteile?

Ladezeiten zwischen den Screens

Der Wechsel zwischen den Screens dauert sehr lange, wahrscheinlich weil jedes Mal alle Assets von der "Platte" gelesen werden. Ein Fix wäre schön ist aber nicht zwingend erforderlich.

Schwarze Balken

Balken links und rechts vom Bild wenn Seitenverhältnis des Displays nicht 16:9.

Navigate to another Level

Wie ist es gedacht zwischen den Leveln zu wechseln?
Über die GameManagerFactory bekomme ich nur das Interface "GameManager", indem die "navigateToLevel(...)" aus GameManagerImpl allerdings fehlt. Damit kann ich also (derzeit) nicht navigieren (bzw. nur zur Worldmap über navigateToWorldmap()).

Mögliche Lösung: "navigateToLevel(String ID) auch dem GameManager interface hinzufügen.

Vielleicht hab ich aber auch irgendeine andere Art zum navigieren übersehen.

Minigame: Applerun

Ein Spiel, bei dem mit dem Pferd von Links nach Rechts läuft und dabei herunter fallende Äpfel einsammelt.

Lootsystem

Allgemein

Das Lootsystem läuft über die Klasse "Chest", die Methoden zum hinzufügen von Loot-Objekten, anzeigen von Erfolgen und auch zum Anzeigen von gesammelten Loot-Objekten am Ende eines Levels. Eine Instanz dieser Klasse befindet sich in der protected Variable "chest" in der Level-Klasse, sodass alle Minispiele darauf zugreifen können.

Für Loot-Objekte gibt es bereits eine abstrakte Klasse "Loot". Jeder kann seine eigenen Loot-Klasse erzeugen, indem er von dieser Klasse erbt und folgende Methoden implementiert:

  • public Image getImage() -> gibt eine kleines Bild zurück, was das Loot repräsentiert, wie ein Stern, eine Medaille, o.Ä.
  • public int doHashCode() -> berechnet den Hash-Code des Objektes anhand seiner Instanzvariablen, wir von hashCode aus Loot aufgerufen
  • public boolean doEquals(Object obj) -> analog zu doHashCode, wir von equals aus Loot aufgerufen

Zudem kann (und sollte man) im Konstruktor den super-Konstruktor super(name, description); aufrufen. Hierbei steht name natürlich für einen mehr oder weniger sprechenden Namen und description für eine nicht zu lange Beschreibung dessen, was man gerade gedroppt hat. z.B. gibt es eine PlayerColor mit dem Namen "Rot" und der Beschreibung "Die Farbe 'Rot' für dein Pferd".

Stand

Soweit ist meine Planung mit dem Lootsystem und ich habe auch schon einiges davon implementiert, ein Commit folgt heute noch. Des Weiteren hatte ich geplant noch ein paar "Typen" zu erstellen, die dann als konkretere Vorlage als die Loot-Klasse genutzt werden können. Wie z.B. eine Medaille in verschiedenen Ausprägungen (Bronze, Silber, Gold), von der man dann ein konkretes Objekt (oder auch eine Subklasse) erzeugen kann, indem man einen Namen, eine Beschreibung und ein Bild zum "Aufdrucken" auf die Medaille angeben kann.

Ausblick

Mir ist letztens noch eingefallen, dass die Loots ja nur selten (eventuell auch nie) generisch erzeugt werden müssen, sondern eigentlich stehen die ja entweder für das ganze Spiel (z.B. die Farben) oder für jedes Spiel schon von Anfang an fest. Ist es dann eventuell sinnvoller, das ganze in statischen Variablen oder sogar in einer Datei zu speichern, die dann beim Start ausgelesen wird? Das sind erst einmal so ein paar Hirngespinste von mir, wo ich auch über Input von euch glücklich bin.

Abstraktes Level

Abstraktes Level und das Interface HorseScreen überdenken und überarbeiten. In der Abstrakten Klassen soll die Auflösung aller Screens festgelegt werden.

Vorschlag: 1280x720 als Auflösung.

Auflösung und Skallierung

Hey,
also ich hab die App gerade im Emulator gestartet und leider haben wir links und rechts sehr unschöne letterboxes...
Ich hab auch schon raus gefunden das es wohl an der Art und Weiße liegt wie wir den Viewport verwenden liegt.
Mit einem StretchViewport funktioniert es zwar besser doch ändert sich dadurch ja eventuell auch das Seitenverhältnis.
Oder wäre das nicht so schlimm?

Das sollten wir auf jeden Fall noch bis zur Abgabe des Prototypen beheben.

AssetManager - load-Methode wird gelöscht

Ich bin gerade dabei, den AssetManager etwas aufzuräumen, und leider muss die load-Methode raus. Es wäre also gut, wenn ihr bis Samstag 10:00 Uhr eure AssetManager.load(...) Aufrufe
durch AssetManager.getTextureRegion(...), AssetManager.getFont(...) bzw. AssetManager.loadSounds(...) ersetzt habt. Ich werde mich bemühen, dass so eine Änderung in Zukunft nicht nochmal notwendig ist!

fonts erweitern!?

die font-datei steht ja soweit und sieht gut aus :) aber wie sieht es mit ziffern aus? könnten die auch noch gebastelt werden? bräuchte welche für die score-anzeige im minispiel.

Minigame: Memory Spiel

Im Hauptspiel screen gibt's 12 Karten, d.h 6 Paare, die Bilder von Sehenswürdigkeiten von Hamburg enthalten. Wenn man 2 identische Karten aufdeckt, wird man zu dem anderen Screen navigiert, in dem gibts das Bild von diesen Karten aber in größere Form und eine kurze Beschreibung dieser Sehenwürdigkeit. Wenn man auf Back klickt, geht man zurück zum Hauptspiel und spielt weiter

Durch dieses Spiel können die Mädchen, besonders die nicht aus Hamburg kommen, Hamburg besser kennen lernen.

Die Karten von Sehenswurdigkeiten, die man verdient, kann man später noch mal im AssestRaum auschaut, wo man Trophäe von allen Spielen lagert. Aber das ist jetzt noch nicht nötig, später als Erweiterung vielleicht

"Y Up coordinate system" or "Y Down coordinate system"

Können wir bitte kurzfristig noch festlegen auf welches Koordinaten system wir uns festlegen wollen? Das sollte es erleichtern mit dem Code der anderen zu arbeiten wenn wir uns auf einen Standard festlegen.

"Y Up coordinate system":
Y = 0, ist unten links (Y geht also nach oben).
Das ist der libgdx Standard, und passt auch am besten zu meiner Denkweise. Wie ein klassisches Koordinatensystem,

Alternativ könnte man auch das:
"Y Down coordinate system" verwenden.
Hierbei ist Y=0 ganz oben
Das ist die Variante aus dem Tutorial. Mich verwirrt das immer etwas...

Es gibt nur zwei bereiche, indenen libgdx mit dem Y-Down System arbeitet:
Das TouchEvent - (0,0) ist da also oben links. Das könnte man leicht handlen indem wir vor der Weitergabe des Events durch den Gamemanager das ganze einmal kurz umrechnen und "korrigiert" weitergeben.

Und in Pixmaps. Aber das müssen wir halt hinnehmen. Egal wie wir uns entscheiden...

Was bevorzugt ihr? Meinungen? Wenn es euch egal ist, bitte auch kurz bescheid sagen, damit wir eine Entscheidung treffen können.

Weitere Städte

Es sollten zusätzlich zu Hamburg mindestens 2 weitere Städte hinzugefügt werden, jede Stadt soll zwei Spiele enthalten.

Allgemeine Buttons: Zurück / Pause / Optionen

Hab noch einige offene Punkte zum Design, um die wir uns kümmern sollten: Grundsätzlich geht es um Buttons wie "Zurück/Pause/Optionen" in den verschiedenen Bereichen.

Ein Zurück-Button in der Stadt: Stadt -> Weltkarte
Ein Zurück-Button in Minispielen: Pause mit Option das Spiel abzubrechen (zur Stadt zurück)

Öffnen eines Optionsmenüs. Dort dann z.B. Lautstärke Regelungen
Öffnen eines Menüs um das Pferd zu betrachten / bearbeiten. (Eventuell einfach in jeder Stadt ein Button "In den Stall gehen"?)

Die Kernpunkte:
Wo sollen diese Buttons angezeigt werden?
Sollen eigene oder Android-Buttons genutzt werden?

Mögliche Ideen:
Alternative 1: Fenstergröße für das eigentliche Spiel/Menü verringern und immer oben/unten eine Leiste haben.
Contra:

  • Entweder Balken an der Seite weil wir die Auflösung ändern / oder wir reduzieren die Standard Auflösung des Spiels etwas um Platz für die Buttons zu schaffen. Jedes Minigame bekommt z.B. statt 1280 nur noch 1200 zur Verfügung.
  • Manchmal besser oben, manchmal unten. (Siehe Overlay-Alternative)

Alternative 2: Overlay: Feste Position, für alle Bereiche gleich. (Button wird einfach oben drauf gemalt.)

Contra:

  • Die Spiele verlieren auch etwas Platz.
  • Overlay fügt sich nicht so gut in das Gesamtbild ein. Wirkt wie aufgesetzt
  • Spiele haben eventuell an unterschiedlichen Positionen den Fokus der Interaktion. Wenn der Zurückbutton unten ist, wo viel geklickt wird, nervt es schnell wenn ständig versehentlich auf "zurück" geklickt wird. In einem Menü sollte der Button aber vielleicht intutitiv eher unten sein. (Generell aber wohl am besten ihn immer an der gleichen Stelle zu haben.)

Alternative 3: Menübuttons werden normal ausgeblendet und durch irgendeinen Trigger erst sichtbar.
Contra:

  • Erfordert Erklärung und Verständnis der Mechanik. Was Grundsätzlich sehr nachteilig ist und für unsere Zielgruppe vermutlich noch mehr.
  • Eventuell ärgerlich wenn Trigger versehentlich ausgelöst wird.

Entscheidung: Android-Zurück Button?

  • Android Button sorgt beim ein/ausblenden wieder für Probleme mit der Auflösung
  • Eigene Grafik passt sich wohl besser ins Gesamtbild des Spiels ein.

Technische Lösung:
Wie wir das ganze nachher umsetzen würde ich hier gern erstmal raushalten. Als grundsätzlichen Gedanken aber erstmal festhalten das man soetwas in "Level" einbauen könnte. Damit haben wir es zentralisiert/abstraiert gelöst. Und gleichzeitig können wir auch direkt das pausieren realisieren indem bei offenen Menü (Option, Spiel abbrechen Ja/Nein) das Minigame einfach kurzfristig keine Aufrufe von render(delta) bekommt.

Benutzung Asset Manager

Irgendwie hab ich das Gefühl, dass beim AssetManager irgendwas noch nicht sauber läuft. Aber vielleicht bin ich auch einfach zu blöd den ordentlich zu bedienen.
Ich habe ein Bild in einem Unterordner von assets/pictures hinzugefügt und anschließend den Packer gestartet. Jetzt kommt jedoch, wenn ich das neue Bild beim TextureAtlas per "findRegion" herauspicken will, anscheinend null zurück. Zumindest stürzt das Programm ganz böse mit einer NullPointerException ab. Mache ich irgendwas falsch?

Edit: Wäre es nicht besser, wenn man eine eigene Exception wirft, sollte ein Bild gesucht werden, welches es nicht im Atlas gibt? Dann muss man ja zwangsweise einen try-catch-Block um die find-Methoden auf dem Atlas machen und kann ordentlich reagieren, sollte ein Bild wirklich mal nicht das sein.

Level Klasse für Stadt Hamburg erstellen

Mindestens eine Klasse für die erste Stadt, Hamburg, erstellen. Im besten Fall direkt eine generische Klasse erstellen, die sich die Stadtinfos aus der Config-Datei.

Memoryleaks fixen

Beim hin und her navigieren zwischen den Spielen / Menüs wächst der Speicherbedarf rasant an. Ursache(n) finden und beheben.

Logger

Methoden fürs Logging im GameManager hinzufügen.

Spieler (Pferd) Objekt für alle Spiele

Dieses Issue ist aus dem Pferd Customization Issue #16 entstanden. Wir benötigen ein abstraktes Pferd, das zum einen entscheidet wann welche Animation zu nutzen ist. Außerdem muss es eine BoundingBox verwalten und Bewegung realisieren. Ihr braucht also nicht selbst für jedes Minispiel ein "Pferd" programmieren.

Pferd / Player - AnimationAction herausgeben

Wir haben ja schon drüber gesprochen, hier eine Zusammenfassung:

Ich arbeite in AppleRun mit einer Erweiterung der PlayerImpl.
Bei Bewegungsereignissen. (Geh nach links/rechts). Lösche ich alle Actions und baue mir dann neue auf. Dadurch verschwinden allerdings auch die AnimationsActions.

Ich würde nun gern wieder die Animation starten, am liebsten wäre mir eine Methode die mir einfach eine passende Action herausgibt. Damit könnte man sie auch in eine Sequenz einbauen.

Vorschlag:
public Action PlayerImpl.getMoveAnimationAction(DIRECTION, duration); //Ohne bewegung, nur die reine Animation.
public Action PlayerImpl.getIdleAnimationAction(DIRECTION, duration=infity); //Duration optional, nur endlos würde mir auch reichen.

Damit würde ich bei mir dann die

  • Actions clearen.
  • Eine Parallel Action aus meiner Bewegung und der Animation erstellen
  • Eine Sequenz aus Bewegung&Animation und Idle

AssetManager - Freigeben von Objekten (Memory Management)

Kurzfassung:
Wie wollen wir sicherstellen das Texturen wieder freigegeben (disposed) werden?
-Jedes Level muss erhaltene TextureAtlas-Objekte selber freigeben
-Jedes Level informiert den AssetManager, das ein Atlas wieder entfernt werden kann
-Zentral wird beim Levelwechsel ein Dispose auf den alten Atlas aufgerufen.

Langfassung:
Wenn ich den Code richtig verstehe wird jedes mal wenn AssetManager.load(...) aufgerufen wird, eine neue Instanz von TextureAtlas erzeugt (innerhalb von AssetManager.loadTextureAtlas()).

TextureAtlas gehört zu den Objekten die wir managen müssen. (Also auch mit dispose() wieder freigeben). So wie es derzeit ist, wird zwischen den Levels nichts automatisch freigegeben solange das Spiel existiert. Wenn ich also 10 mal ein Spiel starte, habe ich 10mal die Texture im Speicher. Zusätzlich zu allen anderen gestarteten Objekten.

Eine Möglichkeit wäre natürlich das jedes Level selber verantwortlich bleibt und z.B. myatlas.dispose() am Ende aufruft.

Allerdings werden die Atlanten derzeit auch im AssetManager in einer Hashmap gespeichert, das könnte also Problematisch werden wenn von aussen jemand den Atlas wieder freigibt.

Es gibt eine undokumentierte Methode "disposeAtlas(String, String)". Diese wird derzeit aber noch nirgends verwendet und ich wüsste auch nicht genau wie. Da wir einen String als Atlas übergeben müssten.

//Sidenote: Mit der levelID könnte der Atlas aus der Hashmap geholt werden, dann müsste man nur disposeAtlas(levelID) aufrufen.

Nachteil wäre natürlich das jedes Level trotzdem dran denken muss den AssetManager über ein dispose zu informieren.

Vielleicht wäre es auch möglich das ganze zentralisiert zu machen. Wenn LevelWechsel -> Dann ruft der NavigationManager die passende disposeAtlas(String levelID); auf.

Lizenzprüfung beim Laden von Assets

Prüfung, ob ein korrekter Eintrag in der .txt Datei des Ordners befindet, sobald ein Bild, Sound, etc. geladen wird. Vermutlich im AssetManager zu realisieren.

GameConfig.json - add MainMenu entry

Ich hätte gern in der GameConfig.json einen extra Eintrag für das MainMenu. (Also den Startscreen)

Diese sollte geladen werden wenn das Spiel startet (derzeit wird die Worldmap geladen). Und dazu noch eine Methode im Interface GameManager (und der jeweiligen Impl) - "navigateToMainMenu()".

Flackerndes Pferd

Da es bisher noch niemand angemerkt hat kann es gut sein, dass das Problem nur bei mir auftritt.
Aber wenn ich ein MiniGame starte, ist es in 2 bis 3 von 5 Fällen so, dass das Pferd anfängt zu flackern. Das hat wahrscheinlich was mit dem Rendern bzw. meiner cpu oder gpu zu tun. Ist das Problem noch jemandem aufgefallen oder gehts nur mir so?

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.