Text und Grafiken langsam einblenden?

  • Text und Grafiken langsam einblenden?

    der titel sagt so zimlich alles, ich will Grafik oder Text langsam (transparent zu farbig) einblenden, so ne Art fade in/fade out.

    Kann mir jemand sagen, wie das geht und brauche ich die Registrierte dafür?

    PS: Ich hab keine Ahnung von Scripts! Ich mach alles mit der Benutzeroberfläche!
  • ohne scripts gehts nicht....falls du dir die mühe machen willst und gml lernst...hier:

    GML-Quellcode

    1. draw_set_alpha(0.5)

    dies setzt die transparenz des gezeigten auf 0.5(halb sichtbar)
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Und was dann, wie bekomme ich das programm dazu, dass es den Text, den ich erstelle z.b. Halbtransparent macht? Schau dir doch einfach mal mein neues Projekt an (Ghosttrain). ich will den text im Startmenü einfaden.

    Edit:

    Soweit hab ich das, nun ist der Text halbtransparent... wie kann ich aber einen Timer machen, dass er, dagen wir alle 0,5 Sekunden Die Transparenz +0,1 macht?

    Also soll er das in 5 sekunden komplett angezeigt haben. Das kann man doch sicher mit einer Schleife und +0.1 machen, oder?

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

  • ich gehe davon aus dass du die text auch als texte zeichnest und nicht als sprites.......
    d'n'd "execute a piece of script" und gib folgenden code ein:

    GML-Quellcode

    1. draw_set_alpha(0.5)
    2. draw_text("Spiel starten[Space]";)
    3. draw_set_alpha(1)

    dies stellt den alpha wert(transparenz)vor dem zeichnen auf 0.5(halb sichtbar)und danch wieder auf 1(ganz sichtbar)
    PS: anstatt Spiel starten[Space] kannst du auch was anderes schreiben(ist ja klar)
    EDIT: schreibfehler:D
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Dragoon ()

  • Also, ich brauche eigentlich nur noch einen Script, der ne Pause macht von 0,5 Sekunden bzw. eine 10Fache schleife, die zu dem Alphawert immer 0.1 hinzuaddiert, dass man in 5 Sekunden das Objekt komplett angezeigt bekommt. Schaut auch oben bei EDIT
  • GML-Quellcode

    1. alpha=draw_get_alpha
    2. if(alpha>0.99){back=true}
    3. if(alpha<0.01){back=false}
    4. if(down=false)
    5. {draw_set_alpha(alpha+(1/150))}
    6. else
    7. {draw_set_alpha(alpha-(1/150))}
    8. draw_text("HIER DEINEN TEXT EINFÜGEN";)

    dies würde den text einblenden und wieder ausblenden und wieder einblenden und wieder ausblenden und wieder einblenden und wieder ausblenden............
    PS: im create event des objektes musst du die variable "back" auf "false" stellen
    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Wenn ich das so mache, zeigt der immer eine Fehlermeldung...

    PS: Der muss den text nicht mehr zeichnen... ich hab schon ein Objekt, dass dafür zuständig ist, den text zu zeichnen. wenn ich nun den Halbtransparent-code einsetze, macht der schon alles halbtransparent. Es würde mir reichen, wenn du mir sagst, wie ich eine Pause einsetzen kann, wie Sleep 500 Miliseconds. Dann kann ich ja schreiben:

    Transparents: 0.1
    sleep 500 milis
    Transparents: 0.2
    sleep 500 milis
    usw.

    So stell ich mir das vor. Ich brauch nur noch den code füf sleep... wie lautet der?
  • der code lautet ganz einfach

    sleep(500);

    aber so solltest du das nicht machen, weil das "einblenden" des textes so sehr ruckig wird und der code entsprechend lang. für meine intros benutze ich folgenden code (ist aber im grunde nichts anderes als der code von Dragoon):

    Create-Event:

    GML-Quellcode

    1. timer=0;
    2. alpha=0;
    3. alarm[0]=50;
    4. text='Hello world'!;


    Alarm[0]-Event (optional kannn man das auch in step event machen)

    GML-Quellcode

    1. // Text einbelnden
    2. if timer>0 && timer<100
    3. {
    4. text='Hello world!';
    5. if alpha<1 {alpha+=0.01;}
    6. }
    7. if timer>100 && timer<200 {if alpha>0 {alpha-=0.01;}}
    8. // Timer weiterzählen
    9. if timer=650 {room_goto(room_menue);} // Ins Menue
    10. alarm[0]=1;
    11. timer+=1;
    Alles anzeigen


    Draw-Event

    GML-Quellcode

    1. draw_set_alpha(alpha);
    2. draw_set_halign(fa_center);
    3. draw_set_valign(fa_center);
    4. draw_set_color(c_white);
    5. draw_text(room_width/2,room_height/2,string(text));
    6. draw_set_alpha(1);
    7. draw_set_halign(fa_left);
    8. draw_set_valign(fa_top);


    EDIT: Fehler
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von WIN ()

  • Soweit so gut... ich hab nen raum ohne Text gemacht und den Script laden lassen. Leider weiss ich nicht, wie der script zusammengefügt wird... außerdem wird der Text ja schon generiert. Also vomProgramm...

    Nochmal n andrer Versuch...

    Könnt ihr mir sagen, wie ich ne Schleife programmiere, dann kann ich das machen:

    set loop: 50
    sel alpha = 0
    start loop
    set alpha = +0.02
    if loop > 0
    then end loop

    oder so ähnlich. Alsio ne Schleife mit 50 Durchgängen. In jedem Durchgang wird dem Alphawert 0.02 Hinzuaddiert und nach 50 Durchgängen hat der Alphawert dann 1. Dann soll die Schleife beendet werden. Kann mir hirfür jemand einen KOMPLETTEN Script geben? Bitte!

    Danke! :D
  • OK, aber der zeigt einen Fehler...
    "Assignment operator expected."
    Wo hab ich was falsch gemacht?

    Ich hab schon set alpha durch set image_alpha ersetzt, doch das hat nichts gebracht...

    Kann mir jemand helfen?

    Edit: Ich hab den Script nun etwas verändert und es geht soweit... aber er wiederholt die Schleife nicht. Also, er lässt den Alphawert auf 0.02. Wie lautet der Befehl,m dass er den Vorgang wiederholt bzw. Wenn loop auf 50 steht nicht mehr wiederholt?

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

  • Ah... mist, jetzt hab ich den Falschen beitrag geändert

    Meine Codes hab ich mit draw-_set_alpha (--) gemacht (siehe oben.

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

  • Aber da blendet sich leider immer noch nichts ein bzw. aus :(

    PS: Der Text ist kein Sprite sondern vom programm gezeichnet, da du ja Image_alpha verwendest!

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

  • aso, dann versuch mal das:

    Im Create Event:

    GML-Quellcode

    1. loop=0;
    2. alpha=0;


    Im Step Event:

    GML-Quellcode

    1. if (loop<=50){
    2. alpha += 0.02;
    3. draw_set_alpha(alpha);
    4. loop+=1;}
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Benutzer online 1

    1 Besucher