Objekt mehrfach benutzen

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

  • Objekt mehrfach benutzen

    Ich möchte auf einem Bildschirm (room) nacheinander immer dieselbe Pflanze wachsen lassen, an verschiedenen Stellen (x,y-Wert), auf verschiedenen Ebenen (depth), in verschiedenen Größen (xscale, yscale).
    Ich habe ein Sprite mit der wachsenden Pflanze. Man könnte ja mehrere Objekte machen, immer mit demselben Sprite aber verschiedenen Eigenschaften und diese dann über eine Timeline steuern.
    Es geht sicher einfacher und effektiver. Aber wie?
  • Also ich würde das mit Arrays und For machen. Hier ein Beispiel für den Initializierungscode:

    GML-Quellcode

    1. pflanzen=8
    2. for (i=0;i<pflanzen,i+=1)
    3. {
    4. pflanze_x[i]=random(640)
    5. pflanze_y[i]=random(480)
    6. pflanze_xscale=1
    7. pflanze_yscale=1
    8. }


    Einziges Problem ist die Depth. Man kann keine andere Depth zwischen einzelen Draw Befehlen zuweisen. Das einzige was geht ist die Drawbefehle in einer Bestimmten Reinfolge festzulegen (Oben im Code : weiter Hinten, und Weiter untern im Code : Oben)
  • Ich habe bei verschiedenen steps einer timeline folgendes Ereignis geschrieben:

    {
    instance_create(400,200, pflanze);
    }

    Das Problem ist: wie erreicht man, dass das letzte Bild der Animation stehen bleibt. Jetzt wird die Animation wieder und wieder abgespielt. Bei der ersten Pflanze habe ich ein Ereignis "Animation End"
    Das erste Objekt Pflanze hat ein Ereignis Animation End. Da funktioniert das. Wie kann man das hier erreichen.
  • Das funktioniert zwar bei der ersten Pflanze, nicht aber bei denen, die ich in der Timeline mit o.a. Code geschaffen habe.

    Mittlerweile habe ich durch viel Experimentieren eine Lösung gefunden

    {
    pflanze3=object_add();
    object_set_sprite(pflanze3,spr_pflanze);
    object_event_add(pflanze3,ev_create,0,"image_xscale=0.7;")
    object_event_add(pflanze3,ev_create,0,"image_yscale=0.7;")
    object_event_add(pflanze3,ev_other,ev_animation_end,"image_index=16")
    object_event_add(pflanze3,ev_other,ev_animation_end,"image_speed=0")
    a = instance_create(450, 100,pflanze3);
    }

    Hier wird ein neues Objekt erstellT (pflanze3)
    diesem wir ein Sprite zugewiesen
    Das Sprite wird skaliert
    beim letzten Bild der Animation soll die Animation stehenbleiben

    Der Code steht im step einer timeline

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