Laden...

XNA: Wie am besten Sound für Auto?

Erstellt von markus111 vor 15 Jahren Letzter Beitrag vor 15 Jahren 988 Views
markus111 Themenstarter:in
479 Beiträge seit 2008
vor 15 Jahren
XNA: Wie am besten Sound für Auto?

Hallo,

wie kann man am besten Sounds für das fahren eines Autos abspielen?
Dafür sollte man höhe, also Pitch des Sounds ändern können.
Ich hab 5 Sounds, für jeden Gang einen, und jeweils einen Schaltsound.

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
H
364 Beiträge seit 2007
vor 15 Jahren

Du könntest in dem XNA Racing Game StarterKit nachsehen, da steht was drin, mehr weis ich leider auf die schnelle aber auch nicht 😃

V
6 Beiträge seit 2009
vor 15 Jahren

Ich habe mal gelesen, dass man beim Autosound in Computerspielen normalerweise alle Tonspuren, also die ganze Bandbreite, gleichzeitig laufen lässt und dann mit dynamischer Lautstärke (durch Regulation der einzelnen Spuren) eine schöne Drehzahlkulisse erzeugen kann. So wird das anscheinend meistens gehandhabt, ist wohl die beste Möglichkeit. Da braucht man dann auch keine Höhen verändern.
Allerdings braucht man dafür halt die entsprechenden Sound-Ressourcen 😕
Vielleicht kannst ja trotzdem was damit anfangen.

edit: 2x Rechtschreibung 😕

markus111 Themenstarter:in
479 Beiträge seit 2008
vor 15 Jahren

Ich habe es mal mit Pitch (wie im RacingGame) versucht. Allerdings erhalte ich immer eine Exception:

System.InvalidOperationException wurde nicht behandelt.
Message="The method or function that was called cannot be used in the manner requested."
Source="Microsoft.Xna.Framework"
StackTrace:
bei Microsoft.Xna.Framework.Helpers.ThrowExceptionFromResult(UInt32 result)
bei Microsoft.Xna.Framework.Audio.Cue.Play()
bei Drivetest.Audio.PlaySound(Driver dr) in C:\Users\Markus\Documents\Skype\Received Files\Drivetest\Drivetest\Drivetest\Audio.cs:Zeile 42.
bei Drivetest.Game1.Update(GameTime gameTime) in C:\Users\Markus\Documents\Skype\Received Files\Drivetest\Drivetest\Drivetest\Game1.cs:Zeile 80.
bei Microsoft.Xna.Framework.Game.Tick()
bei Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
bei Microsoft.Xna.Framework.GameHost.OnIdle()
bei Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
bei System.Windows.Forms.Application.ThreadContext.System.Windows.Forms. UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms. UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei Microsoft.Xna.Framework.WindowsGameHost.Run()
bei Microsoft.Xna.Framework.Game.Run()
bei Drivetest.Program.Main(String[] args) in C:\Users\Markus\Documents\Skype\Received Files\Drivetest\Drivetest\Drivetest\Program.cs:Zeile 14.
InnerException:

🤔
Im Update habe ich:

            gear1Sound.SetVariable("Pitch", dr.speed.X);
            gear1Sound.Play();

            gear1Sound.Stop(AudioStopOptions.Immediate);

Was bedeutet das!?

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
U
237 Beiträge seit 2007
vor 15 Jahren

In MDX benutze ich einen SecondaryBuffer. Das ist ein Objekt für Sounds wie Explosionen oder eben Motorgeräusche.

Für mein Flugspiel verwende ich einen Düsensound, der sich nicht ändert. Der geht ganze 4Sekunden lang. Der wird in einer Schleife abgespielt. Wenn ich schneller fliege, dann erhöhe ich die Frequenz des Sounds.

Vielleicht gibts sowas auch in XNA.

heute code ich, morgen debug ich und übermorgen cast ich die königin auf int