Objekte mal Da mal nicht

  • GM 8

    Max77771 schrieb:

    Hallo

    Habe eine frage ich brauche ein solides objekt was bei einer animation Bild 1 solid ist und bei Bild 2 nicht solid ist wie macht man sowas?


    Hier mal aus der Hilfe:
    Auch Objekte können manipuliert werden und während des Spielablaufes erstellt werden. Ändere oder lösche NIE ein Objekt von dem Instanzen vorhanden sind. Das kann zu unerwarteten Effekten führen, da die bestimmten Objekteigenschaften mit der Instanz gespeichert werden, daher hat das Verändern des Objekts nicht den gewünschten Erfolg.
    object_set_solid(ind,solid) Sollen die Instanzen die vom Objekt erstellt werden solid sein oder nicht (true oder false).

    Denke mal du verstehst was damit gemeint ist? Nicht wärend eine Instanz da ist ändern, sonst sollte es so eigendlich klappen.
    Machs so das bei nem bild wechsel wie du sagst einfach die Instanz gelöscht wird und du dann ne neue machst.

    mfg Death
    Ersteinmal danke

    Aber Ich sage jetzt einfach mal was genau ich machen möchte ich möchte eine Ampel machen wo die einzelnen stufen (Rot,Gelb,grün) in einer animation sind
    jetzt brauche ich ein objekt vor der ampel welches solid ist (Ersten 2 bilder der animation) und sonst nicht solid ist dazu habe ich jetzt auch ein code der ist aber anscheinend falsch

    GML-Quellcode

    1. if object4.image_single=0
    2. if object4.image_single=1
    3. if object4.image_single=2
    4. {solid = true;
    5. }else{
    6. solid = false;
    7. }
    Meine Webseite: jesoftmedia.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Max77771“ ()

    Schreib einfach ins step event:

    GML-Quellcode

    1. solid = floor(object4.image_index / 2);

    (Wenn image index < 2 ist, dann ist image_index/2 <1, dadurch wird aberundet -> solid ist = 0,
    ist image_index >= 2, dann ist image_index/2>1, dementsprechend ist der abgerundete wert > 1, also ist solid >= 1)

    -Tobi97
    Der Code im object4 Step-Event muss so aussehen:

    GML-Quellcode

    1. if floor(object2.image_index) = 3
    2. then solid = false
    3. else solid = true


    Warum? Weil der image_index nur genau einmal 3 ist, bei so einem image_speed, deshalb musst du abrunden. Deswegen ist dein Auto auch nur einmal kurz nach vorne gesprungen.
    Btw musst du den Code image_speed=0.0075; nur im Create-Event ausführen und nicht jedes Mal im Step-Event, weil du den image_speed nur einmal festlegen solltest und nicht in jedem Step. Das ist nicht so performant.

    Hier die überarbeitete Version:1 Hilfe auto Autos.zip

    Edit: Mir fällt grade ein, amn hätte die Abfrage auch verkürzen können:

    Spoiler anzeigen

    GML-Quellcode

    1. solid = !(floor(object2.image_index) == 3);


    MfG Trixt0r ;)

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trixt0r“ ()