Objekt am Grid erstellen lassen

  • GM 8

    Objekt am Grid erstellen lassen

    Hallo
    ich möchte gerne ein Objekt an einem 32x32 Grid erstellen lassen.
    Also, wenn ich "T" drücke sollen immer gleich mäßig nebeneinander, wenn ich mich bewege ein Objekt entstehen.
    Ich bekomme es nicht hin.
    Mein Versuch:

    Quellcode

    1. if keyboard_check_pressed(ord("T")) and place_snapped(32,32) {
    2. instance_create(x,y,obj_erde);
    3. }


    Vielen dank für euere Hilfe
    Bilder
    • Unbenannt.png

      8,87 kB, 601×450, 102 mal angesehen

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

    Ich denke der Fehler liegt darin, dass du place_snapped als Bedingung ansetzt, stattdessen sollte es nach instance_create sein:

    Wenn du z.B. einen obj_character hast, könnte es so funktionieren:

    GML-Quellcode

    1. if keyboard_check_pressed(ord("T")) && !position_meeting(obj_character.x+0,obj_character.y+0,obj_erde)
    2. instance_create(x,y,obj_erde);#obj_character.place_snapped(32,32);
    3. }


    (# sollte eigentlich ein Zeilenumbruch sein, hat bei mir aus irgendeinem Grund nicht funktioniert)


    Es kann sein, dass obj_character.place_snapped nicht funktioniert, aber auf jeden Fall sollte es für das Objekt ausgeführt werden, das sich am Raster ausrichten soll. Kann den Code zurzeit nicht testen, da ich in der Schule bin.^^


    Ist dir damit geholfen?:D
    Hmm ok,

    naja place_snapped in der if-Abfrage bringt glaube ich nichts, da es, wenn überhaupt, nur überprüft ob der Raster vorhanden ist.
    Deswegen musst du selbst das Objekt am Raster ausrichten, also nicht in der if-Abfrage.

    /EDIT … und in der if-Abfrage abfragen ob obj_erde schon an der Position vorhanden ist,
    und wenn es das nicht ist, nur dann obj_erde setzen.
    Hi

    Versuche es mal hier mit.
    Habs getestet, und bei mir funz es.
    Das habe ich bei mir in den Keyboard Event for <Left> Key eingetragen

    GML-Quellcode

    1. ////////////////////////////////////////////////
    2. // Spieler läuft nach links (Raster 32 x 32) //
    3. ///////////////////////////////////////////////
    4. {
    5. if ( !place_snapped(32,32) ) exit;
    6. speed = 4;
    7. direction = 180;
    8. sprite_index = spr_Player_links;
    9. image_speed = 1/2;
    10. if (keyboard_check_direct(ord("T")))
    11. {
    12. instance_create(x,y,obj_Quadrat)
    13. }
    14. }


    Die Werte musst du natürlich für dein Spiel abändern.
    Gruss Drachen :)