sound nur einmal abspielen / menu

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

diGGa

GruppenKaspar

Betreff: sound nur einmal abspielen / menu

BeitragSa, März 19, 2005 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
hab die suche genutzt bin aber nich fündig geworden.
das ist wahrscheinlich extrem leicht zu lösen aber ich hab ka xD
mein bisheriger code:

BlitzBasic: [AUSKLAPPEN]

If ImageRectOverlap(cursor, MouseX(), MouseY(), 253, 170, 80, 15) Then
If soundlaeuft = 0 Then
channel = PlaySound(schuss)
soundlaeuft = 1
EndIf

DrawImage einschuss, 225, 155

EndIf

If Not ImageRectOverlap(cursor, MouseX(), MouseY(), 253, 170, 80, 15) Then
soundlaeuft = 0
EndIf


ich wollte nun wissen ob man das ganze eleganter lösen kann und ob es allgemein bessere möglichkeiten gibt ein menü zu gestalten Smile
danke im vorraus für eure antworten.

was mich noch interessieren würde wäre, wie ich bei der demo den mauszeiger wegbekomme, damit ich meinen selbstgestalteten sehen kann xD
 

sven123

BeitragSa, März 19, 2005 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreib einfach alles in eine Funktion Menü!
BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,0,1
;Imtialsierung&Glbale Varaibelen
;Hauptschleife
Repeat

;Den Funktionsprototyp in die Hauptschleife einbauen
Menue(;Parameter:diese werden dann an die Funktion übergeben z.b
;ein geladenes Bild oder Sound den du nicht unten in der Funktion
;geladen hast )

;Dein Game

Until KeyDown(1) End

;Die Funktion Menü definieren
Function Menue(Parametervariabelen)
;Dein Menü Code
End Function

Das sieht dann etwas schöner aus,weil nicht mehr alles in der Mainloop ist und du kannst die Funktion wenn du sie möglichst allgemein hälts(wenn du alles über die Parameter machst), kannst du die Funktion auch für andere Games benutzen so musst du nicht immer ein neues Menü coden.
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Alfadur

BeitragSa, März 19, 2005 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
du mußt das anders machen ...

BlitzBasic: [AUSKLAPPEN]

If ChannelPlaying(channel)=0 Then channel=PlaySound(xyz)


das mit soundläuft etc kannste weglassen... channel solltest du dann aber global machen, wenn du es in eine funktion steckst...
A Cray is the only computer that runs an endless loop in less than four hours.

diGGa

GruppenKaspar

BeitragSa, März 19, 2005 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
habs jetz so
das soundlaeuft ist dafür da, das der sound nur einmal und nicht immer wieder abgespielt wird.. ka anders geht bei mir nich^^

BlitzBasic: [AUSKLAPPEN]
Graphics 640, 480, 16, 2
SetBuffer BackBuffer()
HidePointer

; Ressourcen Laden
;Bilder
Global cursor = LoadImage(\"cursor.png\")
Global title = LoadImage(\"title.png\")
Global einschuss = LoadImage(\"einschuss.png\")

;Sounds
Global schuss = LoadSound(\"schuss.wav\")


; Bilder maskieren
MaskImage cursor, 255, 0, 255
MaskImage einschuss, 255, 0, 255

; Variablen
Global StartButtonX = 253
Global StartButtonY = 170
Global StartButtonW = 100
Global StartButtonH = 15

Global CreditsButtonX = 80
Global CreditsButtonY = 418
Global CreditsButtonW = 136
Global CreditsButtonH = 15
Global soundlaeuft = 0

; hauptschleife START
While Not KeyHit(1)
Cls

Menue()


Flip
Wend
;hauptschleife ENDE

End







Function Menue()

DrawImage title, 0, 0
DrawImage cursor, MouseX(), MouseY() ;Cursor an Maus setzen

;StartButton
If ImageRectOverlap(cursor, MouseX(), MouseY(), StartButtonX, StartButtonY, StartButtonW, StartButtonH) Then
If soundlaeuft = 0 Then
channel = PlaySound(schuss)
soundlaeuft = 1
EndIf

DrawImage einschuss, 225, 155

EndIf

;CreditsButton
If ImageRectOverlap(cursor, MouseX(), MouseY(), CreditsButtonX, CreditsButtonY, CreditsButtonW, CreditsButtonH) Then
If soundlaeuft = 0 Then
channel = PlaySound(schuss)
soundlaeuft = 1
EndIf

DrawImage einschuss, 45, 403

EndIf


If Not ImageRectOverlap(cursor, MouseX(), MouseY(), StartButtonX, StartButtonY, StartButtonW, StartButtonH) Then If Not ImageRectOverlap(cursor, MouseX(), MouseY(), CreditsButtonX, CreditsButtonY, CreditsButtonW, CreditsButtonH) Then
soundlaeuft = 0
EndIf

End Function

Ebola33

BeitragSo, März 20, 2005 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
den Windows Mauszeiger bekommst du im Fenstermodus mit hidepointer weg. Im Vollbildmodus ist der Windowszeiger nicht zu sehen.

Mfg Ebola
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group