Go SDL2 游戏开发入门2-显示图片
前言
上一节我们创建了一个窗口, 这一节我们将在窗口上显示一张图片
显示图片
package main import ( "github.com/veandco/go-sdl2/img" "github.com/veandco/go-sdl2/sdl" ) func main() { sdl.Init(sdl.INIT_EVERYTHING) defer sdl.Quit() window, _ := sdl.CreateWindow("test", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, 670, 620, sdl.WINDOW_SHOWN) defer window.Destroy() surface, _ := window.GetSurface() defer surface.Free() surface.FillRect(nil, sdl.MapRGB(surface.Format, 0x0, 0x0, 0x0)) pngImage, _ := img.Load("../asserts/image/texture.png") //pngImage.BlitScaled(nil, surface, &sdl.Rect{X: 0, Y: 0, W: 670, H: 620}) pngImage.Blit(nil, surface, nil) window.UpdateSurface() running := true for running { for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() { switch event.(type) { case *sdl.QuitEvent: println("Quit") running = false break } } sdl.Delay(16) } }
- 以昨天的代码为框架, 为了代码的简洁, 去掉了判断 err 的部分, 只留下了最重要的部分, 实际开发过程中需加上 err 判断
- img.Load() 函数, 加载一个图片, 参数就是图片的路径, 返回的类型也是一个 surface
- pngImage.Blit() 将 pngImage 这个surface 放置在窗口的 surface 上面, 第1个参数和第3个参数可以先不管, 第2个参数就是你想要放置的 surface
- Blit 函数不会对图片进行任何处理, 如果你想缩放, 可以使用 BlitScaled, 第3个参数设置一下坐标和大小即可
- 调用刷新
- 这一节很简单, 就多加了三行代码, 添加一个图片即可