Mittels Raster - Objekt Posi prüfen

  • GM 8

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

  • Mittels Raster - Objekt Posi prüfen

    Hey Leute,

    ich war heute den kompleten Tag damit beschäftigt mir das Hirn über ein Problem zu zerbrechen ^^

    Und zwar ist es so das ich mehrere Objekte in einem Grid habe.
    Nun möchte ich mittels eines Algorithmus die Position dieser (gleichen) Objekte in einem Array mit "1" und alle anderen freien Positionen mit einer "0" makieren, damit ich diese Später auslesen kann.
    Das Grid auf dem sich die Objekte befinden ist 22x22 Felder groß mit jeweils 20x20 Pixel pro feld. Die Objekte bewegen sich nicht! Ich habe auch geschaut ob die Positionen der Objekte stimmen, aber die passen alle, allerdings scheinen die Schleifen nicht ausgeführt zu werden :(

    Und anschließend möchte ich noch die Summe der einzelnen Spalten/Zeilen berechnen

    Folgenden Code hab ich bis jetzt durchexerziert ^^

    GML-Quellcode

    1. Create:
    2. Raster=ds_grid_create(21,21);
    3. vert=0;
    4. hor=0;
    5. sum=0;
    6. Step:
    7. for (n=80;n<=480;n+=20){
    8. if(check.x==n)
    9. for (i=80;i<=480;i+=20)
    10. {
    11. if(check.y==i)
    12. ds_grid_add(Raster,hor,vert,1);
    13. else
    14. ds_grid_add(Raster,hor,vert,0);
    15. vert+=1;
    16. }
    17. hor+=1;
    18. }
    19. sum=ds_grid_get_sum(Raster,0,0,0,22);
    Alles anzeigen


    wäre cool wenn mir jemand helfen könnte ^^

    grüßle Blayde
  • Hmm...
    Schau mal hier
    Da werden auch alle Positionen durchlaufen
    Und wenn du instance_create zu ds_grind_add änderst
    und deine Koordinaten anpasst müsste das gehen
    und wenn nicht war es immerhin ein versuch Wert :D
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • var xpos, ypos;
    xpos = 0
    ypos = 0
    while(ypos < room_height){
    while(xpos < room_width){
    if point_distance(xpos,ypos,spieler.x,spieler.y) > 200
    instance_create(xpos,ypos,obj_wand)
    xpos+=64
    }
    ypos += 64
    xpos = 0
    }


    Hey Larsi, danke für deine Schnelle Antwort
    ich hab deine Version einmal ausprobiert, und zuerst hats auch nicht geklappt, jetzt hab ich aber paar Dinge geändert und jetzt funktionierts einwandfrei =)

    Danke Larsi =)

    Hier mein jetziger Code

    GML-Quellcode

    1. var xpos, ypos;
    2. xpos=80;
    3. ypos=80;
    4. while(xpos < room_width){
    5. while(ypos < room_height){
    6. if (instance_position(xpos,ypos,check)==noone){
    7. ds_grid_add(Raster,(xpos-80)/20,(ypos-80)/20,0);
    8. }
    9. else {
    10. ds_grid_add(Raster,(xpos-80)/20,(ypos-80)/20,1)
    11. test+=1;
    12. }
    13. ypos+=20
    14. }
    15. xpos += 20
    16. ypos = 0
    17. }
    Alles anzeigen


    Grüßle Blayde