Go SDL2 游戏开发入门13-碰撞检测
前言 我决定这一节作为这个系列的最后一节了, 基本上把这些学会了应该能入门了 一些更深入的游戏开发, 就要靠你自己了 这一节就把碰撞检测讲一下 代码 这一
前言 我决定这一节作为这个系列的最后一节了, 基本上把这些学会了应该能入门了 一些更深入的游戏开发, 就要靠你自己了 这一节就把碰撞检测讲一下 代码 这一
前言 sdl2 提供了快速旋转和翻转的功能, 这一节我们就来看看如何使用 代码 代码这边我把 texture 结构体单独拎出来放到一个文件里, 代码量多了之后就要注意工程管理
前言 动画就是显示一组图片来创造一个移动的错觉 在 SDL 中就是把 texture 中的不同部分, 一帧一帧的循环显示就可以了 代码 package main import ( "github.com/veandco/go-sdl2/img" "github.com/veandco/go-sdl2/sdl" ) type Texture struct { t *sdl.Texture } func (this *Texture) LoadFromFile(path string)
前言 上一节讲了颜色调制, 这一节我们讲透明度的转换 由于透明度的变化会使得两张图片的融合, 我们还需要设置容和标志 代码 package main import ( "github.com/veandco/go-sdl2/img" "github.com/veandco/go-sdl2/sdl" ) type Texture struct { t *sdl.Texture }
前言 我们可以使用颜色调制, 来动态地改变 texture 上渲染的图片的颜色 代码 package main import ( "github.com/veandco/go-sdl2/img" "github.com/veandco/go-sdl2/sdl" ) type Texture struct { *sdl.Texture } func (t *Texture) LoadFromFile(path string) bool { img, err := img.Load(path) if err != nil { panic(err) } t.Texture, err = Grender.CreateTextureFromSurface(img) if err != nil
前言 SDL2 的教程上说这一节叫 color keying, 实在不懂这是什么意思 百度了一下说是抠图, 我实在是对应不上这两个词 通俗的解释一下吧, 就是比如你有一张图, 你想把背景
前言 SDL2 说你有时候只想渲染窗口的一部分, 那么你可以使用 viewport 好了, 没啥好说的上代码 代码 package main import ( "github.com/veandco/go-sdl2/img" "github.com/veandco/go-sdl2/sdl" ) const ( W = 670 H = 620 ) func main() { sdl.Init(sdl.INIT_EVERYTHING) defer sdl.Quit() window, _ := sdl.CreateWindow("test", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, W, H,
前言 SDL2 可以在渲染器 renderer 上直接画几何图, 下面我们就来试试吧, 很简单 代码 package main import ( "github.com/veandco/go-sdl2/sdl" ) const ( W = 670 H = 620 ) func main() { sdl.Init(sdl.INIT_EVERYTHING) defer sdl.Quit() window, _ := sdl.CreateWindow("test", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, W, H, sdl.WINDOW_SHOWN) defer window.Destroy() renderer, _ := sdl.CreateRenderer(window, -1,
前言 SDL2 宣称加入了新的渲染技术, 就是基于硬件加速的 texture 渲染, 我也不知道这个 texture 指的是什么, 不妨猜一猜, 应该是纹理图片吧 我们这里不纠结 SDL 的具体技术啦
前言 现在我们已经可以在窗口里展示我们的图片了 由于图片的数量不多, 所以我们感觉不到渲染的速度, 但当你真正开发一款游戏的时候, 你会发现渲染未经处
前言 我们现在已经会显示图片了, 这一节我们来讲一下事件驱动 原理 SDL 事件包括了键盘输入, 鼠标输入, 手柄, 等等 SDL 会将所有发生的事件放到一个队列中去,
前言 上一节我们创建了一个窗口, 这一节我们将在窗口上显示一张图片 显示图片 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))
前言 一直以来 Go 语言都是作为服务器开发的优势语言, 但我一直想用 Go 来做游戏客户端, 市面上也没有特别好的引擎, 然后就像自己玩玩 我还是选择最纯粹的 SDL