Wieso funktioniert das StopChannel nicht? *wirr*

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ReLeNtLeSS

Betreff: Wieso funktioniert das StopChannel nicht? *wirr*

BeitragMi, Dez 05, 2007 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:
Ich ärgere mich damit schon lange rum und frage mich, warum der StopChannel bei mir _NIE_ funktioniert. Ich habe viele Beispiele durchschaut, aber iwie hats keiner anders als ich...

Code: [AUSKLAPPEN]

If bgsound=1 Then
bgsound=0
chn=PlaySound(bg_sound)
EndIf

[...]

If ImagesOverlap(button1,220,200,maus,MouseX(),MouseY()) And MouseDown(1)=True Then
Cls
  If clicksound_zu=1 Then
  clicksound_zu=0
  PlaySound(clicksound)
  EndIf
menu=0
game=1
StopChannel chn
EndIf

If ImagesOverlap(button2,220,400,maus,MouseX(),MouseY()) And MouseDown(1)=True Then
Cls
  If clicksound_zu=1 Then
  clicksound_zu=0
  PlaySound(clicksound)
  EndIf
menu=0
menusetting=1
StopChannel chn
EndIf

If ImagesOverlap(button3,220,600,maus,MouseX(),MouseY()) And MouseDown(1)=True Then
Cls
  If clicksound_zu=1 Then
  clicksound_zu=0
  PlaySound(clicksound)
  EndIf
menu=0
credits=1
StopChannel chn
EndIf


Weis da einer Rat? MfG

ozzi789

BeitragMi, Dez 05, 2007 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte schreit mich nich gleich an wenis ned gerafft hab. Embarassed

Willst nich einfach Channelvolume auf = 0 setzen ? Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

BladeRunner

Moderator

BeitragMi, Dez 05, 2007 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, ozzi, das ist nicht gut, denn dann benutzt du weiter die Ressourcen.
@ topic:
Was für ein Soundfile lädst du denn ein ?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ReLeNtLeSS

BeitragDo, Dez 06, 2007 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Der zu ladende Sound ist folgender...

Code: [AUSKLAPPEN]

Global bg_sound=LoadSound("data/sound/bg.wav")


MfG

BladeRunner

Moderator

BeitragDo, Dez 06, 2007 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, da muss ich gestehen dass mir erst mal die Ideen ausgehen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ReLeNtLeSS

BeitragDo, Dez 06, 2007 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Au Verdammt.

Also es ist so, das der Sound einfach weiter spielt. Dabei soll er ja stoppen. Kann es an der Soundkarte liegen?

MfG

/edit: Ich glaubs ja nich! Bei dem kleinen beispiel hier funzt alles perfekt:

Code: [AUSKLAPPEN]

Global bg_sound=LoadSound("data/sound/bg.wav")

chn=PlaySound(bg_sound)

Delay 5000

StopChannel chn

WaitKey()
  • Zuletzt bearbeitet von ReLeNtLeSS am Do, Dez 06, 2007 16:35, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragDo, Dez 06, 2007 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktionieren denn die Beispiele mit StopChannel überhaupt bei dir?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

ReLeNtLeSS

BeitragDo, Dez 06, 2007 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe Edit Wink

Xeres

Moderator

BeitragDo, Dez 06, 2007 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann liegt's zumindest nicht an der Soundkarte...
Dumme Frage: Der Sound ist global geladen, aber ist der Channel das auch? Wenn du den in Verschieden Funktionen ansprichst...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

ReLeNtLeSS

BeitragDo, Dez 06, 2007 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, ich könnts mal versuchen, den stopchannel global zu machen.... meld mich zurück
/edit: nene, geht nicht, "Globals can only appear in a main programm"

/edit2:
Code: [AUSKLAPPEN]

Function menu()

If bgsound=1 Then
bgsound=0
chn=PlaySound(bg_sound)
EndIf

DrawImage bg,0,0
DrawImage button1,220,200
DrawImage button2,220,400
DrawImage button3,220,600

If ImagesOverlap(button1,220,200,maus,MouseX(),MouseY()) Then DrawImage button1_a,220,200
If ImagesOverlap(button2,220,400,maus,MouseX(),MouseY()) Then DrawImage button2_a,220,400
If ImagesOverlap(button3,220,600,maus,MouseX(),MouseY()) Then DrawImage button3_a,220,600


