Inheritance: MonoBehaviour
Exemple #1
0
        /// <summary>
        /// Tell us next row and column index
        /// </summary>
        /// <param name="direction"></param>
        /// <param name="nextRow"></param>
        /// <param name="nextColumn"></param>
        /// <returns></returns>
        private bool MoveToNextElement(MapMove direction, out int nextRow, out int nextColumn)
        {
            nextRow    = _currentRowIndex;
            nextColumn = _currentColumnIndex;

            switch (direction)
            {
            case MapMove.Up:
                nextRow--;
                break;

            case MapMove.Down:
                nextRow++;
                break;

            case MapMove.Left:
                nextColumn--;
                break;

            case MapMove.Right:
                nextColumn++;
                break;

            case MapMove.None:
            default:
                break;
            }
            // validate result logic
            if (nextRow < 0 || nextRow >= _rows || nextColumn < 0 || nextColumn >= _columns)
            {
                return(false);
            }

            return(true);
        }
Exemple #2
0
        /// <summary>
        /// Determine next direction
        /// </summary>
        /// <param name="currentDirection"></param>
        /// <param name="mapBoard"></param>
        /// <param name="characterPath"></param>
        /// <returns></returns>
        private static MapMove FindNextMove(MapMove currentDirection, MapDirections mapBoard, StringBuilder characterPath)
        {
            var direction = currentDirection;

            if (currentDirection == MapMove.None)
            {
                direction = GetDirection(MapMove.Up, MapMove.Right, mapBoard, characterPath);
                direction = GetDirection(direction, MapMove.Down, mapBoard, characterPath);
                direction = GetDirection(direction, MapMove.Left, mapBoard, characterPath);
            }
            else if (!mapBoard.IsValidMove(currentDirection))
            {
                // if current position is up or down go left or right and vice versa
                if (currentDirection == MapMove.Up || currentDirection == MapMove.Down)
                {
                    direction = GetDirection(MapMove.Left, MapMove.Right, mapBoard, characterPath);
                }
                else if (currentDirection == MapMove.Left || currentDirection == MapMove.Right)
                {
                    direction = GetDirection(MapMove.Up, MapMove.Down, mapBoard, characterPath);
                }
            }

            return(direction);
        }
Exemple #3
0
    void OnCollisionEnter2D(Collision2D other)
    {
        if (other.gameObject.name == "Player")
        {
            if (!gameOver.activeSelf)
            {
                gameOver.SetActive(true);
            }
            MapMove map1 = GameObject.Find("Map1").GetComponent <MapMove> ();
            map1.enabled = false;
            MapMove map2 = GameObject.Find("Map2").GetComponent <MapMove> ();
            map2.enabled = false;

            Rigidbody2D playerRigidbody2D = GameObject.Find("Player").GetComponent <Rigidbody2D> ();
            Destroy(playerRigidbody2D);
            if (GameSever.getSingleton().isMute == true)
            {
                Die.mute = GameSever.getSingleton().isMute;
                Hit.mute = GameSever.getSingleton().isMute;
            }
            else
            {
                Die.Play();
                Hit.Play();
            }
        }
    }
Exemple #4
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        if (other.gameObject.name == "Player")
        {
            if (!gameOver.activeSelf)
            {
                gameOver.SetActive(true);
                if (!gameHomeBtn.activeSelf)
                {
                    gameHomeBtn.SetActive(true);
                }
                if (!gameRestartBtn.activeSelf)
                {
                    gameRestartBtn.SetActive(true);
                }
                AudioManager._instance.SetAudio(AudioClipType.dead);
                AudioManager._instance.StopAudio();
            }

            MapMove map1 = GameObject.Find("MapMain").GetComponent <MapMove>();
            map1.enabled = false;
            MapMove map2 = GameObject.Find("MapMain1").GetComponent <MapMove>();
            map2.enabled = false;

            Rigidbody2D rigidbody2D = GameObject.Find("Player").GetComponent <Rigidbody2D>();
            Destroy(rigidbody2D);
        }
    }
Exemple #5
0
 private void Awake()
 {
     mapMoveController = LuigisZip.Instance.luigis[zoneId];
     if (confirmPanel == null)
     {
         //No va :(((
         confirmPanel = MenuManager.Instance.confirmPanel;
     }
 }
Exemple #6
0
        /// <summary>
        /// Return next character
        /// </summary>
        /// <param name="direction"></param>
        /// <returns></returns>
        public char?SearchNextChar(MapMove direction)
        {
            char?element = null;

            if (MoveToNextElement(direction, out int nextRow, out int nextColumn))
            {
                element = _charMap[nextRow, nextColumn];
            }

            return(element);
        }
