当前位置: 首页>>代码示例>>Golang>>正文


Golang Event.MouseMotion方法代码示例

本文整理汇总了Golang中sdl.Event.MouseMotion方法的典型用法代码示例。如果您正苦于以下问题:Golang Event.MouseMotion方法的具体用法?Golang Event.MouseMotion怎么用?Golang Event.MouseMotion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sdl.Event的用法示例。


在下文中一共展示了Event.MouseMotion方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: eventLoop

func (win *window) eventLoop() {
	if win.ec == nil {
		win.ec = make(chan interface{})
	}

eloop:
	for win.events {
		var ev sdl.Event
		for ev.Poll() {
			switch ev.Type {
			case sdl.KEYUP:
				key := ev.Keyboard().Keysym.Sym
				win.ec <- gui.KeyEvent{int(-key)}
			case sdl.KEYDOWN:
				key := ev.Keyboard().Keysym.Sym
				win.ec <- gui.KeyEvent{int(key)}
			case sdl.MOUSEMOTION:
				m := ev.MouseMotion()
				win.ec <- gui.MouseEvent{
					Buttons: int(m.State),
					Loc:     image.Pt(int(m.X), int(m.Y)),
					Nsec:    time.Nanoseconds(),
				}
			case sdl.MOUSEBUTTONUP, sdl.MOUSEBUTTONDOWN:
				m := ev.MouseButton()
				win.ec <- gui.MouseEvent{
					Buttons: int(sdl.GetMouseState(nil, nil)),
					Loc:     image.Pt(int(m.X), int(m.Y)),
					Nsec:    time.Nanoseconds(),
				}
			case sdl.VIDEORESIZE:
				r := ev.Resize()
				win.ec <- gui.ConfigEvent{image.Config{
					win.Screen().ColorModel(),
					int(r.W),
					int(r.H),
				}}
			case sdl.QUIT:
				break eloop
			}
		}
	}

	close(win.ec)
}
开发者ID:cjyar,项目名称:Go-SDL,代码行数:45,代码来源:gui.go

示例2: sdlRenderLoop

func (engine *SDLEngine) sdlRenderLoop() {
	runtime.LockOSThread()
	for {
		var event sdl.Event
		for event.Poll() {
			switch event.Type {
			case sdl.MOUSEMOTION:
				m := event.MouseMotion()
				engine.mouseEventChan <- MouseEvent{int32(m.X), int32(m.Y), int32(m.Xrel), int32(m.Yrel), int32(m.State)}
			case sdl.KEYDOWN, sdl.KEYUP:
				k := event.Keyboard()
				engine.keyEventChan <- KeyEvent{uint32(k.Keysym.Sym), uint32(k.Type)}
			case sdl.QUIT:
				engine.systemEventChan <- SystemEvent{SystemQuit}
				return
			}
		}
		engine.frameEventChan <- FrameEvent{0.0}
	}
	runtime.UnlockOSThread()
}
开发者ID:chsc,项目名称:g3,代码行数:21,代码来源:sdl_engine.go


注:本文中的sdl.Event.MouseMotion方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。