使用Golang和SDL开发游戏时遇到的问题

使用Golang和SDL开发游戏时遇到的问题 我对Go语言和编程总体来说还相当陌生。 我参加了一个游戏开发课程,那位YouTuber提到了一些包,并在屏幕上写下了这个(go get github.com/veandco/go-sdl2/sdl)。有人知道如何安装并运行它吗?

2 回复

和那位YouTuber的做法完全一样,可能吧…

不过那看起来像是安装依赖项的旧方法。如今你应该使用Go模块来管理依赖项及其版本。

另外,对于那个库,你可能还需要安装一个系统库SDL2,因为我认为那位YouTuber安装的库只是一个将调用委托给那个C库的包装器。

更多关于使用Golang和SDL开发游戏时遇到的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


首先,确保你已经安装了Go环境。然后,在终端或命令行中运行以下命令来安装SDL2包:

go get github.com/veandco/go-sdl2/sdl

接下来,你需要安装SDL2的C库。在Ubuntu或Debian系统上,可以运行:

sudo apt-get install libsdl2-dev

在macOS上,使用Homebrew:

brew install sdl2

在Windows上,你可以从SDL官网下载开发库,并设置环境变量。

安装完成后,创建一个简单的Go程序来测试。例如,创建一个main.go文件:

package main

import (
    "github.com/veandco/go-sdl2/sdl"
)

func main() {
    if err := sdl.Init(sdl.INIT_EVERYTHING); err != nil {
        panic(err)
    }
    defer sdl.Quit()

    window, err := sdl.CreateWindow("test", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED,
        800, 600, sdl.WINDOW_SHOWN)
    if err != nil {
        panic(err)
    }
    defer window.Destroy()

    renderer, err := sdl.CreateRenderer(window, -1, sdl.RENDERER_ACCELERATED)
    if err != nil {
        panic(err)
    }
    defer renderer.Destroy()

    renderer.SetDrawColor(0, 0, 0, 255)
    renderer.Clear()
    renderer.Present()

    running := true
    for running {
        for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
            switch event.(type) {
            case *sdl.QuitEvent:
                running = false
            }
        }
        sdl.Delay(16)
    }
}

运行程序:

go run main.go

如果一切正常,你会看到一个黑色窗口。这确认了SDL2包已正确安装并运行。

回到顶部