示例#1
0
        public void SetHeadDirection(HeadDirection direction)
        {
            switch (direction)
            {
            case HeadDirection.Up:
                _spriteRenderer.sprite = _headBack;
                break;

            case HeadDirection.Down:
                _spriteRenderer.sprite = _headFront;
                break;

            case HeadDirection.Left:
                _spriteRenderer.sprite = _headSideways;
                if ((transform.parent.transform.localScale.x < 0 && transform.localScale.x > 0) ||
                    transform.parent.transform.localScale.x > 0 && transform.localScale.x < 0)
                {
                    TransformHelpers.FlipX(gameObject);
                }
                break;

            case HeadDirection.Right:
                _spriteRenderer.sprite = _headSideways;
                if ((transform.parent.transform.localScale.x < 0 && transform.localScale.x < 0) ||
                    transform.parent.transform.localScale.x > 0 && transform.localScale.x > 0)
                {
                    TransformHelpers.FlipX(gameObject);
                }
                break;
            }
        }
示例#2
0
    private IEnumerator HeadAnimation(HeadDirection ShootDirection)
    {
        if (gameObject.GetComponent <Player>().PlayerCanMove == false)
        {
            SpriteHead.sprite = LookingDown;
        }
        else
        {
            if (ShootDirection == HeadDirection.Down)
            {
                SpriteHead.sprite = ShootingDown;
                for (int i = 0; i < ShootingSpeed; i++)
                {
                    yield return(null);
                }
                SpriteHead.sprite = LookingDown;
                yield return(null);
            }

            if (ShootDirection == HeadDirection.Up)
            {
                SpriteHead.sprite = ShootingUp;
                for (int i = 0; i < ShootingSpeed; i++)
                {
                    yield return(null);
                }
                SpriteHead.sprite = LookingUp;
                yield return(null);
            }

            if (ShootDirection == HeadDirection.Left)
            {
                SpriteHead.flipX  = true;
                SpriteHead.sprite = ShootingLeft;
                for (int i = 0; i < ShootingSpeed; i++)
                {
                    yield return(null);
                }
                SpriteHead.sprite = LookingLeft;
                yield return(null);
            }

            if (ShootDirection == HeadDirection.Right)
            {
                SpriteHead.sprite = ShootingRight;
                for (int i = 0; i < ShootingSpeed; i++)
                {
                    yield return(null);
                }
                SpriteHead.sprite = LookingRight;
                yield return(null);
            }

            else if (ShootDirection == HeadDirection.Static)
            {
                SpriteHead.sprite = LookingDown;
            }
        }
    }
示例#3
0
 public Transition(int initialState, char read, char write, HeadDirection headDirection, int nextState)
 {
     InitialState  = initialState;
     Read          = read;
     Write         = write;
     HeadDirection = headDirection;
     NextState     = nextState;
 }
示例#4
0
 public TuringMachineNode(int _currentState, int _read, int _write, HeadDirection _headDirection, int _nextState)
 {
     currentState  = _currentState;
     read          = _read;
     write         = _write;
     headDirection = _headDirection;
     nextState     = _nextState;
 }
        public Head Move(HeadDirection direction)
        {
            switch (direction)
            {
            case HeadDirection.Left:
                return(MoveLeft());

            case HeadDirection.NoMove:
                return(this);

            case HeadDirection.Right:
                return(MoveRight());

            default:
                throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
            }
        }
示例#6
0
        public void SetHeadDirection(HeadDirection direction)
        {
            switch (direction)
            {
            case HeadDirection.Up:
                _spriteRenderer.sprite = _headBack;
                break;

            case HeadDirection.Down:
                _spriteRenderer.sprite = _headFront;
                break;

            case HeadDirection.Left:
                _spriteRenderer.sprite = _headLeft;
                break;

            case HeadDirection.Right:
                _spriteRenderer.sprite = _headRight;
                break;
            }
        }
        public Filters(string filterstring)
        {
            //declaring the FilterString which is passed in by the Burial Controller, if it is null, then it is automatically sent to "all-"
            FilterString = filterstring ?? "all-all-all-all-all";

            //spliting the FilterString into an array, split by the "-" character
            string[] filters = FilterString.Split('-');


            //sets a specific attribute equal to each position of the array
            PreservationIndex = filters[0];
            string oldChar = "%2F";
            string newChar = "/";

            PreservationIndex = PreservationIndex.Replace(oldChar, newChar);
            HeadDirection     = filters[1];
            HeadDirection     = HeadDirection.Replace(oldChar, newChar);
            Gender            = filters[2];
            HairColor         = filters[3];
            HairColor         = HairColor.Replace(oldChar, newChar);
            YearFound         = filters[4];
        }
示例#8
0
 void Setup()
 {
     _head          = FindObjectOfType <HeadDirection>();
     _head.Counter += UpdateFill;
 }
示例#9
0
        public override void Update(GameTime gameTime)
        {
            if (_muriendo)
            {
                return;
            }

            TimeSpan _realTime = gameTime.TotalRealTime;

            // -- la direccion de la cabeza
            if (_realTime - _last_change_head >= elapse_change_head)
            {
                _last_change_head = _realTime;
                _head             = (HeadDirection)_rmove.Next(4);
            }

            // -- el movimiento
            if (_realTime - _last_step_moving >= elapse_step_moving)
            {
                _last_step_moving = _realTime;
                _current_frame [(int)_moving, 0] = (_current_frame [(int)_moving, 0] + 1) % _current_frame [(int)_moving, 1];

                if (_moving != Sprite.MovingState.Stop)
                {
                    Vector2 posicionPrevia = _universePosition;

                    // tenemos que movernos en relacion al "universo"
                    _universePosition = _level.WantToMoveTo(new Rectangle((int)_universePosition.X, (int)_universePosition.Y, 40, 40), _direction);
                    _sensibleArea.X   = ((int)_universePosition.X) + 7;
                    _sensibleArea.Y   = (int)_universePosition.Y + 3;

                    if (_moving == MovingState.Walking)
                    {
                        // a cada paso hay que comprobar si tenemos que caer
                        if (_level.HaveToFall(new Rectangle((int)_universePosition.X, (int)_universePosition.Y, 40, 40)))
                        {
                            Stop();
                            Fall();
                        }
                    }
                    else
                    {
                        // cuando se est cayendo
                        if ((_moving == MovingState.Falling) && (_universePosition.Y == posicionPrevia.Y))
                        {
                            Stop();
                        }

                        // cuando se esta saltando
                        if (_moving == MovingState.Jumping)
                        {
                            if (_jumpingFase == 0)
                            {
                                if (++_jumpingStep > _jumpingSteps)
                                {
                                    _jumpingFase = 1;
                                    _direction.Y = 6;
                                }
                            }
                            else
                            {
                                // si no se ha avanzado verticalmente, entonces podemos dar por finalizada la fase de caida del salto
                                if (_universePosition.Y == posicionPrevia.Y)
                                {
                                    Stop();
                                }
                            }
                        }
                    }
                }
            }


            base.Update(gameTime);
        }
示例#10
0
 //Handles the direction and animations of the head
 public void HeadAnimationManager(HeadDirection ShootDirection)
 {
     SpriteHead.flipX = false;
     StartCoroutine(HeadAnimation(ShootDirection));
 }