示例#1
0
 public LogoGame(Renderer render, Time time, Window window)
 {
     box = new ColoredRectangle(render, Point.Half, Size.Half, Color.Red);
     this.time = time;
     this.window = window;
     window.BackgroundColor = Color.CornflowerBlue;
 }
 protected override void Render(Renderer renderer, Time time)
 {
     var gravity = new Point(0.0f, 9.81f);
     if (DrawArea.Bottom < renderer.Screen.Bottom)
         velocity += gravity * 0.2f * time.CurrentDelta;
     base.Render(renderer, time);
 }
示例#3
0
 protected override void Render(Renderer renderer, Time time)
 {
     renderer.DrawLine(DrawArea.TopLeft, DrawArea.TopRight, Color);
     renderer.DrawLine(DrawArea.TopRight, DrawArea.BottomRight, Color);
     renderer.DrawLine(DrawArea.BottomRight, DrawArea.BottomLeft, Color);
     renderer.DrawLine(DrawArea.BottomLeft, DrawArea.TopLeft, Color);
 }
示例#4
0
 public EmptyLevel(Content content, Renderer renderer, Score score)
     : base(content, renderer, score)
 {
     for (int x = 0; x < rows; x++)
         for (int y = 0; y < columns; y++)
             bricks[x, y].Dispose();
 }
示例#5
0
 protected override void Render(Renderer renderer, Time time)
 {
     var rotSpeed = RotationSpeed * time.CurrentDelta;
     if (Rotation < 0 - rotSpeed)
         Rotation += rotSpeed;
     base.Render(renderer, time);
 }
示例#6
0
 protected override void Render(Renderer renderer, Time time)
 {
     MoveSprite();
     Color.AlphaValue = 1.0f - elapsed / timeout;
     base.Render(renderer, time);
     CheckIfTimeToDispose(time);
 }
示例#7
0
 protected override void Render(Renderer renderer, Time time)
 {
     Rotation += rotationSpeed * time.CurrentDelta;
     DrawArea.Center += velocity * time.CurrentDelta;
     velocity.ReflectIfHittingBorder(DrawArea, renderer.Screen.Viewport);
     base.Render(renderer, time);
 }
示例#8
0
        protected override void Render(Renderer renderer, Time time)
        {
            if (IsVisible && time.CheckEvery(DoDamageEvery))
                DoDamage();

            base.Render(renderer, time);
        }
示例#9
0
 protected override void Render(Renderer renderer, Time time)
 {
     screen = renderer.Screen;
     if (Rotation == 0.0f)
         DrawImage();
     else
         DrawImageWithRotation();
 }
示例#10
0
        protected override void Render(Renderer renderer, Time time)
        {
            if (areEllipsePointsOutOfDate)
                StoreEllipsePoints();

            for (int i = 1; i < ellipsePoints.Length; i++)
                renderer.DrawLine(Center + ellipsePoints[i - 1], Center + ellipsePoints[i], Color);
        }
示例#11
0
 protected override void Render(Renderer renderer, Time time)
 {
     xPosition = xPosition.Clamp(renderer.Screen.Left + HalfWidth,
         renderer.Screen.Right - HalfWidth);
     var yPosition = renderer.Screen.GetInnerPoint(0.5f, 0.9f).Y;
     DrawArea = Rectangle.FromCenter(xPosition, yPosition, Width, Height);
     base.Render(renderer, time);
 }
示例#12
0
        protected override void Render(Renderer renderer, Time time)
        {
            if (areCachedLinesOutOfDate)
                CacheLines();

            foreach (Line2D line in lines)
                renderer.DrawLine(TopLeft + line.StartPosition, TopLeft + line.EndPosition, Color);
        }
示例#13
0
 protected override void Render(Renderer renderer, Time time)
 {
     Color.AlphaValue = 1.0f - elapsed / timeout;
     base.Render(renderer, time);
     elapsed += time.CurrentDelta;
     if (elapsed >= timeout)
         Dispose();
 }
示例#14
0
 private void AddUIRight(Content content, Renderer renderer)
 {
     var rightImage = content.Load<Image>("UIRight");
     rightWidth = rightImage.PixelSize.Width / Score.QuadraticFullscreenSize.Width;
     rightBorder = new Sprite(rightImage,
         new Rectangle(DrawArea.Right - rightWidth, DrawArea.Top + topHeight, rightWidth,
             DrawArea.Height - (bottomHeight + topHeight))) { RenderLayer = ForegroundLayer };
     renderer.Add(rightBorder);
 }
示例#15
0
 public Game(Content content, Renderer renderer, Time time, Score score, RabbitsGrid rabbits)
 {
     gameOverImage = content.Load<Image>("GameOver");
     this.time = time;
     this.score = score;
     this.renderer = renderer;
     this.rabbits = rabbits;
     rabbits.InitializeRabbits();
 }
示例#16
0
 public Level(Content content, Renderer renderer, Score score)
 {
     brickImage = content.Load<Image>("Brick");
     explosionImage = content.Load<Image>("Explosion");
     explosionSound = content.Load<Sound>("BrickExplosion");
     lostBallSound = content.Load<Sound>("LostBall");
     this.renderer = renderer;
     this.score = score;
     Initialize();
 }
示例#17
0
 public RabbitsGrid(Content content, Renderer renderer, Time time, Score score)
     : base(GetColumns(renderer.Screen.Viewport), GetRows(renderer.Screen.Viewport))
 {
     rabbitImage = content.Load<Image>("Rabbit");
     deadRabbitImage = content.Load<Image>("DeadRabbit");
     malletHitSound = content.Load<Sound>("MalletHit");
     malletBloodImage = content.Load<Image>("BloodSplatter");
     this.renderer = renderer;
     this.score = score;
     this.time = time;
 }
