Sound abspielen im bestimmten radius einer Koordinate

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

PhillipB

Betreff: Sound abspielen im bestimmten radius einer Koordinate

BeitragMi, Dez 22, 2010 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Community!
Ich weiß zwar einiges über die Befehle in B3d aber ich hätte einefrage:
Also ich habe eine city (.3ds datei) und einen Spieler mit dem ich rumlaufen kann!
Jetzt würde ich gerne Sounds einbauen die Kommen wenn der Spieler in der nähe einer bestimmten Koordinate ist und immer lauter werden umso näher er der Koordinate komt

mfg
PhillipB.

Xeres

Moderator

BeitragMi, Dez 22, 2010 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde es mit EntityDistance bzw. dem Satz des Pythagoras in Verbindung mit ChannelVolume probieren.
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)

PhillipB

BeitragMi, Dez 22, 2010 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal danke für die Antwort
Also könnte es dann so da stehen?
Mal grob im Edito erstellt:
Code: [AUSKLAPPEN]

IF EntityDistance# (player, map) = 5 Then
PlaySound (wasser) + ChannelVolume,0.5

Xeres

Moderator

BeitragMi, Dez 22, 2010 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm - nö. Du scheinst fundamentale Prinzipien noch nicht verinnerlicht zu haben, wenn du das mit dem Additionszeichen ernst meinst. Schau dir die Rückgabewerte der Funktionen an, und was die Funktionen für Parameter erwarten und sorge dafür, das der Sound nur dann abgespielt wird, wenn er noch nicht läuft.
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)

PhillipB

BeitragMi, Dez 22, 2010 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
So?
Code: [AUSKLAPPEN]
IF EntityDistance# (player, map) = 5 And ChannelPlaying(Wasser_chan) = 0 Then

???
Und wie krige ich das mit dem PlaySound (wasser) und dem ChannelVolume,0.5 dann hin cih bin noch nicht sehr erfahren!

Xeres

Moderator

BeitragMi, Dez 22, 2010 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab die Befehle oben in der OH verlinkt - da sind Beispiele dabei.
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)

PhillipB

BeitragMi, Dez 22, 2010 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Da habe ich ja auch geguckt wo ist denn mein fehler?
Ich binn noch Anfänger!

Tankbuster

BeitragMi, Dez 22, 2010 23:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum so schwer, es gibt doch 3D-Sound in Blitz3D Wink

https://www.blitzforum.de/help/?subcat=12
Twitter
Download Jewel Snake!
Windows|Android

PhillipB

BeitragDo, Dez 23, 2010 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ja und wie soll ich jetz die Koordinaten da hinzufügen?
Bitte etwas genau weil ich bin wie gesagt Anfänger!

Tankbuster

BeitragDo, Dez 23, 2010 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst dir unter Hilfe Beispiele zu jedem Befehl ansehen. Das hab ich mal für dich rausgesucht:

BlitzBasic: [AUSKLAPPEN]
Graphics3D 800,600
SetBuffer BackBuffer ()

camera = CreateCamera ()
PositionEntity camera,0,1,-10

light = CreateLight ()
RotateEntity light,90,0,0

plane = CreatePlane ()

cube = CreateCube ()
PositionEntity cube,0,1,0

microphone = CreateListener (camera)
sound = Load3DSound ("media/ufo.wav")

While Not KeyHit (1)

If KeyDown(205) = 1 Then TurnEntity camera,0,-1,0
If KeyDown(203) = 1 Then TurnEntity camera,0,1,0
If KeyDown(208) = 1 Then MoveEntity camera,0,0,-0.05
If KeyDown(200) = 1 Then MoveEntity camera,0,0,0.05
If MouseHit (1) = 1 Then EmitSound (sound,cube)

RenderWorld

Text 0,0,"Benutze Cursortasten zum Verschieben"
Text 0,20,"Mit linker Maustaste Sound abspielen"

Flip

Wend
End
Twitter
Download Jewel Snake!
Windows|Android

Xeres

Moderator

BeitragDo, Dez 23, 2010 0:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das entbindet dich noch nicht von der Pflicht, dir selber was an zu eignen. Geholfen wird dir hier mit Sicherheit, aber fertige Codes ist nicht das, was du brauchst.
Schau dir die Beispiele genau an, probiere etwas herum - alles was du selber herausfindest, wirst du so schnell nicht mehr vergessen.
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)

