SpriterDrag

auto_tile

Sep 8th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///auto_tile()
  2.  
  3. /*
  4. **  Usage:
  5. **      auto_tile();
  6. **
  7. **  Returns:
  8. **      Set up the correct frame for a tile.
  9. */
  10.  
  11. var tile, iw, w_left, w_right, w_up, w_down, w_upleft, w_downleft, w_upright, w_downright;
  12. iw          = sprite_width;
  13. w_left      = place_meeting(x-iw,y,object_index);
  14. w_right     = place_meeting(x+iw,y,object_index);
  15. w_up        = place_meeting(x,y-iw,object_index);
  16. w_down      = place_meeting(x,y+iw,object_index);
  17. w_upleft    = place_meeting(x-iw,y-iw,object_index);
  18. w_downleft  = place_meeting(x-iw,y+iw,object_index);
  19. w_upright   = place_meeting(x+iw,y-iw,object_index);
  20. w_downright = place_meeting(x+iw,y+iw,object_index);
  21.  
  22. if (x-iw < 0            ) {w_left = 1; w_upleft = 1; w_downleft = 1;}
  23. if (x+iw > room_width-1 ) {w_right = 1; w_upright = 1; w_downright = 1;}
  24. if (y-iw < 0            ) {w_up = 1; w_upright = 1; w_upleft = 1;}
  25. if (y+iw > room_height-1) {w_down = 1; w_downright = 1; w_downleft = 1;}
  26.  
  27. tile=44
  28. if(w_up)
  29. {
  30.  tile=0
  31.  if(w_right)
  32.  {
  33.   tile=4
  34.   if(w_down)
  35.   {
  36.    tile=12
  37.    if(w_left)
  38.    {
  39.     tile=28
  40.     if(w_upright)
  41.     {
  42.      tile=29
  43.      if(w_downright)
  44.      {
  45.       tile=33
  46.       if(w_downleft)
  47.       {
  48.        tile=39
  49.        if(w_upleft)tile=43
  50.       }
  51.       else if(w_upleft)tile=40
  52.      }
  53.      else if(w_downleft)
  54.      {
  55.       tile=37
  56.       if(w_upleft)tile=41
  57.      }
  58.      else if(w_upleft)tile=36
  59.     }
  60.     else if(w_downright)
  61.     {
  62.      tile=30
  63.      if(w_downleft)
  64.      {
  65.       tile=34
  66.       if(w_upleft)tile=42
  67.      }
  68.      else if(w_upleft)tile=38
  69.     }
  70.     else if(w_downleft)
  71.     {
  72.      tile=31
  73.      if(w_upleft)tile=35
  74.     }
  75.     else if(w_upleft)tile=32
  76.    }
  77.    else if(w_upright)
  78.    {
  79.     tile=16
  80.     if(w_downright)tile=18
  81.    }
  82.    else if(w_downright)tile=17
  83.   }
  84.   else if(w_left)
  85.   {
  86.    tile=15
  87.    if(w_upright)
  88.    {
  89.     tile=25
  90.     if(w_upleft)tile=27
  91.    }
  92.    else if(w_upleft)tile=26
  93.   }
  94.   else if(w_upright)tile=8
  95.  }
  96.  else if(w_down)
  97.  {
  98.   tile=45
  99.   if(w_left)
  100.   {
  101.    tile=14
  102.    if(w_downleft)
  103.    {
  104.     tile=22
  105.     if(w_upleft)tile=24
  106.    }
  107.    else if(w_upleft)tile=23
  108.   }
  109.  }
  110.  else if(w_left)
  111.  {
  112.   tile=7
  113.   if(w_upleft)tile=11
  114.  }
  115. }
  116. else if(w_right)
  117. {
  118.  tile=1
  119.  if(w_down)
  120.  {
  121.   tile=5
  122.   if(w_left)
  123.   {
  124.    tile=13
  125.    if(w_downright)
  126.    {
  127.    tile=19
  128.     if(w_downleft)tile=21
  129.    }
  130.    else if(w_downleft)tile=20
  131.   }
  132.   else if(w_downright)tile=9
  133.  }
  134.  else if(w_left)
  135.  {
  136.   tile=46
  137.  }
  138. }
  139. else if(w_down)
  140. {
  141.  tile=2
  142.  if(w_left)
  143.  {
  144.   tile=6
  145.   if(w_downleft)tile=10
  146.  }
  147. }
  148. else if(w_left)
  149. {
  150.  tile=3
  151. }
  152.  
  153. return tile;
Add Comment
Please, Sign In to add comment