zeichenmaschine/CHANGELOG.md

87 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

2022-06-19 22:29:30 +02:00
# Changelog
Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/)
und diese Projekt folgt [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
2022-12-11 16:34:45 +01:00
## Added
2022-12-13 08:19:19 +01:00
- Dokumentation erweitert.
- Caching-Mechanismen in Klasse `util.Cache` ausgelagert.
- `util.io.ImageLoader` und `util.io.FontLoader` verwenden `Cache`.
2022-12-21 20:09:28 +01:00
- `mouseWheelMoved` Eventhandler für Mausrad.
2022-12-11 16:34:45 +01:00
## 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.
2022-12-14 20:36:30 +01:00
- Timing-Problem beim Aufruf von `AudioListener.playbackStopped()` in `Sound` behoben.
2022-12-11 16:34:45 +01:00
## Removed
- `layers.Shape2DLayer` ist nur noch im Test-Paket verfügbar.
2022-12-10 11:55:26 +01:00
## Version 0.0.34
### Added
- `Faker`-Klasse zur Erzeugung von Fake-Daten hinzugefügt.
- Dokumentation unter [zeichenmaschine.xyz](https://zeichenmaschine.xyz) mit
[MkDocs](https://www.mkdocs.org) und [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/).
- Neue `image` methoden im `DrawingLayer`.
2022-08-01 10:08:15 +02:00
### 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
2022-07-17 09:28:11 +02:00
### Added
- System für EventListener.
2022-07-17 09:28:11 +02:00
- `AudioListener` und `AnimationListener` als erste Anwendungsfälle.
- Pakete für Animationen und Maschinelles-Lernen.
- Farbverläufe als Füllung.
2022-07-17 09:28:11 +02:00
### Changed
- `update(double)` und `draw()` werden nun in einem eigenen Thread aufgerufen.
2022-07-17 15:57:34 +02:00
- 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.
2022-07-17 09:28:11 +02:00
## Version 0.0.22
### Added
2022-07-07 08:08:36 +02:00
- Interface `Audio` extrahiert, mit Basisfunktionen von `Sound` und `Music`.
- Klasse `Mixer` steuert mehrere Audio-Objekte gleichzeitig.
2022-07-08 07:52:39 +02:00
- Klasse `tasks.RateLimitedTask`, `tasks.FramerateLimitedTask`, `tasks.FrameSynchronizedTask` und `tasks.DelayedTask`.
2022-07-07 08:08:36 +02:00
2022-07-17 09:28:11 +02:00
### Changed
2022-07-07 08:08:36 +02:00
- Neue Package-Struktur:
- `schule.ngb.zm.media` für Audio-Klassen (und ggf. zukünftig Video).
2022-07-20 17:15:29 +02:00
- `schule.ngb.zm.util.tasks` für alles Rund um Parallelität.
2022-07-07 09:21:39 +02:00
- `Zeichenthread` und `TaskRunner` setzen die Namen der Threads für besseres Debugging.
2022-07-07 08:08:36 +02:00
### Removed
- Beispielprojekte in [eigenes Repository](https://github.com/jneug/zeichenmaschine-examples) verschoben.
2022-07-06 20:16:37 +02:00
## Version 0.0.21
2022-06-19 22:29:30 +02:00
### 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).
2022-07-06 20:16:37 +02:00
- 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.
2022-07-06 21:15:47 +02:00
- 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 `InputStream`s.
2022-06-19 22:29:30 +02:00
### Changed
2022-07-06 21:15:47 +02:00
- 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 `InputEvent`s in einer eigenen interne EventQueue synchron zur Framerate.