private void MoveToPosition(Vector2 position) { focusedPosition = position; int tpX = (int)((position.x + 1f) / 2f); int tpY = (int)(GameController.instance.level.Height - ((position.y + 1f) / 2f)); position = new Vector2(tpX, tpY); int mpX = (int)((positionX + 1f) / 2f); int mpY = (int)(GameController.instance.level.Height - ((positionY + 1f) / 2f)); Vector2 myPosition = new Vector2(mpX, mpY); StrikerIAState strikerState = new StrikerIAState(position, myPosition, GameController.instance.level); GenericAI.AAsterisk a = new GenericAI.AAsterisk(strikerState, new List <GenericAI.Operator>() { new MoveUpOperator(), new MoveDownOperator(), new MoveLeftOperator(), new MoveRightOperator() }, new StrikerHeuristic()); a.OnSearchComplete += a_OnSearchComplete; a.StartSearch(); while (a.IsRunning) { } }
public override State Apply(State state) { StrikerIAState strikerState = (StrikerIAState)state; Vector2 newPosition = new Vector2(strikerState.position.x, strikerState.position.y - 1); Element e = strikerState.level.GetMapTileNormalized((int)newPosition.x, (int)newPosition.y); if (e.canWalk) { strikerState = (StrikerIAState)state.Copy(); strikerState.position = newPosition; } return(strikerState); }