Example #1
0
 public void NewDirectionToBuffer(SnakeUtils.Directions newDirection)
 {
     if (!HasNewDirectionAssigned && _keyBuffer.Count == 0)
     {
         NewDirection            = newDirection;
         HasNewDirectionAssigned = true;
     }
     else
     {
         _keyBuffer.Add(newDirection);
     }
 }
Example #2
0
        public static double CalcAnimationOffsetY(SLLevel curLevel, SnakeUtils.Directions direction)
        {
            double animationOffsetY = 0.0;

            switch (direction)
            {
            case SnakeUtils.Directions.Down: animationOffsetY = 0.0; break;

            case SnakeUtils.Directions.Left: animationOffsetY = (double)(curLevel.TileSize - curLevel.SnakeOffsetY); break;

            case SnakeUtils.Directions.Right: animationOffsetY = (double)2 * (curLevel.TileSize - curLevel.SnakeOffsetY); break;

            case SnakeUtils.Directions.Up: animationOffsetY = (double)3 * (curLevel.TileSize - curLevel.SnakeOffsetY); break;
            }
            return(animationOffsetY);
        }
Example #3
0
        public SLTail(SnakeUtils.Directions direction, int tailPosX, int tailPosY, SLLevel curLevel)
            : base(direction, tailPosX, tailPosY, curLevel)
        {
            CurLevel = curLevel;
            _pos.X   = (double)(tailPosX * CurLevel.TileSize);
            _pos.Y   = (double)(tailPosY * CurLevel.TileSize);

            switch (direction)
            {
            case SnakeUtils.Directions.Up: _pos.Y += CurLevel.TileSize;
                break;

            case SnakeUtils.Directions.Right: _pos.X -= CurLevel.TileSize;
                break;

            case SnakeUtils.Directions.Down: _pos.Y -= CurLevel.TileSize;
                break;

            case SnakeUtils.Directions.Left: _pos.X += CurLevel.TileSize;
                break;
            }


            if (CurLevel.AnimatedSnake)
            {
                _initAnimation();
                SnakeUtils.InitAnimationInDict(AnimationsDict, "win", CurLevel.Animation.FilenameWin, CurLevel.Animation.WinFrames, CurLevel.LevelCanvas);
                SnakeUtils.InitAnimationInDict(AnimationsDict, "grow", CurLevel.Animation.FilenameGrow, CurLevel.Animation.GrowFrames, CurLevel.LevelCanvas);
                SnakeUtils.InitAnimationInDict(AnimationsDict, "shrink", CurLevel.Animation.FilenameShrink, CurLevel.Animation.ShrinkFrames, CurLevel.LevelCanvas);
            }
            else
            {
                TailImage = SnakeUtils.LoadImage(curLevel.Animation.FilenameTail);
                CurLevel.LevelCanvas.Children.Add(TailImage);
            }

            TailImage.SetValue(Canvas.LeftProperty, Pos.X);
            TailImage.SetValue(Canvas.TopProperty, Pos.Y + CurLevel.SnakeOffsetY);
        }
Example #4
0
        public Tail(SnakeUtils.Directions direction, int tailPosX, int tailPosY, Level curLevel)
        {
            CurLevel      = curLevel;
            _oldDirection = direction;
            TailPosX      = tailPosX;
            TailPosY      = tailPosY;

            IsGrowing = true;

            switch (direction)
            {
            case SnakeUtils.Directions.Up: TailPosY += 1;
                break;

            case SnakeUtils.Directions.Right: TailPosX -= 1;
                break;

            case SnakeUtils.Directions.Down: TailPosY -= 1;
                break;

            case SnakeUtils.Directions.Left: TailPosX += 1;
                break;
            }
        }
Example #5
0
 public bool ChangeDirection(SnakeUtils.Directions newDirection)
 {
     NewDirection = newDirection;
     return(ChangeDirection());
 }