參考資訊:
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" import "github.com/veandco/go-sdl2/img" func main() { sdl.Init(sdl.INIT_EVERYTHING); defer sdl.Quit() window, _ := sdl.CreateWindow("main", 0, 0, 320, 240, sdl.WINDOW_SHOWN) defer window.Destroy() renderer, _ := sdl.CreateRenderer(window, -1, sdl.RENDERER_ACCELERATED) defer renderer.Destroy() png, _ := img.Load("main.png") defer png.Free() tmp, _ := sdl.CreateRGBSurface(0, 320, 240, 32, 0, 0, 0, 0) tmp.FillRect(nil, sdl.MapRGBA(tmp.Format, 255, 0, 0, 255)) png.SetColorKey(true, 0xffffff) png.Blit(nil, tmp, nil) defer tmp.Free() t, _ := renderer.CreateTextureFromSurface(tmp) defer t.Destroy() renderer.Clear() renderer.Copy(t, nil, nil) renderer.Present() sdl.Delay(3000) }
執行
$ go mod tidy $ go run -v main.go