examples: add mouse-input example
Signed-off-by: Lilis Iskandar <lilis@veand.co>
This commit is contained in:
parent
e79e66a8c0
commit
4b14f5f578
|
@ -0,0 +1,57 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
|
)
|
||||||
|
|
||||||
|
func run() (err error) {
|
||||||
|
var window *sdl.Window
|
||||||
|
|
||||||
|
if err = sdl.Init(sdl.INIT_EVERYTHING); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer sdl.Quit()
|
||||||
|
|
||||||
|
window, err = sdl.CreateWindow("Input", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, 800, 600, sdl.WINDOW_SHOWN)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer window.Destroy()
|
||||||
|
|
||||||
|
running := true
|
||||||
|
for running {
|
||||||
|
for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
|
||||||
|
switch t := event.(type) {
|
||||||
|
case *sdl.QuitEvent:
|
||||||
|
running = false
|
||||||
|
case *sdl.MouseMotionEvent:
|
||||||
|
fmt.Println("Mouse", t.Which, "moved by", t.XRel, t.YRel, "at", t.X, t.Y)
|
||||||
|
case *sdl.MouseButtonEvent:
|
||||||
|
if t.State == sdl.PRESSED {
|
||||||
|
fmt.Println("Mouse", t.Which, "button", t.Button, "pressed at", t.X, t.Y)
|
||||||
|
} else {
|
||||||
|
fmt.Println("Mouse", t.Which, "button", t.Button, "released at", t.X, t.Y)
|
||||||
|
}
|
||||||
|
case *sdl.MouseWheelEvent:
|
||||||
|
if t.X != 0 {
|
||||||
|
fmt.Println("Mouse", t.Which, "wheel scrolled horizontally by", t.X)
|
||||||
|
} else {
|
||||||
|
fmt.Println("Mouse", t.Which, "wheel scrolled vertically by", t.Y)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sdl.Delay(16)
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if err := run(); err != nil {
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue