WarpSound - "3D Sound" [Update!-V1.1]

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

ComNik

Betreff: WarpSound - "3D Sound" [Update!-V1.1]

BeitragMo, Jul 27, 2009 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu,
lange ist das letzte modul meinerseits her deswegen kommt hier ein neues.
WarpSound is der erste part einer reihe von modulen die alle den ...coolen *hust* Präfix "Warp" tragen.
WarpSounds ist nix grosses aber ich benötige is in einem meiner projekte.

Arrow Was ist WarpSound überhaupt Question
WarpSound ist ein Modul das es einem ermöglicht sogenannte "Sound-Emitter" in der 2D Welt zu platzieren.
Für jeden Emitter kann man nun sogenannte "Trigger" erstellen. Diese kann man jetzt zum Beispiel an den Player "heften". Wenn sich der Trigger nun innerhalb der so genannten "activation distance" des emitters befindet, wird der Channel den man dem Emitter zugewiesen hat hörbar. - und je näher man kommt desto lauter wird der sound.
Ich GLAUBE das der name für diesen efekkt "3D Sound" ist (danke mahe Wink) aber ich bin mir nicht sicher Embarassed

Arrow Warum zur Hölle sollte ich WarpSound benutzen??? schreib ich mir doch in 10 minuten selber...
Ok mag sein, aber ich hab das jetzt fertig geschrieben weil ich es selber brauche, wär natürlich schön wenns anderen auch gefällt. Smile Solltet ihrs benutzen so bitte ich um ein kurzes Feedback, damit ich evtl eine verbesserte version rausbringen kann.

Ok das wars auch schon von der erklärung, ich stelle hier einfach den Downloadlink hin sowie ein kleiner Beispiel Code:

Download: *KLICK*

Ich hab mal mein kompilierte version reingepackt, ich bin mir nicht sicher ob man das jetzt nochmal kompilieren muss.

Und hier ein kleines Beispiel:
BlitzMax: [AUSKLAPPEN]

Import comnik.warpsound

Graphics(800,600,0,60)

sound:TSound = LoadSound("testsound.wav") ' <-- beliebieger sound... hab ich jetz nich mit hochgeladen
channel1:TChannel = CueSound(sound) ' Den Sound in einen channel 'verpacken'
emitter1:WP_SoundEmitter = WP_CreateSoundEmitter(channel1, 400, 300, 400) ' Schön mittig einen Emitter platzieren. Und den channel "channel1" an den emitter hängen
trigger1:WP_SoundTrigger = WP_AddSoundTrigger(0,0,emitter1) ' Hier erstellen wir einen trigger für emitter 1

'Main Loop
While Not KeyDown(KEY_ESCAPE) Or AppTerminate()
Cls

DrawRect(emitter1.x, emitter1.y, 10, 10) 'Ein bisschen den Emitter markieren nur zum testen...
'Wir heften den Trigger an die Maus
trigger1.x = MouseX()
trigger1.y = MouseY()

'Und das updaten nich vergessen
WP_UpdateSounds()

Flip
Wend

'Wenn das programm endet killen wir noch den emitter
emitter1.kill()


so der rest der syntax ist nicht sooo essentiell und auch in der doku Wink

SO! Version 1.1 ist dann jetz auch fertig.
Changelog:
Arrow Emitter haben jetzt eine "loop" variable. Wenn diese auf true gesetzt ist wird der emitter dauernd weitergespielt, egal ob man in hört oder nicht. Wenn loop = false ist wird der channel nur weitergespielt, wenn man in "hörweite" kommt. Kann man z.B bei feuergeräuschen nutzen die sowieso immer in einer schleife gespielt werden.

Arrow Lautsprecher werden nun verteilt angesprochen. Je nachdem ob sich der trigger links oder rechts von dem emitter befindet. Danke nochmal kriD Wink

Downloadlink erneuert!

mfg
ComNik
WIP: Vorx.Engine

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group