If ImagesOverlap(button1,220,200,maus,MouseX(),MouseY()) And MouseDown(1)=True Then
Cls
  If clicksound_zu=1 Then
  clicksound_zu=0
  PlaySound(clicksound)
  EndIf
menu=0
game=1
StopChannel chn
EndIf

If ImagesOverlap(button2,220,400,maus,MouseX(),MouseY()) And MouseDown(1)=True Then
Cls
  If clicksound_zu=1 Then
  clicksound_zu=0
  PlaySound(clicksound)
  EndIf
menu=0
menusetting=1
StopChannel chn
EndIf

If ImagesOverlap(button3,220,600,maus,MouseX(),MouseY()) And MouseDown(1)=True Then
Cls
  If clicksound_zu=1 Then
  clicksound_zu=0
  PlaySound(clicksound)
  EndIf
menu=0
credits=1
StopChannel chn
EndIf

DrawImage maus,MouseX(),MouseY()
End Function
 

Ziggy

BeitragDo, Dez 06, 2007 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
"Globals can only appear in a main programm"

Code: [AUSKLAPPEN]

graphics 800,600
setbuffer backbuffer()

Global chn
Global bgsound
Global .....etc....

repeat
......
"Es gibt 10 Arten von Menschen: Diejenigen die Binär verstehen, und jene die es nicht verstehen."

"Irren ist menschlich, gut dass ich ein Gott bin... xD"

letzte Informatik-Note : 1 ... 96% richtig, Thema: C++ switch/case

BladeRunner

Moderator

BeitragDo, Dez 06, 2007 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Aua, so kann das nicht funktionieren.
Du lädst deinen Sound bei jedem Aufruf der Funktion neu, also so ca. 60 mal die sekunde. Klar stoppt der dann nicht.
Lade deine Sounds global, ausserhalb der Funktion.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ReLeNtLeSS

BeitragFr, Dez 07, 2007 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich lade doch ausserhalb und global....:

Code: [AUSKLAPPEN]

Graphics 1280,1024,32

;LoadImage;Loadsound;;INKL. LADEBALKEN

Global lade1=LoadImage("data/lade/1 (1).png")
MaskImage lade1,255,0,255
DrawImage lade1,400,400
Global lade2=LoadImage("data/lade/1 (2).png")
Global lade3=LoadImage("data/lade/1 (3).png")
Global crash_s_1=LoadSound("data/sound/crash1.wav")
Global crash_end1=LoadSound("data/sound/crash_end1")
Global crash_end2=LoadSound("data/sound/crash_end2")
MaskImage lade2,255,0,255
DrawImage lade2,400,400
Global lade4=LoadImage("data/lade/1 (4).png")
Global lade5=LoadImage("data/lade/1 (5).png")
Global bg_sound=LoadSound("data/sound/bg.wav")
Global clicksound=LoadSound("data/sound/click.wav")
MaskImage lade3,255,0,255
DrawImage lade3,400,400
Global lade6=LoadImage("data/lade/1 (6).png")
Global lade7=LoadImage("data/lade/1 (7).png")
Global lade8=LoadImage("data/lade/1 (8).png")
Global choosesound=LoadSound("data/sound/choose.wav")
MaskImage lade4,255,0,255
DrawImage lade4,400,400
Global lade9=LoadImage("data/lade/1 (9).png")
Global lade10=LoadImage("data/lade/1 (10).png")
Global lade11=LoadImage("data/lade/1.png")
Global auto=LoadImage("data/auto.bmp")
MaskImage lade5,255,0,255
DrawImage lade5,400,400
Global autoruck=LoadImage("data/autoruck1.bmp")
Global crash=LoadImage("data/crash.bmp")
Global baum=LoadImage("data/baum.bmp")
MaskImage lade6,255,0,255
DrawImage lade6,400,400
Global crash2=LoadImage("data/crash2.bmp")
Global bg=LoadImage("data/bg.bmp")
Global maus=LoadImage("data/maus.bmp")
Global cameltot_s=LoadSound("data/sound/cameltot.wav")
MaskImage lade7,255,0,255
DrawImage lade7,400,400
Global camel=LoadImage("data/camel.bmp")
Global cameltot=LoadImage("data/cameltot.bmp")
MaskImage lade8,255,0,255
DrawImage lade8,400,400
Global button1=LoadImage("data/buttons/buttonstart1.png")
Global button1_a=LoadImage("data/buttons/buttonstart2.png")
MaskImage lade9,255,0,255
DrawImage lade9,400,400
Global button2=LoadImage("data/buttons/buttonsettings1.png")
Global button2_a=LoadImage("data/buttons/buttonsettings2.png")
MaskImage lade10,255,0,255
DrawImage lade10,400,400
Global button3=LoadImage("data/buttons/buttonquit1.png")
Global button3_a=LoadImage("data/buttons/buttonquit2.png")
Global font=LoadFont("Comic Sans MS",40,True)
MaskImage lade11,255,0,255
DrawImage lade11,400,400

FreeImage lade1
FreeImage lade2
FreeImage lade3
FreeImage lade4
FreeImage lade5
FreeImage lade6
FreeImage lade7
FreeImage lade8
FreeImage lade9
FreeImage lade10
FreeImage lade11

MaskImage auto,255,0,255
MaskImage autoruck,255,0,255
MaskImage crash,255,0,255
MaskImage baum,255,0,255
MaskImage crash2,255,0,255
MaskImage maus,255,0,255
MaskImage camel,0,0,0
MaskImage button1,255,0,255
MaskImage button1_a,255,0,255
MaskImage button2,255,0,255
MaskImage button2_a,255,0,255
MaskImage button3,255,0,255
MaskImage button3_a,255,0,255

SetBuffer BackBuffer()

;Benötigte festgelegte Zustaende und Vars

SetFont font

Global y1=100
Global y11=400
Global y21=700

Global autox=750
Global autoy=950

Global counter=0
Global points=0
Global counter_spielzeit=0
Global punkte_timer=0

Global camelcounter=0

Global aut_timer=0

Global by1=-20
Global by2=-180
Global by3=-350
Global by4=0
Global by5=-250
Global by6=-450

Global crashcount=0

Global points_check=0
Global points_camel=0

Global cameldeath=0

Global time4

Global menu=1
Global game=0
Global menusetting=0
Global credits=0

Global time_timer=1

Global ende=0

Global text_c_y=1024

Global clicksound_zu=1

Global bgsound=1

;usw....


Da lade ich den Sound, und spiele ihn in der Funktion einmal ab...[/code]

FireballFlame

BeitragFr, Dez 07, 2007 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Liegen Play und Stop denn immer in derselben Funktion?
Sonst muss chn auch global sein.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
 

Ziggy

BeitragFr, Dez 07, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich seh auch kein Code: [AUSKLAPPEN]
global chn

Ohne das chn auch global zu machen kannst du das ja nirgends abgreifen.

Versuch das einfach mal.

Gruß.

EDIT:
Ich hab das jetzt in meinem Spiel mal getestes, und zwar funktioniert es folgendermaßen:

Ich habe 2 globale Variablen kanal und ton, ich lade in einer separaten funktion den ton,
Code: [AUSKLAPPEN]

ton = loadsound("bla.mp3")


ich starte den Ton ganz zu beginn vor der Hauptschleife und stoppe ihn dann beim Aufruf der Funktion startgame()

Code: [AUSKLAPPEN]


Graphics gfxWidth,gfxHeight,gfxBpp,gfxMode
SetBuffer BackBuffer()

gamemode = 0
position = 1
weapon = 1

load_gfx()
load_snd()
kanal = PlaySound(snd_bg1)

Repeat
Cls
HidePointer
keys()
fps()
movement()
weapon()

[...]

Select gamemode
   Case 0   menu()
   Case 1   startgame()
         StopChannel(kanal)
   Case 2   mainoptions()
   Case 3   Exit
   Case 4   pause()
End Select


So funktioniert das mit dem abbrechen.

Gruß.
"Es gibt 10 Arten von Menschen: Diejenigen die Binär verstehen, und jene die es nicht verstehen."

"Irren ist menschlich, gut dass ich ein Gott bin... xD"

letzte Informatik-Note : 1 ... 96% richtig, Thema: C++ switch/case

ReLeNtLeSS

BeitragSa, Dez 08, 2007 0:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, vielen dank, es geht...

es fehlte wirklich nur ein

Global chn

^^

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group