public DarknessOverlay(int newRange) { disposed = false; range = newRange; buffer = new Surface(40 * Constants.TILE_WIDTH, 30 * Constants.TILE_HEIGHT); Surface holepart = new Surface(14 * Constants.TILE_WIDTH, 14 * Constants.TILE_HEIGHT); for (int x = 0; x < 14; x++) { for (int y = 0; y < 14; y++) { holepart.Blit(GraphicsManager.Tiles[10][210 + x + 14 * y], new Point(x * Constants.TILE_WIDTH, y * Constants.TILE_HEIGHT)); } } Surface hole = new Surface(28 * Constants.TILE_WIDTH, 28 * Constants.TILE_HEIGHT); hole.Blit(holepart, new Point(0,0)); hole.Blit(holepart.CreateFlippedHorizontalSurface(), new Point(hole.Width / 2, -2)); hole.Blit(holepart.CreateFlippedVerticalSurface(), new Point(0, hole.Height / 2)); hole.Blit(holepart.CreateFlippedVerticalSurface().CreateFlippedHorizontalSurface(), new Point(hole.Width / 2, hole.Height / 2 - 2)); hole = hole.CreateStretchedSurface(new Size((range) * Constants.TILE_WIDTH, (range) * Constants.TILE_HEIGHT)); buffer.Blit(GraphicsManager.Tiles[10][45].CreateStretchedSurface(new Size(40 * Constants.TILE_WIDTH, 30 * Constants.TILE_HEIGHT)), new Point(0,0)); buffer.Blit(hole, new Point(buffer.Width / 2 - hole.Width / 2, buffer.Height / 2 - hole.Height / 2)); //buffer = hole; buffer.Transparent = true; buffer.AlphaBlending = true; buffer.Alpha = 180; }
private void Events_TickEvent(object sender, TickEventArgs e) { try { font.Style = (Styles)styleArray[rand.Next(styleArray.Length)]; text = font.Render( textArray[rand.Next(textArray.Length)], Color.FromArgb(0, (byte)rand.Next(255), (byte)rand.Next(255), (byte)rand.Next(255))); switch (rand.Next(4)) { case 1: text = text.CreateFlippedVerticalSurface(); break; case 2: text = text.CreateFlippedHorizontalSurface(); break; case 3: text = text.CreateRotatedSurface(rand.Next(360)); break; default: break; } screen.Blit( text, new Rectangle(new Point(rand.Next(width - 100), rand.Next(height - 100)), text.Size)); screen.Update(); Thread.Sleep(500); } catch { //sdl.Dispose(); throw; } }