public void Handle(ChunksWalker walker, List <Vector2> convex) { int state = walker.State(); if (state == 15) { walker.Jump(-walker.tileWidth, -walker.tileHeight); } else if (walker.Direction() == ChunksWalker.DIRECTION_STAY) { // start point convex.Add(walker.Pos()); if (state == 1 || state == 5 || state == 13 || state == 9) { walker.WalkUp(); } else if (state == 2 || state == 3 || state == 7 || state == 6) { walker.WalkRight(); } else if (state == 8 || state == 10 || state == 11) { walker.WalkDown(); } else if (state == 4 || state == 12 || state == 14) { walker.WalkLeft(); } convex.Add(walker.Pos()); } }
public void Handle(ChunksWalker walker, List <Vector2> convex) { int direction = walker.Direction(); if (direction == ChunksWalker.DIRECTION_STAY) { return; } int state = walker.State(); if (state == 4 || state == 12 || state == 14 || (direction == ChunksWalker.DIRECTION_UP && state == 6)) { walker.WalkLeft(); convex.Add(walker.Pos()); } }