@kandid hmm, der Fehler passiert nur, wenn Du gewinnst, oder?
Dann kann ich dem KeyListener sagen, er soll warten solang der state größer 0 ist...
@noneuclideandreamer Ich hatte vorher mehrfach bemerkt dass ich kurz nacheinander 3 Frames sehe: Success, ein normales Bild, Boing. Habe aber nicht darauf geachtet ob diese Exception in dieser Situation aufgetreten ist.
1/5
@noneuclideandreamer Auf einem Prozessor mit mehreren Kernen existiert zur Laufzeit die Variable state mehrfach als nicht synchronisierte Kopie. Einmal im RAM, so würde man die Welt erwarten. Jeder Kern kann sein eigen Cache haben, dort kann pro Kern nochmal eine Kopie liegen. Also keyDown sieht einen andern Zustand als draw.
2/5
@noneuclideandreamer Verwendet man einen Synchronisationsmechanismus geht das von Java, über das Betriebssystem bis zur CPU durch. Die Prozessoren, Caches und der RAM werden synchronisiert. Das ist eine “teure Aktion”, aber notwendig um ein stabiles System zu bekommen.
Liegen zusätzlich Daten auf der GPU kommen noch weitere „Herausforderungen“ hinzu. Ist bei deinem Spiel nicht der Fall.
3/5