我正在尝试这样做:
if event.Type == sdl.QUIT {
utils.Running = false
}
但我不能,因为当我尝试构建时,我收到此错误:
./mm.go:11: event.Type undefined (type sdl.Event has no field or method Type)
这是我尝试使用的库的相关源代码:
type Event interface{}
type CEvent struct {
Type uint32
_ [52]byte // padding
}
type CommonEvent struct {
Type uint32
Timestamp uint32
}
// WindowEvent (https://wiki.libsdl.org/SDL_WindowEvent)
type WindowEvent struct {
Type uint32
Timestamp uint32
WindowID uint32
Event uint8
_ uint8 // padding
_ uint8 // padding
_ uint8 // padding
Data1 int32
Data2 int32
}
如您所见,所有其他事件都有字段Type。我怎样才能访问这个?
解决方案
这就是我最终在Go 的 SDL2 绑定中轮询事件的方式,以防有人想知道:
func PollEvents() {
for {
if event := sdl.PollEvent(); event != nil {
switch event.(type) {
case *sdl.QuitEvent:
utils.Running = false
}
} else {
break
}
}
}
心有法竹
跃然一笑
慕莱坞森
相关分类