golang游戏开发简单易用的视频游戏编程插件库raylib-go的使用
Golang游戏开发:简单易用的视频游戏编程插件库raylib-go的使用
raylib-go简介
raylib-go是raylib的Golang绑定,raylib是一个简单易用的库,用于享受视频游戏编程的乐趣。raylib的C源代码包含在内并与绑定一起编译。请注意,第一次构建可能需要几分钟时间。
也可以在不使用cgo的情况下使用raylib-go(仅限Windows;见下面的要求)。
系统要求
Ubuntu
apt-get install libgl1-mesa-dev libxi-dev libxcursor-dev libxrandr-dev libxinerama-dev libwayland-dev libxkbcommon-dev
Fedora
dnf install mesa-libGL-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel wayland-devel libxkbcommon-devel
macOS
在macOS上,你需要Xcode或Xcode的命令行工具(如果你安装了brew,你已经有了这个)。
Windows
cgo
在Windows上你需要C编译器,如Mingw-w64或TDM-GCC。你也可以在MSYS2 shell中构建二进制文件。
要删除控制台窗口,使用-ldflags "-H=windowsgui"
构建。
purego (不使用cgo,即CGO_ENABLED=0)
从发布页面的资源中下载raylib.dll。它包含在raylib-*_win64_msvc*.zip
中。将raylib.dll放入项目的根文件夹或复制到C:\Windows\System32
进行系统范围的安装。
也可以自己构建DLL。你可以在raylib的wiki上找到更多信息。
Android
Wasm
对于web绑定,参考Raylib-Go-Wasm;它与这个仓库基本兼容。
安装
go get -v -u github.com/gen2brain/raylib-go/raylib
构建标签
drm
- 为Linux原生DRM模式构建,包括Raspberry Pi 4和其他设备 (PLATFORM_DRM)sdl
- 为SDL后端构建 (PLATFORM_DESKTOP_SDL)sdl3
- 为SDL3后端构建 (PLATFORM_DESKTOP_SDL3)rgfw
- 为RGFW后端构建 (PLATFORM_DESKTOP_RGFW)noaudio
- 禁用音频功能opengl43
- 使用OpenGL 4.3后端opengl21
- 使用OpenGL 2.1后端(桌面默认是3.3)opengl11
- 使用OpenGL 1.1后端(伪OpenGL 1.1风格)es2
- 使用OpenGL ES 2.0后端(可用于链接Google的ANGLE)es3
- 实验性支持OpenGL ES 3.0x11
- 在Wayland上强制X11兼容模式 (PLATFORM_DESKTOP/GLFW)wayland
- 强制仅Wayland模式 (PLATFORM_DESKTOP/GLFW)
文档
GoDoc上的文档。同时查看raylib备忘单。如果你有问题或需要帮助,Raylib Discord Server的#raylib-go频道有一个活跃的社区可以提供帮助。
示例代码
package main
import rl "github.com/gen2brain/raylib-go/raylib"
func main() {
// 初始化窗口:800x450像素,标题为"raylib [core] example - basic window"
rl.InitWindow(800, 450, "raylib [core] example - basic window")
defer rl.CloseWindow() // 确保在程序结束时关闭窗口
// 设置目标FPS为60
rl.SetTargetFPS(60)
// 主游戏循环,直到窗口关闭
for !rl.WindowShouldClose() {
// 开始绘制
rl.BeginDrawing()
// 清除背景为白色
rl.ClearBackground(rl.RayWhite)
// 在(190,200)位置绘制灰色文字
rl.DrawText("Congrats! You created your first window!", 190, 200, 20, rl.LightGray)
// 结束绘制
rl.EndDrawing()
}
}
查看更多按raylib模块组织的示例。
交叉编译(Linux)
要为Windows交叉编译,安装MinGW工具链。
$ CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build -ldflags "-s -w"
$ file basic_window.exe
basic_window.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows, 11 sections
$ CGO_ENABLED=1 CC=i686-w64-mingw32-gcc GOOS=windows GOARCH=386 go build -ldflags "-s -w"
$ file basic_window.exe
basic_window.exe: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows, 9 sections
要为macOS交叉编译,安装OSXCross工具链。
$ CGO_ENABLED=1 CC=x86_64-apple-darwin21.1-clang GOOS=darwin GOARCH=amd64 go build -ldflags "-linkmode external -s -w '-extldflags=-mmacosx-version-min=10.15'"
$ file basic_window
basic_window: Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>
$ CGO_ENABLED=1 CC=aarch64-apple-darwin21.1-clang GOOS=darwin GOARCH=arm64 go build -ldflags "-linkmode external -s -w '-extldflags=-mmacosx-version-min=12.0.0'"
$ file basic_window
basic_window: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>
许可证
raylib-go采用未修改的zlib/libpng许可证。
更多关于golang游戏开发简单易用的视频游戏编程插件库raylib-go的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html