aufbau eines eigenen GUIs

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: aufbau eines eigenen GUIs

BeitragMo, Jan 21, 2008 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
Ich träume schon seit längerem von meinem eigenen Gui.
Und da es ja im moment so aussieht als ob es Mode wäre, sein eigenes Gui zu machen, wollte ich mich auch mal daran versuchen.

Meine Frage ist nur wie ich das am besten aufbaue, dass andere Leute das GUI später auch einfach verwenden können.


Soll ich das irgendwie mit unzähligen functions machen?
Und am besten denke ich auch die ganzen Fenster und buttons mit Types zu machen.


Wäre nett wenn ihr mir da ein paar tipps geben könntet.
Wie gesagt, das Problem liegt nur an dem aufbau, dass es später möglichst komfortabel wird.


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

EPS

BeitragMo, Jan 21, 2008 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Am besten wird sein du schaust dir mal schon bestehende GUIs an und guckst wie es dort gemacht wurde. ( Bsp: BlitzUI, AlphaGUI, F-UI, IGlass, NGui, escape etc. )

Dann suchst du Dir die Vorteile raus und gestaltest es so wie du denkst.

Auf Funktionen würde ich in jedem Fall setzen, wobei ein Message System auch seinen Reiz hat - beides ist natürlich am komfortablesten. Wichtig in jedem Fall, für den späteren User, eine ausführliche und übersichtliche Hilfe - sonst lässt man das GUI fallen wie eine heiße Kartoffel, denn gerade hier kommt in jedem Fall eine Flut von Funktionen oder/und Parametern auf den späteren Nutzer zu.

Mit Types zu arbeiten ist in jedem Falle sinnvoll - alles andere schränkt ein und verursacht nur Chaos.

MfG EPS
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

DerKeks

BeitragMo, Jan 21, 2008 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich arbeite nebenbei auch an einer GUI für mein aktuelles Projekt und benutzen ebenfalls Types und Functions.
Wenn du Hilfe brauchst oder so kannst mich ja mal in ICQ adden ( 355514817 )

MfG DerKeks

mas93

BeitragMo, Jan 21, 2008 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
[Edit]Frage entfernt, bin selber darauf gekommen[/Edit]
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

EPS

BeitragMo, Jan 21, 2008 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann dir jetzt nicht genau sagen warum explizit der Fehler entsteht (so genau hab ich es mir nicht angesehen), kann dir aber den Tipp geben:

Wenn die Bedingung erfüllt ist, du also sowohl den Mausklick registrierst als auch das Rectsoverlap erfüllt ist, du die Schleife im Anschluß mit EXIT verlassen kannst. Den Rest brauchst du nicht mehr prüfen denn:

Die Maus kann immer nur an einer Stelle - bzw. über einem Fenster - zu einem Zeitpunkt sein !

Diesen Grundsatz empfehle ich Dir im übrigen für sämtliche Prüfungen in einem GUI.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Jan 21, 2008 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt schon so viele GUIs auf die man zurück greifen kann. Und vor allem ist es nicht ''mal so eben gemacht''. Falls aber explizit Interesse besteht, so würde ich mir Gedanken darüber machen, was gerade Spieleprogrammierer gebrauchen könnten. Also keine GUI like Windowsstyle mit ListBox, Scrollbalken usw... sondern eine rein auf Spiele abgeschnittene GUI mit Animationseffekten und anderem ohne den 1000 Sachen die man sonst so bei einer GUI vorfindet. Tabelarisch aufgebaute Spiele wie Fussballmanager gibt es nun nicht so viele.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

mas93

BeitragMo, Jan 21, 2008 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
@Hectic: Ich weiss, dass man sowas nicht mal eben macht. Ich werde es dennnoch versuchen.

Aber das ist ne gute Idee, mit dem Extra für Spiele.
Nur was kann man da alles gebrauchen?

Ich habe mir mal gedacht, eventuell so tabellen, für z.b Highscore oder beim Fussballmanager die Bundesliga tabelle oder so.

Was kann man da noch so alles gebrauchen?

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

EPS

BeitragMo, Jan 21, 2008 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist ne gute Idee mit dem GUI für Spiele. Spontan fällt mir da z.B. ne ordentliche Texteingabe ein (mit BitmapFonts) für HighScore Listen etc.

Desweiteren Slider (für Laustärke u.ä.), RadioButton bzw. eher Checkboxen für Optionen - sowas in der Richtung.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

mas93

BeitragDi, Jan 22, 2008 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
@EPS hey, gute ideen, werd ich mir gleich mal ransetzen.
Nur was meinst du mit ner ordentlichen Texteingabe? Könntest du mir as etwas genauer erklären?


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Eingeproggt

BeitragDi, Jan 22, 2008 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versteh unter ordentlicher Texteingabe eine Texteingabe nach allen Regeln der Kunst Smile
Also mit Rückschritt, Cursor, Entf, Einf, event. sogar mit Maus Cursor setzen... Im Prinzip wie Word nur einzeilig Smile

Und wie EPS schon erwähnte mit Bitmap-Fonts (oder ich würd wahlweise auch mit normalen Fonts machen)

Das alles zusammen wär schon ziemlicher Luxus.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

mas93

BeitragDi, Jan 22, 2008 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ahh, ok verstehe, werd ich mich mal dran versuchen^^

Ich habe bisher eingebaut:

