draw_text ein & ausblenden

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

  • draw_text ein & ausblenden

    Hi zusammen, da mir grade der text gelöscht wurde ... mal wieder :headtouch:
    hier nochmal die Kurzfassung.

    Ich würde gerne einen bzw mehrere Texte hintereinander ein und wieder ausblenden lassen.
    habs so versucht aber klappt nicht :troll:
    sieht so aus als würde der alpha wert nicht übernommen ..

    jemand einen tipp?
    Create

    GML-Quellcode

    1. image_alpha = 0
    2. i = 0


    Step

    GML-Quellcode

    1. i += 1
    2. if i >= 60 && i <= 180
    3. {
    4. image_alpha += 0.05
    5. }
    6. if i >= 240 && i <= 300
    7. {
    8. image_alpha -= 0.05
    9. }
    10. if i >= 390 && i <= 450
    11. {
    12. image_alpha += 0.05
    13. }
    14. if i >= 480 && i<= 540
    15. {
    16. image_alpha -= 0.05
    17. }
    Alles anzeigen


    Draw

    GML-Quellcode

    1. if i >= 0 && i <= 300
    2. {
    3. draw_set_alpha(image_alpha);
    4. draw_set_colour(c_white);
    5. draw_set_font(font1);
    6. draw_text(32,32, "text1" );
    7. }
    8. if i >= 390 && i <= 540
    9. {
    10. draw_set_alpha(image_alpha);
    11. draw_set_colour(c_white);
    12. draw_set_font(font1);
    13. draw_text(32,32, "text2" );
    14. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von ZaMi_ ()

  • Ich hab dir ein kleines Skript geschrieben.
    zu anfangs musst du scr_ein_ausblenden_init() aufrufen(Wenns neu Anfangen soll auch, für jedes Mal). Danach kannst du dann im Draw scr_ein_ausblenden(pause,text1,text2...) anwenden (Gibt False zurück, wenn das ein/ausblenden fertig ist). Hier kannst du bis zu 15 Texte angeben. Pause ist die Zeit dazwischen in Millisekunden
    scr_ein_ausblenden_init:

    GML-Quellcode

    1. ///scr_ein_ausblenden_init()
    2. mode = 0;
    3. numb = 1;
    4. time = current_time;
    5. alpha = 0;


    scr_ein_ausblenden:

    GML-Quellcode

    1. ///scr_ein_ausblenden(pause,text1,text2,text3...)
    2. scr_var_f = -1;
    3. length = argument_count-1;
    4. if numb > length
    5. return false;
    6. if time <= current_time{
    7. if mode == 0{
    8. if alpha < 1
    9. alpha += 0.05;
    10. else{
    11. mode = 1;
    12. time = current_time+argument[0];
    13. }
    14. }
    15. else if mode == 1{
    16. if alpha > 0
    17. alpha -= 0.05;
    18. else{
    19. mode = 0;
    20. time = current_time+argument[0];
    21. numb += 1;
    22. }
    23. }
    24. }
    25. if numb > length
    26. return false;
    27. pos = string_pos("|",argument[numb])
    28. if (pos != false){
    29. var scr_var_f;
    30. scr_var_f = string_copy(argument[numb],pos+1,string_length(argument[numb])-pos);
    31. for(i = 0; true; i ++){
    32. if font_get_name(i) == scr_var_f{
    33. scr_var_f = i;
    34. argument[numb] = string_copy(argument[numb],0,pos-1);
    35. break;
    36. }
    37. if !font_exists(i){
    38. i = -1;
    39. break;
    40. }
    41. }
    42. }
    43. if scr_var_f != -1
    44. draw_set_font(scr_var_f);
    45. sv_ap = draw_get_alpha();
    46. draw_set_alpha(alpha)
    47. draw_text(x,y,argument[numb]);
    48. draw_set_alpha(sv_ap)
    49. return true;
    Alles anzeigen


    Beispiel:
    Create

    GML-Quellcode

    1. scr_ein_ausblenden_init();

    Draw

    GML-Quellcode

    1. scr_ein_ausblenden(1000,"Text1","Text2","Text3");//Immer eine Pause von 1000 Millisekunden also einer Sekunden


    Edit: Auf Wunsch hab ich auch noch eine Funktion hinzugefügt, womit es möglich ist hinter dem Text ein | zu machen und ein Font anzugeben der dann damit gedrawt wird. Wenn die anderen Texte kein anderen Font mit | drawen, wird der Font übernommen


    PS: Mein Künsterliches Meinsterwerk :D
    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

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von husi012 ()

  • Vermute mal dein Fehler ist, dass du statt 120 180 hingeschrieben hast, und damit statt 60, wie in den anderen Fällen 120 Frames lang image_alpha erhöhst.

    Allerdings frag ich mich, wieso du image_alpha 60 steps lang um 0.05 erhöhst. 20 Steps reichen ja aus für volle sichtbarkeit/unsichtbarkeit.
  • wollte es einfach fertig gemacht haben, auch wenn husi's lösung wohl besser geeignet ist als meine.
    hab es allerdings in 30 fps geschrieben, macht für den logisch weg keinen unterschied daher war es mir egal :D

    der fehler war einfach... (abgesehen davon das ich beim posten "nachm edit" einen zähl fehler hatte)
    image_alpha drawt offensichtlich über 1 hinaus, bedeutet da er 1 sekunde auf geblendet hat dann 2 sekunden auf voller stärke
    weiter hochgeblendet und nur 1 sekunde ab das heiß 2 sekunden blendzeit sind zu viel, wir wären auf einem alpha wert von 2 "rest"
    daher konnte der text nicht abblenden. (dazu kam das er sich wegen den zeitversatz überschnitten hat)



    Create

    GML-Quellcode

    1. image_alpha = 0
    2. i = 0




    Step

    GML-Quellcode

    1. ///ein und ausblenden
    2. i += 1
    3. if i >= 30 && i <= 90
    4. image_alpha += 0.01
    5. if i >= 120 && i <= 180
    6. image_alpha -= 0.01
    7. if i >= 210 && i <= 270
    8. image_alpha += 0.01
    9. if i >= 300 && i <= 360
    10. image_alpha -= 0.01
    11. if i >= 390 && i <= 450
    12. image_alpha += 0.01
    13. if i >= 480 && i <= 540
    14. image_alpha -= 0.01
    Alles anzeigen




    Draw

    GML-Quellcode

    1. if i >= 0 && i <= 180
    2. {
    3. draw_set_alpha(image_alpha);
    4. draw_set_colour(c_white);
    5. draw_set_font(font1);
    6. draw_text(32,32, "Text 1" );
    7. }
    8. if i >= 210 && i <= 360
    9. {
    10. draw_set_alpha(image_alpha);
    11. draw_set_colour(c_white);
    12. draw_set_font(font1);
    13. draw_text(32,32, "Text 2" );
    14. }
    15. if i >= 390 && i <= 540
    16. {
    17. draw_set_alpha(image_alpha);
    18. draw_set_colour(c_white);
    19. draw_set_font(font2);
    20. draw_text(32,32, "Text 3" );
    21. }
    Alles anzeigen



    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von ZaMi_ ()