Roter Bildschirm+Fade out ohne freeze!

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

  • Roter Bildschirm+Fade out ohne freeze!

    Hi Leute!
    Nach mehreren nicht-fertig-gestellten Projekten und einer Pause bin ich im moment mal wieder intensiv am Basteln mit dem GM an meinem neuen Projekt! (Ich bin überzeugt diesmal werde ichs bis zum Ende durchziehen.... :P)

    Nun zu meienr Frage:
    ich will, dass wenn meine Spielerfigur verletzt wird der Bildschirm rot aufleuchtet für eine gewisse Zeit und dann das Rote wieder weg-faded. das konnte ich soweit auch mit nem Script (von xiebel aus nem ähnlichen, älteren Thread von mir :D) lösen.
    Folgendes Script ruft nun der Player auf, wenn er verletzt wird:

    GML-Quellcode

    1. // argument0 = zeit in frames
    2. temp = sprite_create_from_screen(0,0,640,480,false,false,false,false,0,0)
    3. for (i = 0; i < argument0; i += 1)
    4. {
    5. draw_sprite(temp,0,0,0);
    6. draw_set_color(c_red);
    7. draw_set_alpha(1-i/argument0);
    8. draw_rectangle(0,0,640,480,false);
    9. screen_refresh();
    10. sleep(1000/room_speed);
    11. }
    12. draw_sprite(temp,0,0,0);
    13. sprite_delete(temp);
    Alles anzeigen


    Problem is bei der Sache nur, das Spiel bleibt stehen während der Bildschirm rot ist, bzw. wieder zurückfaded!
    Wie kann ich das Problem mit Script lösen, ohne dass das Spiel stehen bleibt(Ohne die "sleep"-Zeile sieht man das Rote nur für ne Millisekunde)?Script deshalb, weil ich für unterschiedlich schwere Verletzungen unterschiedlich intensive/lange Rot-effekte haben will, und das ist eben am einfachsten über ein Argument wie im Script oben zu lösen.

    Danke für die Hilfe!
  • @Merko:
    image_angle?!will das Ding doch nich drehn!?

    @Verwuster
    Ja, das hatte ich mir auch schon überlegt, aber wie gesagt ich hätte gern gewusst ob das nich mit nem Script möglich is!?Dann würd ich mir den Umweg über das Objekt sparn...
    Außerdem muss ich so mehrere Objekte erstellen, um die unterschiedlich starken Verletzungen darzustellen :/

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

  • ohne Objekt geht das nicht.

    Und um verschiedene verletzungsstärken zu haben, kannst du das objekt ja einfach scriptgesteuert erstellen.

    Hier der script:

    GML-Quellcode

    1. with(instance_create(0,0,obj_ouch))
    2. {
    3. ouch=argument0;
    4. alarm[0]=ouch;
    5. }


    Dann musst du im objekt nur noch alle 60 durch ouch ersetzen und den script aufrufen.

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

  • Ähm... nicht direkt Scriplösung, aber da ich in einem meiner kleinen Projekte den gleichen Effekt hatte:
    Ich habe 'n rotes Bild gemacht (primitiv, ich weiss), welches genau 640x480 groß ist. Dann habe ich es als Sprite für ein Objekt gemacht, welches im End-Step-Event der View folgt. Im Step-Event gibt's den Code:
    if image_alpha > 0 { image_alpha -= 0.1 }. Bei allen Events die mich verletzen gibt's dann den Code obj_redmask.image_alpha = 1.
    Sieht wunderschön aus und außerdem habe ich sogar mit Mustern experimentiert, sodass etwas, was einer Schusswunde entfernt ähnlich sieht ganz kurz aufblitzt (eine Art rot-orangene Spirale, die in der Mitte schwarz ist). Schockeffekt bis zum geht nicht mehr! Hat mir persönlich und allen die das gesehen haben sehr gut gefallen.
  • Also habs jetzt doch mit nem Objekt und mit nem Sprite, welches die Größe des sichtbaren Bereichs hat, gemacht. Ungefähr so wie F4llout es beschrieben hat. Sieht halt einfach doch richtig gut aus :D hoffe das geht bei alten PCs nich so arg auf die Ressourcen...naja, danke für die Hilfe an dieser Stelle auf jeden Fall nochmal!
  • ich würde den befehl draw_rectangle verwenden, da auch ein kleines, gescaltes sprite in den grafikspeicher geladen wird.
    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
  • ein sprite das um den faktor 100 gescaled wurde aber schon ;)
    und die draw_ funktionen sind recht fix, wenn es sich um einfache formen handelt. der GM bedient sich ja an den direct 3d bzw direct draw bibliotheken.
    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