zeichenmaschine/CHANGELOG.md

4.0 KiB

Changelog

Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

Das Format basiert auf Keep a Changelog und diese Projekt folgt Semantic Versioning.

[Unreleased]

Added

  • Dokumentation erweitert.
  • Caching-Mechanismen in Klasse util.Cache ausgelagert.
    • util.io.ImageLoader und util.io.FontLoader verwenden Cache.
  • mouseWheelMoved Eventhandler für Mausrad.

Changed

  • Die Methoden in Validator erwarten nun als zweiten Parameter den Namen des Parameters, der geprüft wird.

Fixed

  • Constants.choice(int...) und Constants.choice(double...) wiederhergestellt.
  • Timing-Problem beim Aufruf von AudioListener.playbackStopped() in Sound behoben.

Removed

  • layers.Shape2DLayer ist nur noch im Test-Paket verfügbar.

Version 0.0.34

Added

Changed

  • FilledShape und StrokedShape durch Fillable und Strokeable Interfaces ersetzt.
    • Shape erweitert nun BasisDrawable als abstrakte Grundlage.
  • io Klassen nutzen nun mehr der java.nio Funktionen.
  • Package-Struktur angepasst.

Version 0.0.23

Added

  • System für EventListener.
    • AudioListener und AnimationListener als erste Anwendungsfälle.
  • Pakete für Animationen und Maschinelles-Lernen.
  • Farbverläufe als Füllung.

Changed

  • update(double) und draw() werden nun in einem eigenen Thread aufgerufen.
  • Die Standardwerte in Constants wurden mit dem Prefix DEFAULT_ benannt (vorher STD_).
  • Die Standardwerte sind nun nicht mehr final und können vom Nutzer manuell gesetzt werden.

Version 0.0.22

Added

  • Interface Audio extrahiert, mit Basisfunktionen von Sound und Music.
  • Klasse Mixer steuert mehrere Audio-Objekte gleichzeitig.
  • Klasse tasks.RateLimitedTask, tasks.FramerateLimitedTask, tasks.FrameSynchronizedTask und tasks.DelayedTask.

Changed

  • Neue Package-Struktur:
    • schule.ngb.zm.media für Audio-Klassen (und ggf. zukünftig Video).
    • schule.ngb.zm.util.tasks für alles Rund um Parallelität.
  • Zeichenthread und TaskRunner setzen die Namen der Threads für besseres Debugging.

Removed

Version 0.0.21

Added

  • Parameter stop_after_draw im Konstruktor der Zeichenmaschine erlaubt es beim Erstellen festzulegen, ob nach dem ersten Frame die Zeichenmaschine gestoppt wird.
  • Picture.tint(Color) färbt ein Bild ein.
  • Picture.flip(Options.Direction) spiegelt ein Bild entlang einer Achse (LEFT/RIGHT für horizontal, UP/DOWN für vertikal).
  • Abstrakte Klasse Zeichenobjekt als einheitliche Oberklasse für Objekte in Projekten. Die Klasse erbt von Constants und implementiert Drawabale und Updatable mit leeren Methoden.
  • Klasse java.util.Validator übernimmt intern Parametervalidierung.
  • Klasse Log implementiert eine einfache Logging-API über java.util.logging.
  • Klasse TaskRunner führt parallele Prozesse aus.
  • Zeichenmaschine#scheduleTask(Runnable, int) führt eine Aufgabe nach einer Wartezeit im Gameloop aus.
  • Neue Klasse util.ResourceStreamProvider sucht Resourcen und öffnet InputStreams.

Changed

  • Objektvariablen der Zeichenmaschine, die von Unterklassen genutzt werden sollen, sind nun statisch in Constants. Dadurch können auch andere Klasse, die von Constants erben ohne Umwege auf diese Werte zugreifen (z.B. width/height der Zeichenleinwand).
  • ImageLoader und FontLoader wurden überarbeitet.
    • Nutzung von Log
    • Nutzung von ResourceStreamProvider
  • Verarbeitung von Swing InputEvents in einer eigenen interne EventQueue synchron zur Framerate.