public override void Update(CanvasContext2D context) { context.Save(); context.BeginPath(); context.Rect(0, 0, 800, 320); context.ClosePath(); context.Clip(); float speed = -(_level.Curve * _level.Speed * 50); if (_level.Left && _level.Speed > 0) speed += 1; if (_level.Right && _level.Speed > 0) speed -= 1; UpdateExplosions(context, speed); UpdateFlak(context, speed); foreach (Cloud cloud in _clouds) { float scale = (400 - cloud.Y) / 400; cloud.X = (cloud.X - (0.3f - speed) * scale + 2400) % 2400; context.DrawImage( _cloudImage, cloud.X - 1200, cloud.Y - (_cloudImage.NaturalHeight / 2) * scale, _cloudImage.NaturalWidth * scale, _cloudImage.NaturalHeight * scale); } context.Restore(); }
private void playDraw(CanvasContext2D context) { var wm = WindowManager; int wX = Math.Max(0, wm.X / ZombieGameConfig.TileSize - 3); int wY = Math.Max(0, wm.Y / ZombieGameConfig.TileSize - 3); int wWidth = wX + wm.Width / ZombieGameConfig.TileSize + 6; int wHeight = wY + wm.Height / ZombieGameConfig.TileSize + 6; context.Save(); context.Scale(Scale.X, Scale.Y); context.BeginPath(); context.Rect(0, 0, wm.Width, wm.Height); context.Clip(); context.ClosePath(); context.Translate(-wm.X, -wm.Y); ( (DrawMapManager) MapManager ).Draw(context, wX, wY, wWidth, wHeight); ( (DrawUnitManager) UnitManager ).Draw(context); context.Restore(); }