示例#1
0
        public void Draw()
        {
            Triangle.Draw(_engine.Surface.Canvas);
            Planets.ForEach(p => p.Draw(_engine.Surface.Canvas));

            _engine.Surface.Canvas.DrawLine(0, Planets.Last().Transform.Y - 150, _engine.Surface.Width, Planets.Last().Transform.Y - 150, PaintFinishedLine);
        }
示例#2
0
        private void CheckEndGame()
        {
            if (Triangle.Transform.X <= -Triangle.Radius * 2 || Triangle.Transform.X >= _engine.Surface.Width + Triangle.Radius * 2)
            {
                OnGameEnd(new GameResult
                {
                    IsWon = false,
                    Balls = Balls
                });
            }

            if (Planets.Last().Transform.Y - 150 >= Triangle.Transform.Y)
            {
                for (var i = 0; i < _engine.Surface.Width; i += 10)
                {
                    var ps = (ParticlesControllerFire)_engine.Particles.GetSystem(typeof(ParticlesControllerFire));
                    ps.AddBlood(i, Planets.Last().Transform.Y - 150, new Vec2(), 1);
                }

                OnGameEnd(new GameResult
                {
                    IsWon = true,
                    Balls = Balls
                });
            }

            if ((-_engine.Surface.Canvas.Camera.Y - Triangle.Transform.Y) + _engine.Surface.Height <= 0)
            {
                OnGameEnd(new GameResult
                {
                    IsWon = false,
                    Balls = Balls
                });
            }
        }