instance_in_sphere(x,y,r,object) (GM1.4)

    • Skript

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

    • instance_in_sphere(x,y,r,object) (GM1.4)

      VERWENDUNGSZWECK:
      Gibt alle Instanzen innerhalb eines Radius in einer ds_list zurück oder noone, wenn keine Instanz gefunden wurde.
      Schnelle Alternative wenn keine präzise Kollision benötigt wird. Kann auch zum vorsortieren von Kollisionen verwendet werden etc.

      SCRIPT:

      GML-Quellcode

      1. ///instance_in_sphere(x,y,r,obj)
      2. //Returns noone or ds_list containing all instances within radius
      3. var x1,y1,obj,rr,dsid,this,i;
      4. x1 = argument0;
      5. y1 = argument1;
      6. rr = argument2;
      7. obj = argument3;
      8. dsid = ds_list_create();
      9. this = id;
      10. with (obj) {
      11. if (point_distance(x,y,this.x,this.y) <= rr) {
      12. ds_list_add(dsid,id);
      13. }
      14. }
      15. if (ds_list_empty(dsid)) {
      16. ds_list_destroy(dsid);
      17. dsid = noone;
      18. }
      19. return dsid;
      Alles anzeigen

      BEISPIEL:

      GML-Quellcode

      1. var collist = instance_in_sphere(x,y,64*size,par_alive);
      2. if (collist != noone) {
      3. while (!ds_list_empty(collist)) {
      4. with (ds_list_find_value(collist,0)) {
      5. endurance -= 2;
      6. }
      7. ds_list_delete(collist,0);
      8. }
      9. }
      132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel: