ID:161588
 
Question: Since I've implemented pixel movement with this code
mob/Move(dir)
if(EAST)
src.pixel_x += 0 + src.speed
if(WEST)
src.pixel_x -= 0 + src.speed
if(NORTH)
src.pixel_y += 0 + src.speed
if(SOUTH)
if(src.dir == SOUTH)
src.dir = WEST
else
src.dir = SOUTH

Would I use
src.Move(dir)

instead of
step(atom,dir)

??
For your question - no, still use step(). Move(loc,dir) is different than step(ref,dir). The walk() procs might still work too. With that said, your implementation is pretty bad.
In response to Kaioken

Its side scroller with pixel moving graphics so but the up and down is for something else
if(EAST), if(WEST), if(NOTH), and if(SOUTH) are all statements that will always be true. Additionally, adding something to 0 is pointless, and you should replaced "0 + src.speed" with just "src.speed"
In response to Garthor
Thank you i've fixed the procedure
In response to Choka
Unfortunately, it'll take more than basics like that to fix it. Even afterward correcting them, mobs aren't ever actually moving and changing locations (turfs); they just stay in the same turf all the time, but the visual distance in pixels from it increases. This is improper, and also will eventually break in one way or another after the pixel_x or pixel_y variables get big enough.

What you need to do is, if a certain pixel variable gets bigger than X (the number you should use depends on your icon size so it makes sense. it needs to be the pixel value in which your icon crosses over to another tile. 16 would probably be a good value) then move the mob to the next tile, and reset it's pixel variable. This way, the mobs actually change turfs.