Commit Graph

299 Commits

Author SHA1 Message Date
1a26afb1ae Fehlende Imports in der Zeichenmaschine gefixt 2022-07-06 20:33:57 +02:00
264552c8b7 Neue Klasse TaskRunner
TaskRunner ist eine statische Klasse, die einen ThreadPool verwaltet und es anderen KLassen ermöglicht, Parallele Prozesse auszuführen. Die ZM ist grundsätzlich erstmal nicht auf Parallelität ausgelegt, da alle im „GameLoop“ (Zeichenmaschine$Zeichenthread) pro Frame synchron läuft. Einige Aufgaben erfordern aber eigene Therad (z.B. das Abspielen von Musikdateien oder zukünftige Animationen).

Der TaskRunner ist eine erste Verison einer Klasse, die zukünftig in der ZM an Bedeutung gewinnen könnte, wenn Parallelität wichtiger wird (z.B. in der Spielemaschine).
2022-07-06 20:33:10 +02:00
bb330c81b8 Reafactoring des ImageLoader
ImageLoader nutz nun den ResourceStreamProvider und die Logging API
2022-07-06 20:29:50 +02:00
aadec6d973 Refactoring des FontLoader
Das Öffnen von Resourcen Streams wurde in eine eigene Hilfsklasse ausgelagert. FontLoader nutzt nun die neue Logging API.
2022-07-06 20:29:21 +02:00
fb2580eb2c Logging API erstellt, um einheitliches Logging zu vereinfachen 2022-07-06 20:18:25 +02:00
49063c9581 Klasse Validator eingefügt 2022-07-06 20:16:37 +02:00
62dc4190a1 Spelling 2022-07-01 13:05:52 +02:00
a31ec502d4 Möglichkeit beliebige Tasks zu timen
Die ZM kann nun beliebige Runnables mit einem Zeitdelay versehen ausführen. Mitteles `scheduleTask(Runnable, int)` wird das angegebene Runnable nach der angegebene Anzahl Millisekunden ausgeführt.
Tasks werden immer am Ende eines Frames ausgeführt.
2022-07-01 13:05:23 +02:00
57c396c2e4 Verwendung der neuen FontLoader KLasse 2022-07-01 13:00:39 +02:00
bd71bb6619 Hilfsklasse um Schrifarten aus Dateien zu laden 2022-07-01 13:00:09 +02:00
fb88f8a17f Spielemaschine auf neue Standardebenen angepasst 2022-06-30 21:29:38 +02:00
c989e69f9f Behandlung von inputs nun in eigener EventQueue
Tastatur- und Mauseingaben werden nun nicht mehr direkt verarbeitet, sondern in eine interne EventQueue geschoben, die nach dem Aufruf von `draw()` abgearbeitet wird. Die `InputEvent`s werden momentan direkt an die üblichen Listener Methoden weitergegeben. Ggf. ist in Zukunft hier auch ein vereinfachtes Eventsystem (siehe Processing) sinnvoll.
Ist die ZM pausiert, werden Events ohne verzögerung direkt ausgelöst.
2022-06-30 21:29:01 +02:00
3e94f42ed3 Zeichenleinwand wird nur noch mit ColorLayer initialisiert 2022-06-30 21:25:05 +02:00
445bc29480 Vector wirft nun eine Exception, wenn durch 0 geteilt wird 2022-06-30 21:22:12 +02:00
62e9f5d0f2 Allgemeiner GraphicsLayer hinzugefügt
Vor allem für Testst hilfreich
2022-06-29 22:35:57 +02:00
a01878286b Klassenmethode zur Berechnung beliebiger Ankerpunkte 2022-06-29 22:34:31 +02:00
010a37fc0e Breite / Höhe von Gruppen darf nicht manuell geändert werden 2022-06-29 22:30:39 +02:00
1a55e11841 Texte haben eine separate fontColor
stroke und fill werden nun auf null gesetzt und als Rahmen bzw Hintergrund gezeichnet, wenn sie gesetzt werden.
2022-06-29 22:30:19 +02:00
67610963f2 Spielemaschine als UNterbau für Spiele mit der ZM 2022-06-29 22:29:42 +02:00
57afc4683f Dokumentaiton verbessert 2022-06-29 22:29:23 +02:00
cb303d2c32 Tastencodes als Konstanten ergänzt 2022-06-29 22:29:12 +02:00
7c0d8458ed Rechtschreibung 2022-06-29 22:28:50 +02:00
9344fc284b Interne Verwendung von Settern
Zur Verbesserung der Überschreibbarkeit.
2022-06-29 22:28:40 +02:00
3bdf0daf79 Änderung der Größe in eigener Methode
Die Größe der Zeichenfläche wird nun in einer eigenen, internen Methode geändert, die von setSize und setFullscreen benutzt wird. Dadurch wird die abhängigkeit der beiden Methoden voneinander aufgehoben.
2022-06-29 22:27:44 +02:00
e411b5025e Dokumentation verbessert 2022-06-29 22:26:18 +02:00
e5c2c0e569 Kleine Änderung 2022-06-21 21:33:39 +02:00
3cbdffaa08 Entfernen von Ebenen von der Leinwand ermöglicht 2022-06-21 21:33:19 +02:00
7293f62a19 Standardverschiebung für Shape#nextTo() 2022-06-21 21:32:56 +02:00
2b20cc0f8e Kleiner Bugfix 2022-06-21 21:32:27 +02:00
83039f0717 Dokumentation 2022-06-21 21:32:20 +02:00
7cf8f81d07 Richtungen werden nun als Vektoren ausgedrückt 2022-06-21 21:31:57 +02:00
6be5104836 Überschreibare Methode zur Reaktion auf verlassen / aktivieren des Vollbildmodus 2022-06-20 18:31:25 +02:00
99fda3c37c Erste Diagrammtypen implementiert 2022-06-19 22:28:09 +02:00
dc6b7ee351 Dokumentation 2022-06-19 22:25:25 +02:00
6bc618a2df Stroke-Objekt wird in Formen zwischengespeichert 2022-06-19 22:25:14 +02:00
1ee03958d2 Konstante ergänzt 2022-06-19 22:24:36 +02:00
de343aab66 Konvertierungsmethoden für Datentypen entfernt 2022-06-19 22:24:29 +02:00
44d52ec71e Weitere Dokumentation 2022-06-19 22:23:47 +02:00
f736946a5f Erstellen von eigenen Pfaden im DrawingLayer 2022-06-13 21:35:12 +02:00
9ef96b71a6 Formatierungen 2022-06-13 21:34:56 +02:00
649fae8bcb Dokumentation Klasse Vector 2022-06-13 21:34:39 +02:00
5e3e7316b0 closePath() finalisiert den erstellten Pfad 2022-06-13 21:34:27 +02:00
c9992cec47 Kleinere Verbesserungen und Formatierungen 2022-06-13 21:34:02 +02:00
709e1cebe7 ImageLoader.createImage() erstellt kompatible Image-Objekte 2022-06-13 21:33:25 +02:00
b306449ff2 Färbung von Bildern implementiert 2022-06-13 21:32:43 +02:00
0f8555c378 Vergleich von Options.Direction Enumerations angepasst 2022-06-13 21:32:21 +02:00
d2d6a77107 Dokumentation Color KLasse und Umbenennung einer Methode 2022-06-13 21:31:05 +02:00
367674379f Dokumentation verbessert und Methoden auf final gesetzt. 2022-06-13 21:25:14 +02:00
85990023b8 Paus 2022-06-13 21:23:25 +02:00
ab53d0401a Mauszeiger ändern
Der Mauszeiger kann nun nicht nur versteckt werden, sondern auch auf ein beliebiges Bild oder einen der vordefinierten System-Cursor gesetzt werden.
2022-06-13 21:21:34 +02:00