Menübutton

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

BlitzDitz

Betreff: Menübutton

BeitragDi, Apr 05, 2005 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also in diesem Programm geht bis jetzt alles, ausser das ich es nicht schaffe mit einem button, der sich verändert in ein anderes menü zu kommen.
Also will ich nun nur wissen wie man in ein anderes menü kommt und wie
sich der button bei einem mauskclick verändert!!!

BlitzBasic: [AUSKLAPPEN]

Graphics 1024,768,32

;###############################################################################



;###############################################################################

Global gamebackground = LoadImage(\"background.png\")

Global mouse = LoadImage(\"cursor.png\")

Global backgroundmusic= PlayMusic(\"background.mid\") ;globalien laden

Global button1 = LoadAnimImage(\"button.png\",300,100,0,1)

Global button2 = LoadAnimImage(\"button.png\",300,100,0,1)

Global button3 = LoadAnimImage(\"button.png\",300,100,0,1)

Global arial = LoadFont(\"arial\",200,0,0,0)

;###############################################################################

Const ESC = 1,Hoch= 200,Runter=208,Links = 203,Rechts=205 , Space = 57 ;steuerungs Constanten



;###############################################################################

While Not KeyHit(Space)

SetBuffer FrontBuffer()


SetFont arial
Color 205,100,50
Text 312,234,\"Press\"
Delay 1000
SetFont arial
Color 0,0,0
Text 312,234,\"Press\"
Delay 2000 ;Intro Menüschleife
SetFont arial
Color 205,100,50
Text 312,234,\"Space\"
Delay 1000
SetFont arial
Color 0,0,0
Text 312,234,\"Space\"
Delay 2000

Flip

Wend


;###############################################################################

Repeat

If KeyHit(Esc) Then End

SetBuffer BackBuffer()

mx = MouseX()
my = MouseY() ;Maus-Variablen


;hauptmenü-schleife



Cls


HidePointer

DrawImage gamebackground,0,0 ;hintergrund

DrawImage button1,200,100 ;button

DrawImage mouse,mx ,my ;Maus



Flip


Until KeyHit(1)
;###############################################################################

diGGa

GruppenKaspar

BeitragDi, Apr 05, 2005 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
blöde frage... aber warum is dein code so verpeilt? frontbuffer etc drinne? das macht man nich xD
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram

Mo

BeitragDi, Apr 05, 2005 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Also zuerst solltest du die Kollision von Maus und Button prüfen.
Danach kannst du abfragen, was passieren soll, wenn du ne Maustaste drückst.

Als Satz:
WENN die MOUSE mit dem BUTTON KOLLIDIERT
und WENN die LINKE MOUSETASTE GEDRÜCKT wurde
DANN SPRING, GEH, FLIEG zum anderen MENÜ Wink

Gruß Moritz
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!

Eine Floßfahrt die ist lustig... *sing* Wink

Alfadur

BeitragDi, Apr 05, 2005 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
yeah.... und sowas ist totaler nonsense...

SetFont arial
Color 205,100,50
Text 312,234,"Press"
Delay 1000
SetFont arial
Color 0,0,0
Text 312,234,"Press"
Delay 2000 ;
SetFont arial
Color 205,100,50
Text 312,234,"Space"
Delay 1000
SetFont arial
Color 0,0,0
Text 312,234,"Space"
Delay 2000


außerdem braucht hidepointer und setbuffer nicht unbedingt immer in die hauptschleife, vorallem nicht in deinem fall. kannst du also ruhig vor die schleife machen... außerdem brauchste in deiner schleife das if keyhit(esc) garnicht, weil du ja sowieso until keyhit(1) repeatest... und rück lieber mal ordentlich ein, das mit den leerzeilen ist irgendwie... nicht schick.
A Cray is the only computer that runs an endless loop in less than four hours.

Lord_Vader

BeitragDi, Apr 05, 2005 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Nonsense! Ausserdem kann das in die Beginnerfragen man ! :O

Firstdeathmaker

BeitragDi, Apr 05, 2005 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal ein paar Funktionen schreiben die per Type´s Buttons erstellen können und abfragen können welcher gedrückt wurde (ich habe gestern so etwas ins Codearchiv gestellt, kann man sich ja mal anschauen...)

Dann vielleicht so aufbauen:

BlitzBasic: [AUSKLAPPEN]
x=menütiefe
Dim menuestatus(x,1); x,0=Ausgewähltes Menü, x,1=Menuebeenden

menuestatus(0,0)=1
menuestatus(0,1)=0
Repeat

;prüfen ob ein Schalter gedrückt wurde, wenn einer gedrückt wurde eine
;eindeutige ID zurückgeben (z.B. \"startgame\")

Select diese ID
Case \"startgame\"
;alle Schalter killen
;neue schalter fürs startgamemenue erstellen
menuestatus(0,0)=2;Für Startmenue
Case \"end\"
menuestatus(0,1)=1
End Select

Until menuestatus(0,1)=1
End



den menuestatus verändere ich immer nur dafür, damit eventuell andere Ereignisse darauf reagieren könnne (vielleicht soll ja ein anderer Hintergrundeffekt angezeigt werden o.ä.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Mo

BeitragDi, Apr 05, 2005 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Global button1 = LoadAnimImage(\"button.png\",300,100,0,1)

Global button2 = LoadAnimImage(\"button.png\",300,100,0,1)

Global button3 = LoadAnimImage(\"button.png\",300,100,0,1)


... einmal laden reicht

wenn du jetzt den Button 3mal zeichnen möchtest machst du 3mal Drawimage

Warum LoadAnimImage wenn du nur ein Frame in dem Bild hast... ("button.png",300,100,0<--erster Frame,1<-- wieviele Frames)

Gruß Moritz
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!

Eine Floßfahrt die ist lustig... *sing* Wink

Jan_

Ehemaliger Admin

BeitragMi, Apr 06, 2005 8:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hoffe mal,m ich konnte die hohen anforderungen erfüllen, die es wertwaren, sich der Forenbestimmungen, bezüglich des Beginnerforums hinwegzusetzten.
DAs nächste mal, ins beginner, sonst werden wir dich mit vielen schönen Post, weit ab vom Thema, mit deinen Fragen, in den Müll befördern.
BlitzBasic: [AUSKLAPPEN]

Graphics 1024,768,32

;###############################################################################
Global gamebackground = LoadImage(\"background.png\")
Global mouse = LoadImage(\"cursor.png\")
Global backgroundmusic= PlayMusic(\"background.mid\") ;globalien laden
Global button1 = LoadAnimImage(\"button.png\",300,100,0,1)
Global arial = LoadFont(\"arial\",200,0,0,0)
;###############################################################################
Const ESC = 1,Hoch= 200,Runter=208,Links = 203,Rechts=205 , Space = 57 ;steuerungs Constanten

;initzialation:
HidePointer
SetFont arial
SetBuffer BackBuffer()
;###############################################################################

;Intro Menüschleife
While Not KeyHit(Space)
Color Rand(0,255),Rand(0,255),Rand(0,255)
Text GraphicsWidth()/2.0,GraphicsHeight()/2.0,\"Press Space\",1,1
Flip 0
Wend
;###############################################################################
;hauptmenü-schleife
Repeat
If KeyHit(Esc) Then End

Button1Animation=Not(Not(ImageRectOverlap(button1,200,100,mx,my,1,1))) ; Button animieren

If MouseHit(1) Then
If Button1Animation Then
;Wechsele zu menü hinter Button1
ElseIf Button2Animation Then
;Wechsele zu menü hinter Button2
ElseIf Button3Animation Then
;Wechsele zu menü hinter Button3
ElseIf Button4Animation Then
;Wechsele zu menü hinter Button4
EndIf
EndIf

mx = MouseX()
my = MouseY() ;Maus-Variablen

Cls
DrawImage gamebackground,0,0 ;hintergrund
DrawImage button1,200,100,Button1Animation ;button
DrawImage mouse,mx ,my ;Maus

Flip
Until KeyHit(1)
;###############################################################################

between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group