Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

22.08.2013, 21:05

Vielleicht wäre ein Blick auf die neue SDL Version 2.0 anzuraten. ;)


Ich habe geplant mein (vorhin verlinktes) Framework "in Zukunft" auf SDL 2.0 umzubauen. Da ich sehr viel gekapselt habe, sollte das recht gut von der Hand gehen, wenn ich irgendwann mal Lust darauf habe ^^

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

22

22.08.2013, 21:22

Vielleicht wäre ein Blick auf die neue SDL Version 2.0 anzuraten. ;)


Ich habe geplant mein (vorhin verlinktes) Framework "in Zukunft" auf SDL 2.0 umzubauen. Da ich sehr viel gekapselt habe, sollte das recht gut von der Hand gehen, wenn ich irgendwann mal Lust darauf habe ^^

Ich kann es nur empfehlen. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

23

23.08.2013, 15:18

Ich kann es nur empfehlen. ;)


Ich glaube das hattest du mir auch in einem anderen Thread wärmstens empfohlen (da ging es glaube um OpenGL + SDL und Performance). Irgendwann migriere ich auf SDL 2.0 - aber erstmal ging es mir darum etwas funktionierendes zu bauen, mit dem ich weiterarbeiten kann.

Aktuell schreibe ich mein Rendering-Framework (isometrische Darstellung einer orthogonalen Map) auf Basis meines "sdlApp"-Wrappers um, und bereite es von Grund auf mehr auf MVC-Einsatz vor, damit ich meinem eigentlichen Projekt (isometrisches Rollenspiel) näher kommen kann.

Alles nicht perfekt, aber ich arbeite daran :D

LG Glocke

24

03.09.2013, 14:57

Das klappt alles sehr gut. Ich hab aber in der Kürze noch keinen richtigen Durchblick.
Dennoch glaube ich, nen kleinen Bug gefunden zu haben in scrollbox.cpp..

C-/C++-Quelltext

1
Text* label = this->buffer[i];//<-- out of range (zeile 132)


..immer, wenn ich ganz unten am Rand vom Scrollbalken draufklicke dann Krachts. :D

25

03.09.2013, 15:29

:thumbup: Nice work

Eine einfache "um eins zu weit"-Verschiebung scheint es nicht zu sein. Ich würde darauf tippen, dass man einfach statt

C-/C++-Quelltext

1
i < this->scroll + this->visible

die Wiederholungsbedingung

C-/C++-Quelltext

1
i < std::min(this->scroll + this->visible, this->buffer.size())

verwenden könnte. Vermutlich geht scroll + visible einfach über diese Grenze hinaus. Was denkst du?

Btw darfst du gern auf GitHub einen MergeRequest mit einer Lösung anbieten, wenn du Zeit und Lust hast :)

LG Glocke

26

03.09.2013, 19:08

Da sich der maximal erlaubte Wert für den Slider ja im vorhinein berechnen lässt und weil sich auch die Sliderposition daran orientiert, würde ich das auch so machen. Ich hab das aber im Moment alles nicht mehr so abrufbar. Ich hab mal meinen ScollControl drangehängt (in der Hoffnung, dass man draus schlau wird). Da ist die Variable _maxV glaube ich relevant.
»dr.hallo« hat folgende Dateien angehängt:
  • ScrollHV.h (5,44 kB - 69 mal heruntergeladen - zuletzt: 03.04.2024, 02:10)
  • ScrollHV.cpp (19,19 kB - 69 mal heruntergeladen - zuletzt: 02.04.2024, 18:46)

27

04.09.2013, 11:51

Ich kenne mich mit GitHub nicht aus, deswegen poste ich meinen Vorschlag mal hier, wenns recht ist. Eigentlich war nicht viel falsch. Ich hab an drei Stellen was verändert:

scrollbox.hpp:

C-/C++-Quelltext

1
float slideRange(){ return this->items.size() - this->visible + 0.999999f; }


scrollboc.cpp:

C-/C++-Quelltext

1
2
3
this->scroll = state * slideRange(); //~Zeile 68

float state = 1.0f * this->scroll / (slideRange()-1);//~Zeile 150;


keine Ahnung, vielleicht kann man das auch schöner lösen! Mal sehen.

28

11.09.2013, 15:32

Ich habe gerade mal versucht den Fehler zu reproduzieren. Allerdings klappt das nicht. Mit einer leeren Scrollbox fliegt mir das Ding jedoch an der genannten Zeile um die Ohren :D

29

11.09.2013, 20:29

"Ich habe gerade mal versucht den Fehler zu reproduzieren. Allerdings klappt das nicht."
Das finde ich sehr unheimlich. :D

30

07.02.2014, 16:46

Das ganze Framework hat sich inzwischen weiterentwickelt. Unter anderem habe ich die Widgets ausgelagert und eine Migration auf SDL 2.0 durchgeführt:

LG Glocke

Werbeanzeige