public override SKSurface Draw(GameState currentState, long frame) { Clear(); for (int i = 0; i < Math.Min(currentState.PlayerCharacter.Skills.Count, MaxNumberOfSkills); ++i) { Skill skill = currentState.PlayerCharacter.Skills [i]; SKRect rect = RectForSkill(i); Canvas.DrawRect(rect, CellBorder); SKRect bitmapRect = new SKRect(rect.Left + Padding, rect.Top + Padding, rect.Right - Padding, rect.Bottom - Padding); Canvas.DrawBitmap(Loader.Tileset, Loader.GetRect(IDForSkill(skill)), bitmapRect, Styles.AntialiasPaint); if (skill.UnderCooldown) { DrawCooldownOverlay(skill, bitmapRect); } if (ShowHotkey) { DrawHotkeyOverlay(i, rect, skill.UnderCooldown); } } return(Surface); }
public void Render(SKCanvas canvas, GameState state, Character c, int x, int y, long frame) { if (StartingFrame == long.MinValue) { StartingFrame = frame; } if (ShouldShow(frame)) { Point offset = OffsetForSlot(c.GetSlot(state)); SKRect bitmapRect = SKRect.Create(x + offset.X, y + offset.Y, 32, 32); canvas.DrawBitmap(Loader.Tileset, Loader.GetRect(26), bitmapRect, Styles.AntialiasPaint); } }
static void DrawBackgroundLayer(SKSurface surface, MapLoader mapLoader, TilesetLoader tilesetLoader, int index, float scale) { var terrainTiles = mapLoader.GetTiles(index); for (int x = 0; x < terrainTiles.GetLength(0); ++x) { for (int y = 0; y < terrainTiles.GetLength(1); ++y) { int id = terrainTiles [x, y] - 1; var tilesetRect = tilesetLoader.GetRect(id); var renderRect = GetRenderRect(x, y, mapLoader.TileSize, scale); surface.Canvas.DrawBitmap(tilesetLoader.Tileset, tilesetRect, renderRect); } } }
public override SKSurface Draw(GameState currentState, long frame) { State = currentState; Canvas.Clear(SKColors.Transparent); if (IsEnabled(currentState)) { Character activeCharacter = currentState.ActiveCharacter; for (int i = 0; i < activeCharacter.Skills.Length; ++i) { Skill s = activeCharacter.Skills[i]; int y = 50 + (25 * i); if (i == Selected) { SKRect bitmapRect = SKRect.Create(15, y - 22, 32, 32); Canvas.DrawBitmap(Loader.Tileset, Loader.GetRect(296), bitmapRect, Styles.AntialiasPaint); } Canvas.DrawText(s.CosmeticName, new SKPoint(50, y), s.Available ? Styles.TextPaint : Styles.DarkTextPaint); } } return(Surface); }
void DrawHUD(SKCanvas canvas, Character c, int x, int y) { const int BackgroundOffsetX = 5; const int BackgroundOffsetY = 15; const int HUDWidth = 105; int HUDHeight = c.StatusEffects.Length > 0 ? 60 : 40; const int LineHeight = 18; const int StatusIconHeightGap = 4; const int StatusIconWidthGap = 20; canvas.DrawRect(SKRect.Create(x + StyleInfo.TextXOffset - BackgroundOffsetX, y + StyleInfo.TextYOffset - BackgroundOffsetY, HUDWidth, HUDHeight), Styles.TextBackground); canvas.DrawText(c.Name, new SKPoint(x + StyleInfo.TextXOffset, y + StyleInfo.TextYOffset), Styles.TextPaint); canvas.DrawText($"HP {c.Health.Current}/{c.Health.Max}", new SKPoint(x + StyleInfo.TextXOffset, LineHeight + y + StyleInfo.TextYOffset), Styles.TextPaint); int iconOffset = 0; foreach (StatusEffect effect in c.StatusEffects) { var bitmapRect = SKRect.Create(x + StyleInfo.TextXOffset + (iconOffset * StatusIconWidthGap), LineHeight + StatusIconHeightGap + y + StyleInfo.TextYOffset, 16, 16); canvas.DrawBitmap(StatusIconLoader.Tileset, StatusIconLoader.GetRect(GetStatusEffectNumber(effect)), bitmapRect, Styles.AntialiasPaint); iconOffset++; } }
void DrawHUD(SKCanvas canvas, Character c, int x, int y) { const int BackgroundOffsetX = 5; const int BackgroundOffsetY = 15; const int HUDWidth = 85; const int HUDHeight = 60; const int LineHeight = 18; const int StatusIconHeightGap = 4; const int StatusIconWidthGap = 20; canvas.DrawRect(SKRect.Create(x + StyleInfo.TextXOffset - BackgroundOffsetX, y + StyleInfo.TextYOffset - BackgroundOffsetY, HUDWidth, HUDHeight), Styles.TextBackground); canvas.DrawText(c.Name, new SKPoint(x + StyleInfo.TextXOffset, y + StyleInfo.TextYOffset), Styles.TextPaint); canvas.DrawText($"HP {c.Health.Current}/{c.Health.Maximum}", new SKPoint(x + StyleInfo.TextXOffset, LineHeight + y + StyleInfo.TextYOffset), Styles.TextPaint); // TestData - Status Icons int iconOffset = 0; foreach (int i in new int [] { 33, 42, 148, 36 }) { var bitmapRect = SKRect.Create(x + StyleInfo.TextXOffset + (iconOffset * StatusIconWidthGap), LineHeight + StatusIconHeightGap + y + StyleInfo.TextYOffset, 16, 16); canvas.DrawBitmap(StatusIconLoader.Tileset, StatusIconLoader.GetRect(i), bitmapRect, Styles.AntialiasPaint); iconOffset++; } }
void DrawCharacter(SKCanvas canvas, int x, int y, long frame) { var tilesetRect = CharacterLoader.GetRect(StartingID + CalculateAnimationOffset(frame)); canvas.DrawBitmap(CharacterLoader.Tileset, tilesetRect, SKRect.Create(x + StyleInfo.RenderXOffset, y + StyleInfo.RenderYOffset, StyleInfo.RenderWidth, StyleInfo.RenderHeight)); }