Exemple #7
0
        /// <summary>
        /// Adjust current indexes and remember position
        /// </summary>
        /// <param name="direction"></param>
        /// <returns></returns>
        public bool AdjustIndexes(MapMove direction)
        {
            if (!MoveToNextElement(direction, out int nextRow, out int nextColumn))
            {
                return(false);
            }

            _currentPostitionArray[_currentRowIndex, _currentColumnIndex] = PositionVisited;

            _currentRowIndex    = nextRow;
            _currentColumnIndex = nextColumn;

            return(true);
        }
Exemple #8
0
 protected override void OnMouseMove(MouseEventArgs e)
 {
     base.OnMouseMove(e);
     rX = clickX - e.X;
     rY = clickY - e.Y;
     if (clickX != 0 || clickY != 0)
     {
         x = oldX + rX;
         y = Math.Min(Math.Max(0, oldY + rY), 160 * tileSize - this.ClientSize.Height);
         this.Invalidate();
         MapMove?.Invoke(this, new MapMoveEventArgs()
         {
             C = x / tileSize, R = y / tileSize
         });
     }
 }
Exemple #9
0
        /// <summary>
        /// Based on two input directions determine next move
        /// </summary>
        /// <param name="first"></param>
        /// <param name="second"></param>
        /// <param name="mapBoard"></param>
        /// <param name="characterPath"></param>
        /// <returns></returns>
        private static MapMove GetDirection(MapMove first, MapMove second, MapDirections mapBoard, StringBuilder characterPath)
        {
            var takeFirst  = first != MapMove.None && mapBoard.IsValidMove(first);
            var takeSecond = second != MapMove.None && mapBoard.IsValidMove(second);

            var firstDirectionMark  = GetDirectionMove(first, mapBoard.SearchNextChar(first));
            var secondDirectionMark = GetDirectionMove(second, mapBoard.SearchNextChar(second));

            // first check for possible invalid moves
            // only one direction is valid
            if (takeFirst && firstDirectionMark && takeSecond && secondDirectionMark)
            {
                string exceptionMessage = "Path is invalid at character: " + characterPath.ToString();
                throw new MapException(exceptionMessage);
            }
            // only one direction is valid
            else if (takeFirst && takeSecond)
            {
                string exceptionMessage = "Path is invalid at character: " + characterPath.ToString();
                throw new MapException(exceptionMessage);
            }
            // take valid move
            else if (takeFirst && firstDirectionMark)
            {
                return(first);
            }
            else if (takeSecond && secondDirectionMark)
            {
                return(second);
            }
            else if (takeFirst)
            {
                return(first);
            }
            else if (takeSecond)
            {
                return(second);
            }
            else
            {
                return(MapMove.None);
            }
        }
Exemple #10
0
        /// <summary>
        /// Determine if next character is mark for direction (left, right, up, down)
        /// </summary>
        /// <param name="currentMove"></param>
        /// <param name="nextChar"></param>
        /// <returns></returns>
        private static bool GetDirectionMove(MapMove currentMove, char?nextChar)
        {
            if (!nextChar.HasValue)
            {
                return(false);
            }

            if (currentMove == MapMove.Left || currentMove == MapMove.Right)
            {
                return(nextChar == MapConstant.FromLeftToRight);
            }
            else if (currentMove == MapMove.Up || currentMove == MapMove.Down)
            {
                return(nextChar == MapConstant.UpToDown);
            }
            else
            {
                return(false);
            }
        }
Exemple #11
0
    // Use this for initialization

    void OnCollisionEnter2D(Collision2D other)
    {
        Debug.Log("dshdjsf");
        if (other.gameObject.name == "player")
        {
            AudioManager._instance.setAudio(AudioClipType.die);
            if (!gameOver.activeSelf)
            {
                gameOver.SetActive(true);
            }


            MapMove map1 = GameObject.Find("map1").GetComponent <MapMove>();
            map1.enabled = false;
            MapMove map2 = GameObject.Find("map2").GetComponent <MapMove>();
            map2.enabled = false;

            Rigidbody2D playerRigidbody2D = GameObject.Find("player").GetComponent <Rigidbody2D> ();
            Destroy(playerRigidbody2D);
        }
    }
Exemple #12
0
        /// <summary>
        /// Determine if we can move to this element
        /// </summary>
        /// <param name="direction"></param>
        /// <returns></returns>
        public bool IsValidMove(MapMove direction)
        {
            var element = SearchNextChar(direction);

            return(element.HasValue && element != MapConstant.Blank);
        }