Abfrage nach Instances in Grid funktioniert nicht richtig

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

  • Abfrage nach Instances in Grid funktioniert nicht richtig

    Heyho ^^

    Ich habe ja neulich gefragt, wie ich nur eine gewisse Anzahl an Gegnern in einer Grid Zelle haben kann. Das funktioniert (eigentlich) auch, allerdings werden immer mehr Gegner vernichtet als nötig wäre.

    Sagen wir, maximal 4 Gegner sollen in einer Zelle sein, aber es werden 5 in dieser Zelle createt, dann sollte nur einer zerstört werden. Allerdings werden fast immer zu viele oder alle Gegner zerstört :/ Das erkenne ich daran, dass ich vor der Zerstörung eine "Leiche" des Gegners spawnen lasse.

    Der Code im oZombie (Gegner) Create Event:

    GML-Quellcode

    1. var xgrid;
    2. var ygrid;
    3. xgrid = floor(x/320);
    4. ygrid = floor(y/320);
    5. var gridcount;
    6. gridcount = 0;
    7. with(oZombie)
    8. {
    9. // mit jedem Gegner prüfen ob er in der eigenen Zelle ist
    10. if (floor(x/320) == xgrid && floor(y/320) == ygrid)
    11. {
    12. gridcount += 1;
    13. }
    14. }
    15. if (gridcount > 4) // Wenn zu viele da sind
    16. {
    17. instance_create(x, y, oZombieDead); // Leiche erzeugen
    18. instance_destroy(); // Zerstören
    19. }
    Alles anzeigen


    Weiß vielleicht jemand weiter? :D
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
  • Kann grad nicht so viel code schreiben, weil ich am Handy bin.
    Ich würde die Abfrage if ... > 4 direkt im with machen. So bleiben die ersten immer da, die die als 5. oder mehr aufgerufen werden, werden dann direkt innerhalb des with zerstört.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Vielen Dank Husi, aber das war gar nicht das Problem.

    Viel mehr war es meine eigene Dummheit, ich hatte mein Grid von 10x10 auf 5x5 verringert, die Werte der Abfrage blieben aber bei 320 und nicht 160. X/

    Ach ja, immer diese Flüchtigkeitsfehler :headtouch: :D
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^