public SLSnake(SLLevel curLevel) : base(curLevel) { CurLevel = curLevel; Pos = new Point(CurLevel.SnakeStartPosX * CurLevel.TileSize, CurLevel.SnakeStartPosY * CurLevel.TileSize); //Check if the Snake is animated and set necessary animation initialization Animated = CurLevel.AnimatedSnake; if (Animated) { _initSnakeAnimation(); _initCollisionAnimation(); SnakeUtils.InitAnimationInDict(AnimationsDict, "win", CurLevel.Animation.FilenameWin, CurLevel.Animation.WinFrames, CurLevel.LevelCanvas); } else { SnakeImage = SnakeUtils.LoadImage(CurLevel.FilenameHead); CurLevel.LevelCanvas.Children.Add(SnakeImage); } SnakeImage.SetValue(Canvas.LeftProperty, Pos.X); SnakeImage.SetValue(Canvas.TopProperty, Pos.Y + CurLevel.SnakeOffsetY); }
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); }