Zufällige Sounds

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: Zufällige Sounds

BeitragSa, Sep 08, 2007 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will mehrere Sounds mit zufälliger Wiedergabe abspielen.
Wie geht das???
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
 

ChristianK

BeitragSa, Sep 08, 2007 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Logisch Denken wäre die einfachste Möglichkeit. Rolling Eyes
Also wenn ich dich richtig verstanden habe, hast du ein paar Sounds und ein zufälliger davon soll abgespielt werden.
Du speicherst alle Sounds in einem Array, benutzt dann Rand( ), um einen Eintrag zu finden und spielst den Sound ab.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

mabox

BeitragSa, Sep 08, 2007 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Was sind denn genau Arrays und wie funktionieren sie ???
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
 

ChristianK

BeitragSa, Sep 08, 2007 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier stehts -> http://www.blitzbase.de/befehle2d/dim.htm
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

mabox

BeitragSa, Sep 08, 2007 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut ich habs durchgelesen, was aber nicht heißt das ich Alles kapiert hab...

soll ich jetzt ein Dim Feld machen in dem die Sounds geladen werden??
Wie kann ich dann zufällig einen abspielen???
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

pile

BeitragSa, Sep 08, 2007 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Global Sound1=LoadSound ("bla1.mp3")
Global Sound2=LoadSound ("bla2.mp3")
Global Sound3=LoadSound ("bla3.mp3")
Global Sound4=LoadSound ("bla4.mp3")

SEEDRND MILLISECS()
Zufall=RND(1,4)

If Zufall=1 then Play Sound1
If Zufall=2 then Play Sound2
If Zufall=3 then Play Sound3
If Zufall=4 then Play Sound4


So müßte das gehen, auch ohne extra n Dim zu machen.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

mabox

BeitragSa, Sep 08, 2007 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das hätte ich auch grade noch hinbekommen (trotzdem Danke),
aber jetzt würde ich das doch gerne noch mit den Arrays lernen.
Hat noch jemand lust mir das zu erklären ?
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

pile

BeitragSa, Sep 08, 2007 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Also willst du allgemein wissen wie Arrays funktionieren oder speziell in diesem Beispiel? Weil das mit den Zufälligen Sounds macht für mich keinen Sinn in Arrays, weils ja, wie du siehst, auch so super klapt.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

BigMaexle

BeitragSa, Sep 08, 2007 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.robsite.de/bbkurs2/02variablen.htm

recht weit unten wird das System von Feldern (Arrays) beschrieben

Es gibt noch Blitz Arrays aber die sind vom System gleich
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber

BladeRunner

Moderator

BeitragSa, Sep 08, 2007 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
pile hat Folgendes geschrieben:
Also willst du allgemein wissen wie Arrays funktionieren oder speziell in diesem Beispiel? Weil das mit den Zufälligen Sounds macht für mich keinen Sinn in Arrays, weils ja, wie du siehst, auch so super klapt.

Doch, Arrays machen da wohl Sinn, denn Dein Code ist höchst ineffizient. Stell Dir mal vor er will 150 Sounds so abspielen. Das bedeutet 150 verschiedene Ladebefehle und 150 deklarierte Variablen. Bei einem Array lädt er alles in einer For next ein (3-5 Zeilen) und die Wiedergabe ist ohne 150 Zeilen if then oder select case auch in 2-3 Zeilen erledigt.
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

Willi die Rübe

BeitragSa, Sep 08, 2007 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
@Bladerunner
Ich möchte das zwar jetzt nicht anzweifeln, aber wenn man dann doch alle 150 Befehle, Variablen etc. einzeln schreibt und zur Übersichtlichkeit in eine Include auslagert, kann das bei manchen Konstruktionen schon eine bessere Perfomance(extrem minimal, aber da) bringen.
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

Xeres

Moderator

BeitragSa, Sep 08, 2007 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum sollte es Performance bringen, wenn die CPU 150 mal eine if abfrage durchgeht, welcher sound angesprochen werden soll? In einem Array wo nur der index durchgeganen wird, ist das doch nicht minder schnell und dafür Übersichtlicher...
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)

Abrexxes

BeitragSa, Sep 08, 2007 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine IF Bedingung ist immer schneller da hier der PC weder eine For/Next "Schleife" initiallisieren muss noch alle Werte bei jedem Durchlauf updaten. Da man aber solche Sachen wie "Zufallssounds" zb vor den Levels oder Aktionen machen sollte (also im voraus) spielt es keine Rolle. Da sind beide fix genug. Seine Zeit wird eh beim laden draufgehen, denn alle Sounds in den Speicher zu laden ist keine gute Idee wenn es 150 sind. Wink

cu

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Sep 09, 2007 1:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich frage mich zwar immer noch wie folgender Code in irgend einer Weise im Vorteil sein soll:

Code: [AUSKLAPPEN]
Global Sound1=LoadSound ("bla1.mp3")
Global Sound2=LoadSound ("bla2.mp3")
Global Sound3=LoadSound ("bla3.mp3")
Global Sound4=LoadSound ("bla4.mp3")

SeedRnd MilliSecs()
Zufall=Rnd(1,4)

If Zufall=1 Then channel=PlaySound(Sound1)
If Zufall=2 Then channel=PlaySound(Sound2)
If Zufall=3 Then channel=PlaySound(Sound3)
If Zufall=4 Then channel=PlaySound(Sound4)


als dieser Code:

Code: [AUSKLAPPEN]
Dim sound(3)
For i=0 To 3
   sound(i)=LoadSound("bla"+i+".mp3")
Next

SeedRnd MilliSecs()
zufall=Rnd(0,3)

channel=PlaySound(sound(zufall))


Schon alleine weil sich zum einen der Code, auch bei 150 Sounds, nicht verlängert. Aber auch weil eben nicht eine endlose IF-Liste, wo sich nur Fehler einschleichen können, durchgangen werden muß. Der einzige Grund auf ein DIM-Feld zu verzichten, liegt im Vorteil der möglichkeit, jeden Variablennamen individuell vergeben zu können.

Code: [AUSKLAPPEN]
Global motor=LoadSound ("motor.mp3")
Global quitschen=LoadSound ("quitschen.mp3")
Global schaden=LoadSound ("schaden.mp3")
...


was aber mit der ersten Fragestellung nicht gegeben ist.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

mabox

Betreff: Ok

BeitragSo, Sep 09, 2007 7:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für eure Hilfe!
Ich muss zwar keine 150 Sounds laden aber die Version mit den Arrays gefällt mir um eineiges besser als die andere.
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group