bitte um hilfe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • bitte um hilfe

    hallo freunde

    es ist so ich will einen sound im spiel haben und der soll lauter oder leiser werden wenn der player näher zum objekt ist oder weiterweg.....

    ich habe schon die suchfunktion benutzt und auch in den englischen foren nachgesehn aber konnte keine hilfe finden.

    wie kann ich das machen???

    das einzige war ein video das ich eigentlich toll fand aber als ich es probierte ging es nicht.


    ich hörte von 3d sounds oder audio emittern....wobei ich 3d sounds nicht benutzen kann da ich keine registrierte version habe.bitte kann mir da jemand helfen....


    hör jetzt auch auf sonst müll ich noch das ganze forum zu......
  • Genau du brauchst einen audio emitter ich weiß grad die funktion aus dem kopf nicht musst in den docs nachgucken dann machst z.B.: em = audio_emitter_create() und dann brauchst du audio_emitter_gain(emitter, gain); bei emitter schreibst dann dein erstellen emitter rein in diesem fall jetzt "em" und gain ist die lautstärtke die geht von 0-1 kannst ja dann eine variable erstellen z.B "var entf" und kannst sie dann mathematisch hochzählen so das wenn der gegner näher kommt es lauter wird
    Wir stehen zusammen und wir fallen zusammen
  • Du könntest das Verhalten eines 3D-sounds simulieren, indem du die Entfernung zwischen Spieler und Geräuschquelle rauskriegst (über die Funktion point_distance). Dann teilst du diesen Wert durch die maximale Entfernung, aus der der Ton noch hörbar sein soll, und kriegt damit einen Wert >= 0. Und dann setzt du die Soundlautstärke selbst, via

    GML-Quellcode

    1. sound_volume(dein_sound_index,1-min(ausgerechneter_wert,1));

    Damit ist der Sound am lautesten, wenn du direkt an der Quelle bist, wird mit zunehmender Entfernung leiser und wenn du über die Maximal-Hörweite raus bist, ist die Lautstärke 0. Das ist quasi auch das, was ein 3D-Sound macht, nur evtl. langsamer.

    Edit @Eddysoulo: Audio-Emitter gibt's in GM8 nicht. :P
  • Wäre es nicht sinnvoller, wenn du sound_volume nach der Berechnung einfügst?
    Ansonsten mach doch mal show_message(volume) und prüfe, was ausgegeben wird. Vielleicht liegt in der Ausgabe der Fehler.
    Und du musst play sound auch erst abspielen, nachdem du die Volume gesetzt hast. Das Create Event wird immer vor allen anderen ausgeführt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von icqgamer ()

  • hahahahahah ich bin glücklich es funktioniert doch aber halt nur wenn ich die neue engine ausschalte....



    nur hab ich jetzt ein problem und zwar ist mein wandsprite 400 pixel breit und in den letzten 100 pixeln ist ein ventilator eingezeichnet.
    ich hab den code oben benutzt um den sound für den ventilator zu benutzen und es funktioniert auch nur halt das es viel zu früh anfängt laut zu werden und viel zu früh endet....
    also sagen wir ich stehe 300 pixel vor dem wandsprite...dann fangt der sound an langsam lauter zu werden. aber sagen wir ich bin beim ventilator und 50 pixel danach hört es schon auf und ist zu leise....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von acidrain833 ()

  • kann mir da keiner helfen???? also mit der neuen sound engine?????


    ich muss jetzt doch die neue sound engine benutzen und deshalb kann ich den code nicht benutzen....

    ich weiß es geht um listener und der gleichen aber kann mir da jemand helfen bin am verzweifeln wenn es darum geht....ich will das der player der listenerr ist und bei einem objekt den sound leiser oder lauter hört je nach dem ob er näher oder weiterweg vom objekt ist...
  • Also so habe ich es mit meinem 3D Sound gemacht. Für einen 2D Platformer.

    im obj_player/create_event:

    audio_listener_orientation(0,1,0, 0,0,1);
    global.mainEmitter = audio_emitter_create();

    im obj_player/step_event:
    audio_listener_position(x,y,0);
    audio_emitter_position(global.mainEmitter,x,y,0);

    jetzt musst du für jeden sound folgendes erstellen:

    im create_event:

    se_multiple_straight_right = audio_emitter_create();
    audio_falloff_set_model(audio_falloff_linear_distance_clamped);
    audio_emitter_falloff(se_multiple_straight_right,150,1000,1);

    im step_event:
    audio_emitter_position(se_multiple_straight_right,x,y,0)

    den jeweiligen sound spielst du dann mit folgender funktion ab:
    audio_play_sound_on(se_multiple_straight_right,snd_impact_projectile,0,7);

    Wenns noch Fragen gibt, nur zu. Die einzelnen Parameter kannst aber einfach in den Docs nachlesen.
  • Dann markier deine fertigen Them als erledigt oder noch besser, teile uns deine Lösung mit, damit wir deinen code besser kennen und dir dann bei der nächsten Frage besser helfen können :)

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • ja hab ich eh schon in nen anderen thema....aber ok

    im create event vom player

    GML-Quellcode

    1. audio_listener_orientation(-1000,0,0,0,1,0)


    step event obj player

    GML-Quellcode

    1. audio_listener_position[x,y,0}



    obj_ventilator
    create event

    GML-Quellcode

    1. s_emit=audio_emitter_create();
    2. audio_emitter_position(s_emit,x,y,0)
    3. audio_play_sound(snd_fan,100,true)



    jetzt wird es lauter oder leiser wenn man näher oder weiter weg ist....und man hört es auch nur links oder rechts....