Exemple #1
0
        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)
            {
            }
        }
Exemple #2
0
        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);
        }