ID:1302093 Jun 24 2013, 3:26 pm Albro1  Just a tiny little thing, figured I'd post it because why not. This is for when you want to move a certain amount of pixels one way, and a different amount another way, rather than the default directions (So you can achieve better angles with this and what-not). ```atom/movable/proc // provide a negative px to go west, positive to go east. negative py to go south, positive to go north _step(px, py) var x = 0 if(px > 0) x = EAST if(px < 0) x = WEST var y = 0 if(py > 0) y = NORTH if(py < 0) y = SOUTH step(src, x, px) step(src, y, py) ``` Jun 24 2013, 3:32 pm Kaiochao  Actually, the precise method is: ```Move(loc, dir, step_x + dx, step_y + dy) ``` It'll take a little extra to let things slide along walls, though. Jun 24 2013, 3:38 pm Albro1  Yes, but let me ask, do you have to find what location you're going to each time? I mean like do you have to determine for yourself whether you are changing tiles or not? Jun 24 2013, 3:45 pm In response to Albro1 Kaiochao  It is as it's written... ```Move(src.loc, src.dir, src.step_x + dx, src.step_y + dy) ``` Jun 24 2013, 7:54 pm ```// Credit: Lummox JRatom/movable/proc/PixelMove(dx, dy) var/d = 0 if(dx) d |= (dx>0) ? EAST : WEST if(dy) d |= (dy>0) ? NORTH : SOUTH if(abs(dx) >= abs(dy)*2) d &= 3 else if(abs(dy) >= abs(dx)*2) d &= 12 Move(loc, d, step_x+dx, step_y+dy) ``` 