1. в параметре по умолчанию Entity=0 - лишнее, объект всегда должен передаваться, либо нужна проверка if(Entity = 0) then return
2.
Local SpeedMove#=.04
Local SizeGrid=1
за 2 прохода ты сдвинешь объект на 2*0.4 = 0.8, а сетка 1.0 - зачем делать не кратное значение? шаг лучше делать GridSize/stepsCount.
также GridSize сделай дробным типом
3. перемещение камеры лучше убрать из этой функции, обрабатывать вне её
4. передача кодов клавиш движения в функцию, хоть и со значениями по умолчанию - тоже выглядит странно, можно сделать глобальные переменные KEY_LEFT KEY_RIGHT KEY_UP KEY_DOMW и их использовать, при необходимости их всегда можно будет переназначить