InGame Gui

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: InGame Gui

BeitragDi, Dez 22, 2015 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute ich möchte euch hier und heute so kurz vor Weihnachten meine noch unfertige GUI Präsentieren.

Es gibt und gab in der Vergangenheit viele GUI's und alle brauchten Bilder um z.b. Fenster dazustellen, aus diesem Grund habe ich versucht eine zu erstellen wo keine externen Bilder ect. benötigt werden.

Ob es nun sinnvoll ist oder nicht und ob es zum Style passt oder nicht, muss jeder für sich selbst entscheiden. Diese lässt sich zumindest weitgehend Farblich anpassen, auch ist die Befehlskette sehr leicht verständlich gemacht. (HOFFE ICH)

Was kann die GUI bis jetzt?

- Window
- Slider / In Fenster , Auf Desktop
- ListBox / In Fenster , Auf Desktop
- Buttons / In Fenster , Auf Desktop
- Labels / In Fenster , Auf Desktop


zu Buttons, dort habe ich bis lang nur 2 Variationen einmal wäre es der Standard Button den jeder kennt. Die zweite Variante wäre es ein Bild als Button zu benutzen.

zu Labels, Auch hier kann man entscheiden einfach nur Text anzeigen zu lassen oder eben einen Mausklick bzw MouseOver abzufragen.

Zu ListBox, Diese ListBox ist nichts besonderes, möchte aber erwähnen das man hier Text oder Bilder anzeigen lassen kann. Jedes ListBox Item kann ein anderes Image + Tile enthalten, auch kann es später modifiziert werden, (wie das meiste aus der GUI)

Eine Dokumentation liegt im Modul bei, (Also F1 für Hilfe)

Das Sample was dabei liegt ist ebenfalls dokumentiert, allerdings so das ich es in 10 Jahren noch verstehen würde. Very Happy … hoffe es hilft weiter.
Im ZIP Archiv befindet sich das Modul + Examples, +Images fürs Examples + Font fürs Examples das Archiv ist ca. 1,5 MB groß.


WICHTIG!
Was Geht nicht? .... Window in Window bzw Gadget in Gadget


Ein Bild...
user posted image


Der Download:
https://www.blitzforum.de/upload/file.php?id=13097

Dieses Example liegt in der Zip bei.
Code: [AUSKLAPPEN]
SuperStrict
Import maxbase.gui

'##########################################
'            Main Scope
'##########################################

Graphics 1200, 900
SetImageFont LoadImageFont("Arimor.ttf", 12)

'Standart Farbeinstellung auf Rot ändern
SetGuiColor (255, 0, 0)

Local TestF1:TWindow = NewWindow("Mathias", 50, 50, 250, 180)
Local TestF2:TWindow = NewWindow("Mathias 1", 70, 70, 250, 180, 1)
Local TestF3:TWindow = NewWindow("Mathias 3", 90, 90, 250, 180, 1)
 
Local ButB1:TButton = NewButton("Beenden", 100, 100, 70, 20)
Local ButB2:TButton = NewButton("Button2", 10, 10, 70, 20, testf1)

'Fenster Farbe neu definieren
TestF2.Color(0, 255, 255)   'Fenster Blau malen lassen
TestF1.Color(255, 255, 0)   'Fenster 1 Gelb malen lassen
ButB2.Color (255, 255, 0)   'Button farblich dem Fenster anpassen

'ImageButton
Local Img_Button:TImage = LoadAnimImage("Img_Button.png", 70, 25, 0, 2)
Local ButB3:TButton = NewImageButton(Img_Button, 0, 100, 130)
Local ButB4:TButton = NewImageButton(Img_Button, 0, 10, 40, testf1)

'Label erstellen (mit mouse over funktion -wenn man will)
Local LabL1:TLabel = NewLabel("MouseOver", 100, 160)
Local LabL2:TLabel = NewLabel("MouseOver", 10, 65, testf1)

'Slider Horizontal / Vertikal + Desktop / Fenster
Local SLiS1:TSlider = NewSlider(200, 50, 15, 100)
Local SLiS2:TSlider = NewSlider(220, 50, 100, 15, 1)
Local SLiS3:TSlider = NewSlider(10, 10, 15, 100, 0, testf2)
Local SLiS4:TSlider = NewSlider(40, 10, 100, 15, 1, testf2)

'Sldier Range festlegen
SliderRange(SLiS1, 1, 10)
SliderRange(SLiS2, 1, 2)
SliderRange(SLiS3, 1, 5)
SliderRange(SLiS4, 1, 8)

