hilfe bei geräusch anzeige

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

  • hilfe bei geräusch anzeige

    hallo

    also ich habe eine anzeige für gerausche animiert ihr könnt es euch so vorstellen wie eine senkrecht stehende healthbar...dann hab ich variable erstellt namens noise_level ..und im player step event hab ich bei rennen ,gehen und schleichen je die variable erhöht..
    dann wollte ich es jedes mal drawen lassen wenn zb noise_level == 1 usw....aber da kann ich dann keine animation abspielen.


    wie würdet ihr es machen??bitte um hilfe und anregungen....thx
  • Hi,
    Ich denke eine gute Funktion für dein Problem wird folgende sein:

    GML-Quellcode

    1. draw_healthbar(x1, y1, x2, y2, amount, backcol, mincol, maxcol, direction, showback, showborder)


    Mit den x und y koordinaten gibst du das Rechteck an.
    amount gibt an, wieviel die Anzeige anzeigen soll (die Zahl muss zwischen 0 und 100 liegen).
    backcol ist die Hintergrundfarbe.
    mincol und maxcol geben die Farben an die gezeichnet werden z.B. dein noise_level ist niedrig (grün) und wenn es steigt verfärbt es sich (rot).
    direction gibt die Richtung an in der die Anzeige steigt (0 = von Links nach Rechts, 1 = von Rechts nach links, 2 = von Oben nach Unten, 3 = von Unten nach Oben ).
    showback gibt an ob der Hintergrund angezeigt werden soll.
    showborder gibt an ob ein schwarzer Rand um die Anzeige gezeichnet werden soll.

    MfG
    Rotfuchs7
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.
  • Also ich würde, wenn es ja kein eigentliches Geräuschlevel gibt sondern nur 3 Stufen, die Animation immer wieder bis zum Pegel ausschlagen lassen, wie ein Herzschlag oder so als ob jeder Schritt einen Ausschlag verursacht. Dazu verwendest du dann eine Sinus funktion.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • ich würde über eine Schleife nach schauen, wie viele Sounds in welcher Lautstärke gerade laufen.
    Dann wie @Rotfuchs7 sagt, das ganze mit einer Healthbar oder einfach einem Rechteck zeichnen.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • ich habs jetzt mit der draw_healthbar funktion versucht aber das sieht häßlich aus da es wirklich nur 3 stufen sind die ich habe......

    ich würd am liebsten die sprites was ich gemacht habe benutzen ...sodass sie je geräuschlevel eine animation abspielen.

    aber wie kann ich das lösen.....es muss ja auch mit dem view mit gehn....also ich weiß das ich es mit draw_sprite zeichnen lassen kann aber da wird dann keine animation abgespielt...oder ist das doch möglich????


    das mit dem sinus() gefällt mir auch nicht.
  • Also ich würde es so machen:
    Erstmal ein sprite mit 3 Bildern machen, ich würde einen Lautsprecher mit 1, 2 und 3 Balken davor machen, so ungefähr

    Dann würde ich ein Objekt erstellen dem dieses Sprite zuweisen und image_speed auf 0 setzen. Dann einfach überprüfen
    lassen welches Geräuschlevel gerade ist und das entsprechende sprite anzeigen. Dieses Objekt nur noch an den View "binden" und fertig.
    Kann durchaus sein das es bessere Möglichkeiten gibt, aber das wäre mein Vorschlag.
    Bilder
    • 1024px-Speaker_Icon.svg.png

      38,86 kB, 1.024×1.024, 347 mal angesehen
  • danke euch allen für eure hilfe hab jetzt schon mal einen ansatz der mir gefällt geschafft

    jedoch hab ich ein problem....wenn ich mich bewege geht es ja mit dem view mit....aber das problem ist das es immer ein kleines stück verutscht wenn ich nach rechts oder links gehe.. und das schaut schirch aus...was ist das???



    ich wollte ein gif erstellen aber funkt nicht richtig....hoffe mir kann jemand helfen


    EDIT: ich mach ein video davon um es besser zu verstehn
  • nein ich hab das ganz anders gemacht

    also im player step event hab ich

    GML-Quellcode

    1. if global.noise
    2. {scr_noise_level}


    und im script noise level hab ich

    GML-Quellcode

    1. noise = global.noise_level;
    2. switch(noise){
    3. case 1 :
    4. if !instance_exists(obj_ui_noise1)&& !instance_exists(obj_ui_noise2) && !instance_exists(obj_ui_noise3)
    5. instance_create(view_xview+290,view_yview+248,obj_ui_noise1);
    6. break;
    7. case 2 :
    8. if !instance_exists(obj_ui_noise2) && !instance_exists(obj_ui_noise3) && !instance_exists(obj_ui_noise1)
    9. instance_create(view_xview+290,view_yview+248,obj_ui_noise2);
    10. break;
    11. case 3 :
    12. if !instance_exists(obj_ui_noise3)&& !instance_exists(obj_ui_noise2) && !instance_exists(obj_ui_noise1)
    13. instance_create(view_xview+290,view_yview+248,obj_ui_noise3);
    14. break;
    15. default :
    16. draw_sprite(spr_ui_hintergrund,0,view_xview+200,view_xview+300);
    17. break;
    18. }
    19. }
    Alles anzeigen



    und in jedem obj_noise
    create event

    GML-Quellcode

    1. ​image_speed=0.3;


    step event

    GML-Quellcode

    1. ​x = view_xview;
    2. y=view_yview


    ist wahrscheinlich für erfahrerene gml user zu umständlich (ich benutze dafür 3 sprites mit unterschiedlichen animationen)aber ich wusste sonst keine lösung die ich selbst ohne hilfe schaffe.....


    ich denke das problem ist das das er zuerst die instanz an der stelle erstellt und dann immer jeden step die koordinaten vom view abfragt...

    aber wie ändere ich das??

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