public void NewDirectionToBuffer(SnakeUtils.Directions newDirection) { if (!HasNewDirectionAssigned && _keyBuffer.Count == 0) { NewDirection = newDirection; HasNewDirectionAssigned = true; } else { _keyBuffer.Add(newDirection); } }
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); }
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); }
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; } }
public bool ChangeDirection(SnakeUtils.Directions newDirection) { NewDirection = newDirection; return(ChangeDirection()); }