SLiS2.color(255, 255, 0)

'ListBox Desktop
Local LBoxL1:TlistBox = newlistbox(100, 300, 130, 220)

For Local Z:Int = 0 To 30
ADDListBoxEnemy (LBoxL1, "Mathias " + Z)
Next

Local InListBox:TListBox = ADDListBoxEnemy (LBoxL1, "Beenden")
Local Resume1:TListBox = ADDListBoxEnemy (LBoxL1, "DeleteME 1")
Local Resume2:TListBox = ADDListBoxEnemy (LBoxL1, "DeleteME 2")

'ListBox Fenster
Local Img_X:TImage = LoadAnimImage("Img_X.png", 16, 16, 0, 2)
Local LBoxL2:TListBox = NewListBox(30, 30, 130, 95, 255, 255, 255, TestF2)

SeedRnd(MilliSecs())
For Local Z:Int = 0 To 8
ADDListBoxEnemy (LBoxL2, "Zwei " + Z, Img_X, Rnd(0, 2))
Next
Local InListBox2:TListBox = ADDListBoxEnemy (LBoxL2, "Beenden")

'Background Image erstellen
Local B:Float, ImageBG:TImage = CreateImage(DesktopWidth() + 1, DesktopHeight() + 1)
For Local X:Int = 0 To GraphicsWidth()
   SetColor 0, 0, B
   DrawOval (X, 0, X, GraphicsHeight())
   B = B + 0.1
Next
GrabImage ImageBG, 0, 0

Local LetzteAnzeige:String
Repeat
   Cls
   DrawImage ImageBG, 0, 0
      
   If UpdateGui() = 0 Then
      'Hier kommen alle Updatewerte vom eigenem Programm rein
      'zu bedenken ist immer im das MausUpdates nur ausgefürt werden sollten
      'im eigenem Programm wenn GuiUpdate = 0 ist.
      
   End If
   
   'Die Gui sollte jedoch ausserhalb der Gui Update geprüft werden.
   'den dazu ist diese ausgelegt.
   If ButtonPress(ButB1) = 1 Then End
   If ButtonPress(ButB2) = 1 Then LetzteAnzeige = "Du hast Button Fenster 1 gedrückt"
   If ButtonPress(ButB3) = 1 Then LetzteAnzeige = "Du hast Button Image Desktop 1 gedrückt"
   If ButtonPress(ButB4) = 1 Then LetzteAnzeige = "Du hast Button Image Fenster 1 gedrückt"
   
   'Wenn man über die image Button fährt mit der maus sollen diese sich
   'anpassen.
   If ButtonOver(ButB3) = 1 Then ButB3.SetTile 1 Else ButB3.SetTile 0
   If ButtonOver(ButB4) = 1 Then ButB4.SetTile 1 Else ButB4.SetTile 0
   
   'Wenn man über die Labels mit der maus geht sollen die sich farblich ändern
   If LabelOver(LabL1) = 1 Then LabL1.Color 255, 255, 0 Else LabL1.Color 255, 255, 255
   If LabelOver(LabL2) = 1 Then LabL2.Color 255, 255, 0 Else LabL2.Color 255, 255, 255
   
   'Check ob auf einem Label gedrückt wurde.
   If LabelPress(LabL1) = 1 Then LetzteAnzeige = "Du hast Label 1 Desktop gedrückt"
   If LabelPress(LabL2) = 1 Then LetzteAnzeige = "Du hast Label 1 Fenster gedrückt"
   
   
   DrawText LetzteAnzeige, 0, 0
   
   'ListBoxCheck Desktop
   Select SelectListBox(LBoxL1)
      Case InListBox
         End
      Case Resume1
         REMListBoxEnemy(LBoxL1, Resume1)
      Case Resume2
         REMListBoxEnemy(LBoxL1, Resume2)
   EndSelect
   
   'ListBoxCheck Fenster2
   Select SelectListBox(LBoxL2)
      Case InListBox2
         End
   EndSelect
   
   
   DrawText "Slider Desktop Horizontal Wert: " + Int(GetSliderRange(SLiS1)), 0, 20
   
   DrawGui
   Flip
Until AppTerminate()
End


Es würde mich freuen wenn es jemand gebrauchen kann. oder eben Rückmeldung zu bekommen.

Ansonsten ein Frohes Weihnachtsfest 2015.
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group