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

Anonymous

unregistriert

1

29.06.2003, 22:28

Bugs in tbGUIInput und tbGUIImage

hi, erstma ein riesen lob an david bzw. sein buch, einfach genial(auch die engine)...

nur hätte ich da eine kleine frage:
ich bin zur Zeit dabei, ein Textspiel mit der Engine zu erstellen und habe ein Inputfeld erstellt(der Spieler soll den Namen eingeben). Wenn man jedoch den gesamten Text aus dem Feld rauslöscht, stürzt das Programm ab. Ist das ein Bug oder hab ich mal wieder vergessen irgendwas zu initialisieren? :angel:
thx schonma

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

29.06.2003, 22:57

Danke für den Hinweis!
Es war in der Tat ein Bug. Du kannst ihn wie folgt beheben: füge in tbFont.cpp in der Methode "DrawText" direkt unter der Zeile nach "Parameter prüfen" folgende Zeile ein:

if(strlen(pcText) == 0) return TB_OK;

Anonymous

unregistriert

3

30.06.2003, 22:27

also ich habe grade die änderungen durchgeführt und auch neu compiliert und die dlls kopiert, aber trotzdem stürzt das programm noch ab!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

30.06.2003, 22:33

Sorry, ich hatte was vergessen!
Du musst auch noch die Methoden ComputeTextWidth und ComputeRealTextWidth verändern! Folgende Zeile an dieselbe Stelle einfügen:

if(strlen(pcText) == 0) return 0.0f;

PS: Wieso postest Du als Gast?
Du bist doch jetzt registriert!

Anonymous

unregistriert

5

30.06.2003, 22:35

öhm bin ich das? ich hab jedenfalls noch keine mail bekommen... shit am ende hab ihc mich vertippt lol :angel:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

30.06.2003, 22:43

Ich hab dich jetzt manuell freigeschaltet. Versuch dich mal einzuloggen.

CuTeX0r

Treue Seele

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

7

30.06.2003, 22:45

Ah OK, danke...
also öhm ich hab etz auch in den beiden andren Methoden die Zeile da eingefügt und es funktioniert immer noch nicht... woran könnte das denn noch liegen...

p.s. ich war bisher übrigens zu faul die dateien nach dem fehler zu durchsuchen, die sind mir zu komplex ;)...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

30.06.2003, 22:48

Also ich habe aber auch nur diese drei Funktionen geändert, dann ging es. Hast Du die Engine auch nachher nochmal neu kompiliert?
Sonst kompilier mal Engine und Spiel im Debugmodus und lass es NUR mit <F5> laufen, und zwar dann im Fenstermodus. Wenn der Fehler kommt, springt der Debugger automatisch in den Quellcode, wo der Fehler auftrat. Dann sagst Du mir, welche Datei es ist und in welcher Zeile.

CuTeX0r

Treue Seele

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

9

01.07.2003, 12:27

So habe das etz mal gemacht, und nach dem Absturz kam eine MessageBox vom Debugger:
"Unbehandelte Ausnahme in WB.exe (TRIBASE.DLL): 0xC0000005: Acces Violation."

Der Pfeil stand im Debugger dann bei folgender Zeile:
10012DC8 mov al,byte ptr [ebx+edx]

hab nur leider ka was das bedeutet weil ich mich mit sowas noch überhaupt nicht auskenne. :(

habe davor auch neu compiliert.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

01.07.2003, 12:34

Ich habe doch gesagt Du sollst den Debug-Modus sowohl bei der Engine als auch beim Programm verwenden... "TriBase.dll" ist Release, Debug ist "TriBaseD.dll"...

Werbeanzeige