place_empty funktioniert nicht richtig..

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

  • place_empty funktioniert nicht richtig..

    Hallo Leute!
    War ja schon lang nicht mehr hier :D
    Ich hab heute mal wieder den GM ausgegraben, nachdem ich ihn eig. vor nem halben Jahr oder so runtergeschmissen habe :)
    Also ich hab da eine Frage zur Funktion place_empty.
    Ich gehe bei einem Klick 24*24 Pixel um die Maus herum und kontrolliere, ob die jeweilige Koordinate frei ist.
    Doch egal, ob dort etwas ist, oder auch nicht, place_empty gibt immer true zurück.
    Hier mal mein Quelltext:

    GML-Quellcode

    1. xx=floor(mouse_x/4)*4;
    2. yy=floor(mouse_y/4)*4;
    3. //damit das object nur in 4er schritten gestetzt wird
    4. free=true;
    5. for(xxx=0;xxx<24;xxx+=1)
    6. {
    7. for(yyy=0;yyy<24;yyy+=1)
    8. {
    9. if !place_empty(xx-12+xxx,yy-12+yyy)
    10. {
    11. //das "-12" ist dafür, dass das object mittig erstellt wird (24px*24px)
    12. free=false;
    13. //sobald auch nur ein pixel belegt ist, soll das object nicht mehr erstellt werden
    14. }
    15. }
    16. }
    17. if free
    18. {
    19. instance_create(xx-12,yy-12,obj_att);
    20. }
    Alles anzeigen



    Ich hoffe ihr versteht mich und könnt mir helfen.
    Danköö :D
  • Für place_empty wird einfach die Instanz, von der aus das Script ausgeführt wird, "testweise" auf die angegebene Position gesetzt und es wird überprüft, ob es eine Kollision gibt (bei empty mit irgendeiner anderen Instanz). In diesem Falle sind dann natürlich auch die for-Schleifen unwichtig, eine Abfrage reicht. Falls du dafür die Instanz noch nicht erstellen willst, bediene dich der von copy vorgeschlagenen collision_-Funktionen

    Wenn du das mit dem Mauszeiger machen willst, musst du es, wie copy auch sagte, mit position_empty machen.