wühle mich zur Zeit ein wenig durch DDgui, um damit eine Spielsteuerung hinzubekommen. Bei einem Dialog, der lediglich einige Strings anzeigen soll, ist das Ergebnis etwas seltsam. Zwischen dem ersten und zweiten String klafft eine recht große Lücke.
(http://www.offtopica.com/quen/menu.jpg)
hier der Code dazu:
Habe es mit und ohne Spacer probiert, mit und ohne nachfolgende Leerzeichen. Immer das gleiche Ergebnis. Wenn ich den ersten Spacer setze, werden die Strings zwar zusammenhängend dargestellt, noch oben ist jedoch ein ziemlich großer Bereich dann frei.
Kleiner Hinweis vielleicht, was ich hier falsch mache?
// ------------------------------------------------------------- //
// -=# DIA_CONTROL #=-
// ------------------------------------------------------------- //
FUNCTION dia_control:
SETFONT 2
DDgui_pushdialog(100, 100, 500, 300)
DDgui_set("MOVEABLE", TRUE)
DDgui_set("TEXT", "Steuerung")
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor oben --> Beschleunigen ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor unten --> Bremsen ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor links --> nach links drehen ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor rechts --> nach rechts drehen", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Leertaste --> Laser feuern ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "L --> Laser wechseln ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "ESC --> Menue/Pause ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_spacer(200, 50)
DDgui_button("bt_ok", " Zurueck", 100, 25)
WHILE TRUE
DDgui_show(FALSE)
IF DDgui_get("bt_okCLICKED")
BREAK
ENDIF
SHOWSCREEN
HIBERNATE
WEND
DDgui_popdialog()
ENDFUNCTION // DIA_CONTROL
habe glaube ich die Ursache gefunden, auch wenn ich den Zusammenhang nicht so recht verstehe.
Im ersten Dialog werden die Buttons mit Grafiken dargestellt. Wenn ich diese mit einfachem Text darstellen, wird auch der o.g. Dialog korrekt dargestellt. Die Lücke zwischen den Texten entspricht anscheinend genau der Höhe der Button-Grafik ...
hääääääähh???
Bei mir läufts. Bitte schick mir mal den ganzen Code, oder reduziere das Beispiel auf ein kleines, das nicht geht.
// --------------------------------- //
// Project: _burp
// Start: Friday, July 13, 2007
// IDE Version: 4.237
SYSTEMPOINTER TRUE
DDgui_pushdialog(0, 0, 500, 300)
DDgui_set("MOVEABLE", TRUE)
DDgui_set("TEXT", "Hintergrund")
DDgui_button("bt_A", "Test", 0,40)
DDgui_spacer(100000,0)
DDgui_button("bt_B", "Test", 0,40)
DDgui_spacer(100000,0)
DDgui_button("bt_C", "Test", 0,40)
DDgui_spacer(100000,0)
dia_control()
// ------------------------------------------------------------- //
// -=# DIA_CONTROL #=-
// ------------------------------------------------------------- //
FUNCTION dia_control:
DDgui_pushdialog(100, 100, 500, 300)
DDgui_set("MOVEABLE", TRUE)
DDgui_set("TEXT", "Steuerung")
DDgui_widget("", "Test", 0,0)
DDgui_spacer(100000,0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor oben --> Beschleunigen ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor unten --> Bremsen ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor links --> nach links drehen ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Cursor rechts --> nach rechts drehen", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "Leertaste --> Laser feuern ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "L --> Laser wechseln ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_widget("", "ESC --> Menue/Pause ", 0, 0)
//DDgui_spacer(1000, 0)
DDgui_spacer(200, 50)
DDgui_button("bt_ok", " Zurueck", 100, 25)
WHILE TRUE
DDgui_show(FALSE)
IF DDgui_get("bt_okCLICKED")
BREAK
ENDIF
SHOWSCREEN
HIBERNATE
WEND
DDgui_popdialog()
ENDFUNCTION // DIA_CONTROL(http://img221.imageshack.us/img221/1345/burp1kf1.th.png) (http://img221.imageshack.us/my.php?image=burp1kf1.png)
jau, wenn ich die Buttons nur mit Texten anlege, klappt es ja auch, nur wenn ich statt der Texte Grafiken als Buttons anzeige
also mit:
LOADSPRITE "options.bmp", 0
DDgui_button("bt_options", "SPR_B 0", 0, 0)dann kommt dieser Effekt.
nachprüfbar mit folgendem Progrämmchen:
Die Grafiken sind 200x70.
Bei mir (allerdings mit DEMO-Version von GL) tritt dann noch der seltsame Effekt auf, daß, wenn ich auf "Optionen" klicke und der entsprechende Dialog angezeigt wird, anschließend nach der Rückkehr aus diesem Dialog der zweite Button gar nicht mehr angezeigt wird ???
SYSTEMPOINTER TRUE
DDgui_pushdialog(100, 100, 210, 300)
DDgui_set("MOVEABLE", TRUE)
DDgui_set("SCALEABLE", TRUE)
DDgui_set("TEXT", "Main")
LOADSPRITE "options.bmp", 0
LOADSPRITE "score.bmp", 1
LOADSPRITE "ende.bmp", 2
//DDgui_button("bt_options", "Optionen", 0, 0)
DDgui_button("bt_options", "SPR_B 0", 0, 0)
DDgui_spacer(10000, 0)
//DDgui_button("bt_score", "Highscore", 0, 0)
DDgui_button("bt_scroe", "SPR_B 1", 0, 0)
DDgui_spacer(10000, 0)
//DDgui_button("bt_ende", "Beenden", 0, 0)
DDgui_button("bt_ende", "SPR_B 2", 0, 0)
WHILE TRUE
DDgui_show(FALSE)
IF DDgui_get("bt_optionsCLICKED")
dia_options()
ENDIF
IF DDgui_get("bt_scoreCLICKED")
PRINT "Highscore:", 0, 0
ENDIF
IF DDgui_get("bt_endeCLICKED") THEN END
SHOWSCREEN
HIBERNATE
WEND
// ------------------------------------------------------------- //
// -=# DIA_OPTIONS #=-
// ------------------------------------------------------------- //
FUNCTION dia_options:
DDgui_pushdialog(200, 150, 300, 200)
DDgui_set("MOVEABLE", TRUE)
DDgui_set("TEXT", "OPTIONEN")
DDgui_widget("", "links drehende Milchsaeuren", 0, 0)
DDgui_widget("", "rechts drehende Milchsaeuren", 0, 0)
DDgui_widget("", "gar keine Milchsaeuren", 0, 0)
DDgui_widget("", "selber sauer sein", 0, 0)
DDgui_spacer(10000, 30)
DDgui_button("bt_ok", " OK ", 0, 0)
WHILE TRUE
DDgui_show(FALSE)
IF DDgui_get("bt_okCLICKED")
BREAK
ENDIF
SHOWSCREEN
HIBERNATE
WEND
DDgui_popdialog()
ENDFUNCTION // DIA_OPTIONS
DDgui-gbas, Zeile 478, vor die Zeile "FOR i = 1 TO DDgui_get("COUNT")"
Bitte einfügen:
dy_line=0
Ich mach ein Update.
PS. Du hast einen Typo: bt_scroe statt bt_score.
Super, gehts jetzt. War bei mir allerdings Zeile 418. Ich nehme an du meintest Funktion DDgui_show.
Der Effekt, daß der zweite Button verschwindet (nach Klick auf Optionen und dort auf ok) besteht allerdings weiterhin. Das geschieht allerdings unabhängig davon, ob man nur Text oder Grafiken verwendet. Konntest du das auch nachvollziehen oder liegt es evtl. daran, daß ich hier nur mit Ver. 4.192 arbeite?
Geht bei mir. Jetzt nochwas zu 4.192.
Ich weiß, dass die geknackt wurde, und es tut mir leid, dass das gerade kurz vor einer großen Änderung geschehen ist mit den TYPEs.
Installier halt das aktuelle SDK parallel dazu, sonst wirst Du unglücklich. Die aktuelle DEMO ist immer besser. Und hat ja kein 30 Tage limit oder so...
kein Problem, hab zu Hause ja die registrierte Version auf dem neuesten Stand. Ich probiers heute abend mal aus.
Also wenn man mal ein wenig dahinter gestiegen ist, ist DDgui wirklich klasse.