示例#18
0
 public UserInterface(BlocksContent content, Renderer renderer)
 {
     this.renderer = renderer;
     this.content = content;
     AddBackground();
     AddGrid();
     AddScoreWindow();
     AddText();
     if (!ExceptionExtensions.IsReleaseMode)
         AddGridOutline();
 }
示例#19
0
 private void AddUITop(Content content, Renderer renderer)
 {
     var topImage = content.Load<Image>("UITop");
     topHeight = topImage.PixelSize.Height / Score.QuadraticFullscreenSize.Height;
     topBorder = new Sprite(topImage,
         new Rectangle(DrawArea.Left, DrawArea.Top, DrawArea.Width, topHeight))
     {
         RenderLayer = ForegroundLayer
     };
     renderer.Add(topBorder);
 }
示例#20
0
 public Level(Content content, Renderer renderer, Score score)
 {
     brickImage = content.Load<Image>("Brick");
     explosionImage = content.Load<Image>("Explosion");
     explosionSound = content.Load<Sound>("BrickExplosion");
     lostBallSound = content.Load<Sound>("LostBall");
     this.renderer = renderer;
     this.score = score;
     Initialize();
     renderer.Screen.ViewportSizeChanged += UpdateDrawAreas;
 }
示例#21
0
 private void AddUIBottom(Content content, Renderer renderer)
 {
     var bottomImage = content.Load<Image>("UIBottom");
     bottomHeight = bottomImage.PixelSize.Height / Score.QuadraticFullscreenSize.Height;
     bottomBorder = new Sprite(bottomImage,
         new Rectangle(DrawArea.Left, DrawArea.Bottom - bottomHeight, DrawArea.Width, bottomHeight))
     {
         RenderLayer = ForegroundLayer
     };
     renderer.Add(bottomBorder);
 }
        protected override void Render(Renderer renderer, Time time)
        {
            float frictionMultiplier = 1.0f - FrictionFactorPerSecond * time.CurrentDelta;
            velocity *= frictionMultiplier;
            rotationSpeed *= frictionMultiplier;
            Point remVelocity = velocity;
            base.Render(renderer, time);
            if (velocity == remVelocity)
                return;

            frictionMultiplier = 1.0f - FrictionFactorPerSecond * 0.5f;
            velocity *= frictionMultiplier;
        }
示例#23
0
 public UI(ItemHandler items, Score score, Content content, Renderer renderer, Window window,
     InputCommands inputCommands)
     : base(content.Load<Image>("GrassBackground"), renderer.Screen.Viewport)
 {
     window.ShowCursor = false;
     window.Title = "Game Of Death - Kill rabbits before they occupy more than 75% of the world!";
     inputCommands.Add(Key.Escape, window.Dispose);
     RenderLayer = MinRenderLayer;
     AddUITop(content, renderer);
     AddUIBottom(content, renderer);
     AddUILeft(content, renderer);
     AddUIRight(content, renderer);
     renderer.Screen.ViewportSizeChanged += () => Update(renderer);
 }
示例#24
0
 public ItemHandler(Game game, Score score, Content content, InputCommands inputCommands,
     Renderer renderer)
 {
     this.game = game;
     this.score = score;
     this.renderer = renderer;
     CreateItems(content);
     CreateIcons(content);
     SelectItem(0);
     inputCommands.AddMouseMovement(mouse => CurrentItem.UpdatePosition(mouse.Position));
     inputCommands.Add(MouseButton.Left, State.Pressing,
         mouse => SelectIconOrHandleItemInGame(mouse.Position));
     inputCommands.Add(touch => SelectIconOrHandleItemInGame(touch.GetPosition(0)));
 }
示例#25
0
 public Background(Content content, Renderer renderer)
     : base(content.Load<Image>("Background"), renderer.Screen.Viewport)
 {
     renderer.Screen.ViewportSizeChanged += () => DrawArea = renderer.Screen.Viewport;
 }
示例#26
0
 private void Update(Renderer renderer)
 {
     DrawArea = renderer.Screen.Viewport;
     topBorder.DrawArea = new Rectangle(DrawArea.Left, DrawArea.Top, DrawArea.Width, topHeight);
     bottomBorder.DrawArea = new Rectangle(DrawArea.Left, DrawArea.Bottom - bottomHeight,
         DrawArea.Width, bottomHeight);
     leftBorder.DrawArea = new Rectangle(DrawArea.Left, DrawArea.Top + topHeight, leftWidth,
         DrawArea.Height - (bottomHeight + topHeight));
     rightBorder.DrawArea = new Rectangle(DrawArea.Right - rightWidth, DrawArea.Top + topHeight,
         rightWidth, DrawArea.Height - (bottomHeight + topHeight));
 }
示例#27
0
 protected override void Render(Renderer renderer, Time time)
 {
     ShowDollars(renderer.Screen.TopLeft + new Point(0.1f, 0.042f), CurrentMoney);
     ShowKills(renderer.Screen.Viewport.TopRight + new Point(-0.09f, 0.042f), CurrentKills);
 }
示例#28
0
 protected override void Render(Renderer renderer, Time time)
 {
     renderer.DrawRectangle(Rectangle.One, new Color(0, 0, 0, Color.AlphaValue));
     base.Render(renderer, time);
 }
示例#29
0
 protected override void Render(Renderer renderer, Time time)
 {
     foreach (Brick brick in Bricks)
         brick.Render(renderer);
 }
示例#30
0
        protected override void Render(Renderer renderer, Time time)
        {
            borders = renderer.Screen.Viewport;
            if (isOnPaddle)
                UpdateOnPaddle();
            else
                UpdateInFlight(time.CurrentDelta);

            DrawArea = Rectangle.FromCenter(Position, new Size(Height));
            base.Render(renderer, time);
        }