PhillipB

BeitragDo, Dez 23, 2010 0:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe doch oben bereits einen code erstellt und wollte fragen was ich da falsch machee ich habs ja selbs probiert:
Code: [AUSKLAPPEN]
IF EntityDistance# (player, map) = 5 And ChannelPlaying(Wasser_chan) = 0 Then
PlaySound (wasser) and ChannelVolume,0.5


Ist der Abstand von Player zur map 5 und wasser_chan = 0 dann soll sound wasser gespielt werden und channelvolume soll 0.5 sein!

ich weiß das der code falsch ist kann einer nochmalst genauer stellung nehmen?
Wo mein fehler ist?!
Natürlich will cih lernen!

Xeres

Moderator

BeitragDo, Dez 23, 2010 0:29
Antworten mit Zitat
Benutzer-Profile anzeigen
And ist ein logisches Operator - Der Compiler versteht das nie und nimmer als "tue das und das". Mehrere Befehle in einer Zeile trennt man mit einem Doppelpunkt voneinander.

PlaySound gibt einen Wert zurück, ChannelVolume benötigt diesen Wert.

Das Beispiel zu ChannelVolume ist eindeutig.

Wenn du das nicht verstehst oder nicht länger als zwei Sekunden zu Verstehen versuchst, kann man dir nicht helfen. Du machst dann besser ein paar Tutorials und lernst, mit Variablen und Funktionen umgehen.
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)

PhillipB

BeitragDo, Dez 23, 2010 0:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Also kleine Schritte und von neuem:
Code: [AUSKLAPPEN]
IF EntityDistance# (player, map) = 5 Then
PlaySound (wasser) : ChannelVolume wasser_chan, 0.5


so?
ich habe mir die Tutorial nocheinmal angesehen!

Xeres

Moderator

BeitragDo, Dez 23, 2010 0:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo oder wie bekommt "wasser_chan" seinen Inhalt her? Rolling Eyes
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)

PhillipB

BeitragDo, Dez 23, 2010 0:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Das steht ja alles oben bei der Variablen angabe:
Code: [AUSKLAPPEN]
wasser = LoadSound ("Ewasser.wav")
wasser_chan = PlaySound (wasser)

ZaP

BeitragDo, Dez 23, 2010 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann dir auch nur die 3D Soundfunktionalitäten von B3D empfehlen, die tuen im Grunde das, was Du von Hand machen willst.
Starfare: Worklog, Website (download)

Xeres

Moderator

BeitragDo, Dez 23, 2010 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Du spielst denn Sound damit nach dem laden ab, aber wenn du ihn abspielen willst, speicherst du nicht den Channel in dem er läuft...
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)

mpmxyz

BeitragDo, Dez 23, 2010 0:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt noch ein weiteres Problem: die Bedingung
BlitzBasic: [AUSKLAPPEN]
If EntityDistance# (player, map) = 5

Diese Abfrage funktioniert nur, wenn der Abstand genau 5 beträgt.
Dies passiert aber eher in Ausnahmefällen.
Wenn etwas innerhalb des Abstandes 5 passieren soll, muss es eher so heißen:
BlitzBasic: [AUSKLAPPEN]
If EntityDistance# (player, map) < 5

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

PhillipB

BeitragDo, Dez 23, 2010 0:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahh danke an euch alle jetz hab ichs verstanden ich habs jetz soo:
Code: [AUSKLAPPEN]
wasser = LoadSound ("wasser.wav")

While Not KeyHit (1)

If EntityDistance# (player, map) < 5 Then
wasser_chan = PlaySound (wasser) : ChannelVolume wasser_chan, 0.5
EndIf


Jetz gehts naja iwie is der sound noch komig so krazig weiß da einer ne hilfe?
Vilen dank für eure unterstützung und entschuldigung das ich so lästig war!
Sorry

frohe weihnachten
mfg
PhillipB.

Edit:// Habs durchs eigene rumprobieren hingekriegt!
  • Zuletzt bearbeitet von PhillipB am Do, Dez 23, 2010 1:43, insgesamt 3-mal bearbeitet

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group