package main import ( raylib "github.com/gen2brain/raylib-go/raylib" ) type penTool struct { Size float32 Color raylib.Color Points []raylib.Vector2 } func (p *penTool) Render() raylib.Texture2D { offset := raylib.Vector2Scale(canvas.Offset, -1) texture := raylib.LoadRenderTexture(int32(canvas.Size.X), int32(canvas.Size.Y)) raylib.BeginTextureMode(texture) raylib.ClearBackground(raylib.Fade(raylib.Black, 0)) for i := 0; i < len(p.Points)-1; i++ { startPoint := raylib.Vector2Add(p.Points[i], offset) endPoint := raylib.Vector2Add(p.Points[i+1], offset) raylib.DrawLineEx(startPoint, endPoint, p.Size, p.Color) raylib.DrawCircle(int32(startPoint.X), int32(startPoint.Y), p.Size/2, p.Color) } if len(p.Points) > 0 { endPoint := raylib.Vector2Add(p.Points[len(p.Points)-1], offset) raylib.DrawCircle(int32(endPoint.X), int32(endPoint.Y), p.Size/2, p.Color) } raylib.EndTextureMode() return texture.Texture } func (p *penTool) Draw() { for i := 0; i < len(p.Points)-1; i++ { startPoint := p.Points[i] endPoint := p.Points[i+1] raylib.DrawLineEx(startPoint, endPoint, p.Size, p.Color) raylib.DrawCircle(int32(startPoint.X), int32(startPoint.Y), p.Size/2, p.Color) } if len(p.Points) > 0 { endPoint := p.Points[len(p.Points)-1] raylib.DrawCircle(int32(endPoint.X), int32(endPoint.Y), p.Size/2, p.Color) } }