Пример #1
0
        public void Move(charDirs moveDirection)
        {
            if (moveDirection == nextMoveDir) //this means we're turning
             {
                 currentMoveDir = nextMoveDir;
                 isWaitingToTurn = false;
             }

             switch (currentMoveDir)
             {
                 case charDirs.Up: position.Y -= pixelsMovedPerMove;
                     if ((int)position.Y % Level.tileSize == 0) setGridPositionFromPosition();
                     break;
                 case charDirs.Down: position.Y += pixelsMovedPerMove;
                     if ((int)position.Y % Level.tileSize == 0) setGridPositionFromPosition();
                     break;
                 case charDirs.Left: position.X -= pixelsMovedPerMove;
                     if ((int)position.X % Level.tileSize == 0) setGridPositionFromPosition();
                     break;
                 case charDirs.Right: position.X += pixelsMovedPerMove;
                     if ((int)position.X % Level.tileSize == 0) setGridPositionFromPosition();
                     break;
             }

             if ((int)position.Y % Level.tileSize == 0 && (int)position.X % Level.tileSize == 0) isSnappedToGrid = true;
             else isSnappedToGrid = false;
        }
Пример #2
0
        public Mobile(ContentManager myContent, SpriteBatch SpriteBatch)
        {
            timeSinceLastMove = 0;
            timeSinceLastAnimate = 0;

            isAnimated = false; //FOR NOW!!!

            mobileTiles = myContent.Load<Texture2D>("graphics\\GameScreen\\mobiletiles");
            bigmobileTiles = myContent.Load<Texture2D>("graphics\\GameScreen\\bigmobiletiles");
            spriteBatch = SpriteBatch;

            currentAnimationFrame = 0;
            SetSpriteSheetSrcRect();

            currentMoveDir = charDirs.None;
            isWaitingToTurn = false;
            isSnappedToGrid = true;
        }
Пример #3
0
        bool checkMove(int[,] levelMap, charDirs checkDirection)
        {
            int mapHeight = Level.mapHeight;
            int mapWidth = Level.mapWidth;

            switch (checkDirection)
            {
                case charDirs.Down:
                    if (gridPosition.Y == mapHeight - 1)
                    {
                        gridPosition.Y = 0;
                        setPositionFromGridPosition();
                        return true;
                    }
                    else if (levelMap[(int)gridPosition.Y + 1, (int)gridPosition.X] >= (int)mapTilesIDs.EMPTY)
                    {
                        Move(checkDirection);
                        return true;
                    }
                    break;
                case charDirs.Right:
                    if (gridPosition.X == mapWidth - 1)
                    {
                        gridPosition.X = 0;
                        setPositionFromGridPosition();
                        return true;
                    }
                    else if (levelMap[(int)gridPosition.Y, (int)gridPosition.X + 1] >= (int)mapTilesIDs.EMPTY)
                    {
                        Move(checkDirection);
                        return true;
                    }
                    break;
                case charDirs.Up:
                    if (gridPosition.Y == 0)
                    {
                        gridPosition.Y = mapHeight - 1;
                        setPositionFromGridPosition();
                    }
                    else if (levelMap[(int)gridPosition.Y - 1, (int)gridPosition.X] >= (int)mapTilesIDs.EMPTY)
                    {
                        Move(checkDirection);
                        return true;
                    }
                    break;
                case charDirs.Left:
                    if (gridPosition.X == 0)
                    {
                        gridPosition.X = mapHeight - 1;
                        setPositionFromGridPosition();
                    }
                    else if (levelMap[(int)gridPosition.Y, (int)gridPosition.X - 1] >= (int)mapTilesIDs.EMPTY)
                    {
                        Move(checkDirection);
                        return true;
                    }
                    break;

            }
            return false;
        }
Пример #4
0
 public void SetNextDir(charDirs nextDir)
 {
     isWaitingToTurn = true;
         nextMoveDir = nextDir;
 }