Bewegbares Fenster im Spiel

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Alphawolf

Betreff: Bewegbares Fenster im Spiel

BeitragDo, Dez 14, 2006 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe Community!
Nach längerem Googlen und Suchen in diversen Foren bin ich immer noch nicht fündig geworden.

Ich habe folgende Frage:

Wie kann ich es realisieren, dass ich während das Spiel läuft eine bewegbare Menüoberffläche zur verfügung habe. Ich wäre sehr dankbar für Ansätze oder Linkverweise zu Tutorials die dieses Problem lösen könnten oder Anstöße geben.

Ein Bsp wie ich es meine ist:

http://serenity.nuxit.net/images/l2/l213.jpg


Danke im vorraus!

MFG Alphawolf

Blitzcoder

Newsposter

BeitragDo, Dez 14, 2006 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu brauchst du eine GUI. Such mal hier im Forum danach.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

darth

BeitragDo, Dez 14, 2006 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
oder du programmierst die fenster und lässt sie auf variabler positionanzeigen
BSP:
Code: [AUSKLAPPEN]
drawimage fenster f1x,f1y
if rectsoverlap(mousex(),mousey(),1,1,fenster) then
 mxv=mousexspeed() : myv=mouseyspeed()
 if mousedown(1) then f1x=f1x+mxv : f1y=f1y+myv
endif

oder du schreibst eine eigene ingame GUI (die genau diesen teil auch enthält, bloss dafür sorgt dass du nicht jedes fenster speziell basteln musst Wink )
Diese Signatur ist leer.

Bob

BeitragDo, Dez 14, 2006 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Quick 'n Dirty


Code: [AUSKLAPPEN]

Const ScreenX = 1024
Const ScreenY = 768


Graphics ScreenX,ScreenY,16,2
SetBuffer BackBuffer()


Create_Window(50,50,200,150)
Create_Window(80,150,200,150)
Global w1.twin = First twin
Global w2.twin = Last twin

Global Moving = False

While Not KeyHit(1)
   MX = MouseX()
   MY = MouseY()
  DrawWindows()
  UpdateWindows(MX,MY)
  For i = 0 To 9
     Oval Rand(30,700), Rand(30,500),50,50
   Next
 
  Flip
  Cls
Wend
End

Type tWin
   Field Img
   Field X
   Field Y
   Field B
   Field H
   Field OldX
   Field OldY
   Field OldMX
   Field OldMY
End Type


Function Create_Window(x,y,b,h)   
   w.twin = New twin
   w\x = x
   w\y = y
   w\h = h
   w\b = b
   w\img = CreateImage(b,h)
   SetBuffer ImageBuffer(w\img)
   Color Rand(0,255),Rand(0,255),Rand(0,255)
   Rect 0,0,b,h
   Color 255,255,255
   Text 20,20, "Ein Fenster"
   SetBuffer BackBuffer()
End Function


Function DrawWIndows()
   For w.twin = Each twin
      DrawImage w\img, w\x, w\y
   Next
End Function

Function UpdateWindows(MX,MY)

   For w.twin = Each twin
         If MouseOver(w,MX,MY ) Then
            
                  
            If MouseDown(1) And Moving = True Then
               w\x =              W\OldX - w\oldMX + MX
               w\y =              W\Oldy - w\oldMy + My
               Return
            EndIf
         
            If MouseDown(1) And Moving = False Then
               moving = True
                W\OldX = w\x
               W\OldY = w\Y
               W\OldMX = MX
               W\OldMY = MY
              Insert w After Last twin
         EndIf
      
      
      EndIf
         
      If MouseDown(1) = False Then Moving = False
   Next
End Function


Function MouseOver(w.twin,MX,MY)
   If RectsOverlap(MX,MY,1,1,w\x,w\y,w\b,w\h) Then Return True
   Return False
End Function
 

Alphawolf

BeitragDo, Dez 14, 2006 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich danke euch vielmals für eure Ansätze! Very Happy
Das bringt mich um einiges vorran!

Dankeschön Smile

MFG Alphawolf

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group