-Fenster können erstellt und betitel und verschoben werden
-Buttons können erstellt, einem fenster zugeordnet werden und sehr einfach abgefragt werden
-Slider können erstellt und den Maximal wert angegeben werden und einfach abgefragt werden

Besonders stolz bin ich auf meine slider, man kann z.b einstellen, dass der höchste wert des Sliders 5 ist und dann der slider in 5 teile eingeteilt wird.


Als nächstes versuche ich jetzt dann die Text sache.


hier mal ein screen:

user posted image


Und das alles mit diesem stückchen code:
Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

Include"guinew.bb"

;Name$,x,y,x_size,y_size,Titel$
CreateWindow("main1",100,200,500,300,"Test1")
CreateWindow("main2",300,100,300,300,"Test2")

;Name$,x,y,Titel$,Fenster$
CreateButton("Button1",10,10,"Button1","main1")
CreateButton("Button2",10,40,"Button1","main1")

CreateButton("Button1",10,10,"Button1","main2")
CreateButton("Button2",10,40,"Button1","main2")

;Name$,x,y,Max_Wert,Fenster
CreateSlider("Slider1",30,100,8,"main1")

Repeat
   
   Text 50,50,"Slider Wert: "+GetSliderVal("Slider1")
   Text 50,80,"Button1 Wert "+GetButtonVal("Button1")
   
   UpdateGui()
   Flip
   Cls
Until KeyHit(1)
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
 

0penguin0

BeitragDi, Jan 22, 2008 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
du solltest neben der button GetButtonVal() noch eine funktione machen, mit der man prüfen kann, ob des cursor über dem button ist. für hilfe-texte oder ähnliches, da es ja für ein spiel werden soll (könntest du vielleicht auch direkt ins spiel einbauen).
i never finish anyth

Jo0oker

BeitragDi, Jan 22, 2008 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal eine Art RTF oder Multyline Textbox zu bauen, ich glaube das wäre für spiele echt praktisch.
Vorallem wenn man sie mit Readonly vershen könnte(für Chatfenster o.ä.).

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

mas93

BeitragDi, Jan 22, 2008 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ist schon lange drinne^^

Die Function gibt den Wert 1 zurrück wenn der mauszeiger über dem button ist, und 2, wenn gedrückt wurde

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Jo0oker

BeitragDi, Jan 22, 2008 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch eigene Styles wären hilfreich.

P.S. Gleichzeitig geposted^^

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

mas93

BeitragMi, Jan 23, 2008 0:12
Antworten mit Zitat
Benutzer-Profile anzeigen
jap, ich werde das ganze so machen, dass man seine eigenen styles machen kann.


Soo, aber ich hab gerade mal Das Zeugs mit der TextBox gemacht
Ist zwar noch nicht ganz fertig, aber man kann schon einiges machen.

Mit folgendem code erstellt man eine Textbox:

Code: [AUSKLAPPEN]
;Name$,x,y,x_size,y_size
CreateTextBox("Box1",0,600,200,200)


Nun kann man beliebig viele Textboxen erstellen und Sie mit Bitmapfonts zu texten^^
Ich hab auch schon den Zeilen umsprung eingebaut, d.h.:Es geht automatisch in die nächste/vorherige Zeile.

Ich musste leider Hectics bitmapfont misshandeln, da ich keine gefunden hab und mir in der Kürze keinen eigenen machen wollte(Hoffe das geht in Ordnung)

Hier mal ein aktueller screen:
user posted image

Morgen werde ich dann noch die ganzen Spässe mit dem markieren und In zwischenablage kopieren einbaun.


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Jo0oker

BeitragMi, Jan 23, 2008 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hy, sieht schin gut aus,

bau die TextBox doch so, dass man mit(z.B.: \r\n (Neue Zeile)) einen Zeilenumbruch machen kann.....

Und das man sie les-und unlesbar machen kann.

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

mas93

BeitragMi, Jan 23, 2008 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm sry, aber ich kapiers mal wieder nich was du meinst xD
Also wo soll man das \r \n eingeben können?

Zeilenumbruck geht ja automatisch am zeilenende, notfalls könnte man auch einfach solang leertaste drücken
Und das mit dem sichtbar und unsichtbar, wo is da der Sinn?

Das sind doch so input boxen.
Und warum sollte man dann nicht sehen, was man eingibt?

Aber danke für deine Ideen und deine Kritik.
Wäre nett wenn du das alles nochmal genauer erklären könntest

mfg
marius
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

fire

BeitragMi, Jan 23, 2008 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ich schätze mal mit unlesbar meint er das man die textbox wie ein passwortfeld nutzen kann, also man gibt 12345 ein, aber es wird nur ***** angezeigt.
und mit /n ne neue zeile anfangen würde ich auch vorschlagen, kannst natürlich auch alles mögliche als 'new line' zeichen nehmen, aber /n ist nun einmal ein weitverbreitetes 'new line' zeichen (z.B. in C++,php ....)
mfg fire
1 Lichtjahr = 9.454.254.955.488.000 m

Jo0oker

BeitragDo, Jan 24, 2008 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ich meinte mit readonly, das man nicht reinschreiben kann, sondern
nur lesen.

und mit /r/n so viel wie:

Code: [AUSKLAPPEN]

DeineInsertFunction(textbox, "Hallo /r/n wie geht es dir...."


Das er dann ein Zeilenumbruch macht.

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group