private void Move() { Point3D temp = this.position.Copy(); temp.MoveFor(vector, 1); Grid targetGrid = World.GetAt(temp); if (targetGrid == null) { return; } if (targetGrid.Obj != null) { if (targetGrid.Obj is Food) { EatFood((Food)targetGrid.Obj); } else { return; } } World.Swap(position, temp); RegisterEvent(ObjEvent.posit); // 當照著路線走時,會把走過的標記移除. if (route != null && route.Count > 0) { if (route.Peek() == this.Vect) // 照著路線走. { route.Pop(); } else // 偏離路線,原本的路線已經沒用了. { route = null; } } }