我试过在任何地方查找它并尝试了我能做的一切,但我无法让 SDL 在 Go 中工作。这是我的代码,有点草率,但我只是想让它工作,只是为了测试它,只是作为一个起点。我打算稍后清理它并摆脱所有不必要的#defines。
package main
// #cgo LDFLAGS: -lSDL -lSDL_main -lSDL_image
// #include <stdio.h>
// #include <SDL/SDL.h>
// #include <SDL/SDL_main.h>
// #include <SDL/SDL_image.h>
import "C"
import "runtime"
func init() {
runtime.LockOSThread()
}
func main() {
var image* C.SDL_Surface
var screen* C.SDL_Surface
C.SDL_Init( C.SDL_INIT_EVERYTHING )
screen = C.SDL_SetVideoMode(640, 480, 32, C.SDL_SWSURFACE)
hello = C.SDL_LoadBMP( "moe.bmp" )
C.SDL_BlitSurface(hello, nil, screen, nil)
C.SDL_Flip(screen)
C.SDL_Delay(2000)
C.SDL_FreeSurface(hello)
C.SDL_Quit()
}
这给了我“命令行参数”错误:“SDL_LoadBMP”未声明(首次在此函数中使用),并且没有任何搜索或魔法可以修复它。如果需要,我在 Ubuntu 上使用 SDL 1.0.2(我认为)
我宁愿不使用包装器,因为 Go 的唯一 SDL 1 包装器已有两年历史,而两个好的包装器用于 SDL 2,我宁愿使用 SDL 1。谢谢任何可以指导我的人。
另外,额外的问题,因为编译器永远不会让我测试它(显然),我是否在 BlitSurface 的参数中使用“nil”、“NULL”或“C.NULL”(我知道我必须#define)?
拉丁的传说
斯蒂芬大帝
慕桂英4014372
相关分类