poke53280,12:poke53281,11:poke646,15:sys64764
super
You are about to leave Forum64 to get redirected to the following address:
Please note, that the target website is not operated by us. We are not responsible for it's content nor does our privacy policy apply there.
last post from Endlosschleife at the
poke53280,12:poke53281,11:poke646,15:sys64764
super
Da hat drazil was angerichtet. Der Bug ist eine größere Kopfnuss als ich dachte.
Da werde ich nach dem Aufstehen mit Stift und Papier bewaffnet einen neuen Versuch unternehmen dem Fehler auf die Spur zu kommen.
I'm so sorry. Ist aber wirklich ein schönes Projekt.
I'm so sorry. Ist aber wirklich ein schönes Projekt.
Das mit dem „angerichtet“ war natürlich nicht ernst gemeint.
Und Du hast Recht, ein schönes Projekt welches mir besonders in den letzten Wochen viel Freude bereitet hatte.
Nachtrag:
Da hatte ich bis in die Nacht an dem Bug gesessen und war mit der Erkenntnis ins Bett gegangen, das bisherige Versuche das Problem nicht lösen konnten.
Jetzt sitzte ich wieder an dem Problem und stelle fest das ich den Fehler so nicht mehr reproduzieren kann.
Hat sich über Nacht wohl selbst wegprogrammiert.
Und wieder ein Update meines "Special Interest"-Projekts zur Anzeige von (durch spezielle Kommentare) strukturiertem Quellcode.
Ich habe meine beiden Hauptprobleme gelöst und weitere Features eingebaut:
In der Form ist der Viewer bereits einigermaßen einsetzbar. Es fehlen aber noch ein paar Sachen wie das freie Markieren/Kopieren von Text und Komfortfeatures wie das Markieren passender Klammern oder das Markieren aller gleichen Worte, wenn man eins markiert hat usw.
Es gibt auch noch ein paar kleinere Probleme. Beim Umschalten zwischen den Tabs wird der Quelltext zuerst eine Zeile zu noch und eine Zeile zu kurz angezeigt (sieht man auch oben im Bild). Erst wenn man mit der Maus drüberfährt, springt die Anzeige auf die korrekte Darstellung um.
[EDIT]
Oh, das letztere Problem konnte ich mit einer Zeile korrigieren:
Muß man jetzt nicht unbedingt verstehen, aber jetzt scheint es zu tun wie erwartet.
Und weiter geht's.
Es fehlen jetzt eigentlich nur noch ein paar Kleinigkeiten wie die automatische Markierung von Klammern und das Kopieren von Blöcken oder der ganzen Ansicht in die Zwischenablage.
Ich bin auch noch nicht 100% zufrieden mit dem Mechanismus zum freien Markieren von Text. Eigentlich sollte der auch leere Zeichen hinter dem Zeilenende und Tabs berücksichtigen. Aber es geht auch so.
Aber dann bin ich wieder in eine Wand gerannt. Ich hatte ja früher schon geschrieben, daß mir das DPI-Scaling große Probleme bereitet hat und das es ein merkwürdiges Problem mit dem Hoch- und Runterspringen der Anzeige gab, was ich über Setzen des BACKINGSTORE_SCROLL_MODE beseitigt zu haben dachte.
Leider zeigten sich im praktischen Einsatz merkwürdige Artefakte beim Scrollen. Teils waren weiße Linien zu sehen, teils waren gerade Linien aus meinem korrekt gezeichneten BufferedImage "ausgefranst", also mal um einen Pixel nach oben oder unten versetzt. Ich kann nicht wirklich sagen, woran das genau lag, aber es hing eindeutig mit dem BACKINGSTORE_SCROLL_MODE zusammen, also mußte ich den wieder deaktivieren. Und sofort hatte ich wieder das Problem, daß die Anzeige hoch- und runtergesprungen ist. Es war inzwischen sogar schlimmer geworden. Ich konnte das zwar dahingehend "verbessern", daß das Springen weg war, aber dafür haben dann immer die ersten paar Zeilen Text gefehlt. Nach langen Debugging-Sitzungen und vielen Experimenten bin ich zu der Erkenntnis gelangt, daß die Anzeige um genau 60 Pixel verschoben ist. Aus der Tatsache, daß der Y-Offset größer geworden ist, seitdem ich TabbedPane und Menü eingeführt habe und gleichzeitig der X-Offset immer noch unauffällig war, kam ich auf die Idee, daß die 60 Pixel sich irgendwie aus dem Offset des ViewPorts zum Hauptfenster ergeben. Allerdings ergab sich damit nur ein Wert von 48 Pixeln. Mit meiner DPI-Skalierung von 1.25 wurden dabei auf wundersame Weise aber genau die gesuchten 60 Pixel.
Das hat mich dann nach einigen Fehlschlägen wieder auf die affine Abbildung gebracht, die mir das Leben wegen der DPI-Skalierung schwer gemacht hatte. Und siehe da: in der ursprünglichen Version war nicht nur die Skalierung enthalten, sondern auch die Verschiebung des ViewPorts:
Als ich diese affine Abbildung überschrieben habe, um die Skalierung um den Faktor 1.25 zu vermeiden, habe ich auch die Verschiebung ausgeknockt. Tatsächlich sogar die gesamte Verschiebung des Viewports.
Das erklärt auch ein anderes Phänomen, daß ich nicht wirklich verstanden, aber halt irgendwie hingenommen hatte: ich hatte irgendwie erwartet, daß ich den sichtbaren Ausschnitt in meinem JPanel trotzdem an den richtigen Koordinaten zeichnen muß. Stattdessen mußte ich aber quasi alles ab Offset (0,0) zeichnen und z.B. von der tatsächlichen Y-Position im Panel die Y-Position des sichtbaren Ausschnitts abziehen. Das war aber nur ein Resultat daraus, daß ich die affine Abbildung wegen der DPI-Problematik überschrieben hatte.
Hoffen wir mal, daß ich dieses Problem jetzt endgültig behoben habe.
[EDIT]
Auch wenn es "Special Interest" ist, habe ich den Status jetzt mal in ein Repository eingespielt und eine Website erstellt.
Ich arbeite ja zur Zeit an einem neuen Spiel, und habe dafuer auch vor einiger Zeit einen Leveleditor angefertigt in Python. Dort habe ich gestern bei unserem "42. Spieleentwicklertreffen" (https://spieleentwicklung-bodensee.de/) weitergemacht und ein paar coole Zeichenfunktionen eingebaut, mit denen das Levelbauen jetzt richtig viel Spass macht. Natuerlich kann ich dazu noch nichts zeigen, denn dann wuerde man ja was vom Spiel sehen
Aber ich freue mich schon, sofern das Spiel dann mal eines Tages fertig wird, auch ueber den Entwicklungsprozess zu sprechen und ein paar der internen Tools vorzufuehren
Ich arbeite ja zur Zeit an einem neuen Spiel, und habe dafuer auch vor einiger Zeit einen Leveleditor angefertigt in Python. Dort habe ich gestern bei unserem "42. Spieleentwicklertreffen" (https://spieleentwicklung-bodensee.de/) weitergemacht und ein paar coole Zeichenfunktionen eingebaut, mit denen das Levelbauen jetzt richtig viel Spass macht. Natuerlich kann ich dazu noch nichts zeigen, denn dann wuerde man ja was vom Spiel sehen
Aber ich freue mich schon, sofern das Spiel dann mal eines Tages fertig wird, auch ueber den Entwicklungsprozess zu sprechen und ein paar der internen Tools vorzufuehren
Klasse, da freue ich mich auf das Spiel und auf das Making-of!