參考資訊:
https://github.com/veandco/go-sdl2
https://github.com/veandco/go-sdl2-examples
https://pkg.go.dev/github.com/veandco/go-sdl2#section-readme
初始化
$ go version go version go1.24.4 linux/amd64 $ go mod init main
main.go
package main import "github.com/veandco/go-sdl2/sdl" func main() { var rt sdl.Rect sdl.Init(sdl.INIT_EVERYTHING); defer sdl.Quit() window, _ := sdl.CreateWindow("main", 0, 0, 320, 240, sdl.WINDOW_SHOWN) defer window.Destroy() screen, _ := window.GetSurface() screen.FillRect(nil, sdl.MapRGBA(screen.Format, 255, 0, 0, 255)) rt.X = 50 rt.Y = 50 rt.W = 30 rt.H = 30 screen.FillRect(&rt, 0xff00ff00) rt.X = 100 rt.Y = 100 rt.W = 50 rt.H = 100 screen.FillRect(&rt, 0xff0000ff) window.UpdateSurface() sdl.Delay(3000) }
執行
$ go mod tidy $ go run -v main.go