參考資訊:
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