''Aufploppen'' für eine Sekunde

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

  • Vielleicht hilft Dir das weiter, aber beachte, dass ich ein Sprite verwende(nimm dafür ein beliebiges,
    meines heißt "s1UP") und sie auf einem Asset-Layer(heißt auch so: Asset_Layer) erstelle:

    Create-Event

    GML-Quellcode

    1. /// @description Init Variablen
    2. alarm[0] = room_speed * 2


    Step-Event

    GML-Quellcode

    1. /// @description Alle erstellten Sprites sanft ausblenden
    2. var _lay_id
    3. var _spr_id
    4. _lay_id = layer_get_id("Asset_Layer")
    5. var _a = layer_get_all_elements(_lay_id);
    6. for (var _i = 0; _i < array_length_1d(_a); _i++;) {
    7. layer_sprite_alpha(_a[_i], layer_sprite_get_alpha(_a[_i]) - .005) // hier kannst Du die Dauer verändern
    8. if (layer_sprite_get_alpha(_a[_i]) < 0) {
    9. layer_sprite_destroy(_a[_i])
    10. }
    11. }
    Alles anzeigen


    Alarm 0-Event

    GML-Quellcode

    1. /// @description Zeige ein 1UP an einer zufälligen Position
    2. var _x, _y
    3. _x = irandom_range(50, room_width - 50)
    4. _y = irandom_range(50, room_height - 50)
    5. layer_sprite_create("Asset_Layer", _x, _y, s1UP)
    6. alarm[0] = room_speed * 2


    Draw-Event

    GML-Quellcode

    1. /// @description Alle Sprites zeichnen
    2. with (s1UP) {
    3. draw_self()
    4. }


    Miradur

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

  • Hab das extra ein wenig ausgebaut, um Dir neue Möglichkeiten zu eröffnen(der schönste Moment ist doch,
    wenn man einen fremden Code versteht ;)), aber na ja, dann eben einfach.

    Ich habe ein Objekt 1UP erstellt(bei Dir eben dieses Splash Dings) und ein Control-Objekt, das lediglich
    zur Darstellung dient.

    1UP(Splash-Dings) wird außerhalb des Raums positioniert und enthält folgenden Code:

    Create

    GML-Quellcode

    1. /// @description Init Variablen
    2. dauer = 2 // 2 Sekunden anzeigen
    3. alarm[0] = room_speed * dauer


    Alarm 0

    GML-Quellcode

    1. /// @description Lösche Instanz
    2. instance_destroy(self)


    Draw

    GML-Quellcode

    1. /// @description Zeige 1UP an
    2. draw_self()


    oControl Objekt, welches rein zur Veranschaulichung dient:

    Step

    GML-Quellcode

    1. /// @description Zeige ein 1UP an einer zufälligen Position
    2. var _x, _y
    3. if (keyboard_check_released(vk_space)) {
    4. _x = irandom_range(50, room_width - 50)
    5. _y = irandom_range(50, room_height - 50)
    6. instance_create_layer(_x, _y, "Instances", o1UP)
    7. }


    Miradur

    PS.: einfacher gehts nur noch, wenn Du eine Variable erstellst und die runter zählst, aber das kannst
    Du Dir sicherlich selbst erarbeiten.
  • Hier noch eine, wie ich finde, sehr pfiffige Lösung, aus dem englischen Forum(User: The-any-Key):

    forum.yoyogames.com/index.php?…om-after-x-seconds.45001/

    Für Dich noch etwas aufgemotzt:

    GML-Quellcode

    1. timer += delta_time * 0.000001 // unabhängig von der Frame-Rate
    2. if (timer > 1) { // ist schon 1 Sekunde vergangen?
    3. // die Zeit ist um
    4. } else {
    5. // es dauert noch ...
    6. }


    Der Vorteil für Dich liegt auf der Hand, es ist eine Lösung ohne Timer und einfacher geht es
    wahrscheinlich nicht mehr(es darf allerdings als Herausforderung verstanden werden ;)).

    Miradur

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