package main import ( "fmt" "math" rl "github.com/gen2brain/raylib-go/raylib" ) const HEIGHT = 600 const WIDTH = 800 func main() { fmt.Println("hello world") rl.SetConfigFlags(rl.FlagMsaa4xHint) rl.InitWindow(WIDTH, HEIGHT, "raylib [core] example - basic window") defer rl.CloseWindow() // rl.SetTargetFPS(60) rl.BeginDrawing() rl.ClearBackground(rl.RayWhite) rl.EndDrawing() var innerCircleRadius float32 = HEIGHT/2 var outerCircleRadius float32 = innerCircleRadius/2 trace := true for !rl.WindowShouldClose() { rl.BeginDrawing() if !trace { rl.ClearBackground(rl.RayWhite) } if rl.IsKeyPressed(rl.KeySpace) { trace = !trace } angle := float64(rl.GetTime() * 1) center := rl.NewVector2(WIDTH/2, HEIGHT/2) outerCircle := rl.NewVector2(float32(math.Cos(angle)), float32(math.Sin(angle))) outerCircle = rl.Vector2Scale(outerCircle, innerCircleRadius - outerCircleRadius) outerCircle = rl.Vector2Add(outerCircle, center) if !trace { // outer circle rl.DrawCircleV(outerCircle, outerCircleRadius, rl.Black) rl.DrawCircleV(outerCircle, outerCircleRadius-1, rl.RayWhite) rl.DrawLineV(outerCircle, center, rl.Black) } var tipSize float32 = 6 if trace { tipSize = 2 } // tip angle *= -7.3 tip := rl.NewVector2(float32(math.Cos(angle)), float32(math.Sin(angle))) tip = rl.Vector2Scale(tip, outerCircleRadius) tip = rl.Vector2Add(tip, outerCircle) rl.DrawCircleV(tip, tipSize, rl.Blue) if !trace { // inner circle rl.DrawCircleLines(WIDTH/2, HEIGHT/2, innerCircleRadius, rl.Black) } rl.EndDrawing() } }