mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-02 23:23:55 +00:00
add an cbitmap example [#169]
This commit is contained in:
parent
992b30aac4
commit
0b009ab521
53
examples/cbitmap/main.go
Normal file
53
examples/cbitmap/main.go
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/go-vgo/robotgo"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
bmp, free := loadBitmaps("start.png", "chest.png", "eat.png")
|
||||||
|
defer free()
|
||||||
|
|
||||||
|
for {
|
||||||
|
clickBitmap(bmp["start.png"], false)
|
||||||
|
clickBitmap(bmp["chest.png"], true)
|
||||||
|
clickBitmap(bmp["eat.png"], false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadBitmaps(files ...string) (bitmaps map[string]robotgo.Bitmap, free func()) {
|
||||||
|
freeFuncs := make([]func(), 0)
|
||||||
|
bitmaps = make(map[string]robotgo.Bitmap)
|
||||||
|
for _, f := range files {
|
||||||
|
bitmap, freeFunc := readBitmap(f)
|
||||||
|
bitmaps[f] = bitmap
|
||||||
|
freeFuncs = append(freeFuncs, freeFunc)
|
||||||
|
}
|
||||||
|
|
||||||
|
free = func() {
|
||||||
|
for key := range freeFuncs {
|
||||||
|
freeFuncs[key]()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bitmaps, free
|
||||||
|
}
|
||||||
|
|
||||||
|
func readBitmap(file string) (bitmap robotgo.Bitmap, free func()) {
|
||||||
|
cBitmap := robotgo.OpenBitmap(file)
|
||||||
|
bitmap = robotgo.ToBitmap(cBitmap)
|
||||||
|
free = func() {
|
||||||
|
robotgo.FreeBitmap(cBitmap)
|
||||||
|
}
|
||||||
|
return bitmap, free
|
||||||
|
}
|
||||||
|
|
||||||
|
func clickBitmap(bmp robotgo.Bitmap, doubleClick bool) bool {
|
||||||
|
fx, fy := robotgo.FindBitmap(robotgo.ToCBitmap(bmp))
|
||||||
|
if fx != -1 && fy != -1 {
|
||||||
|
robotgo.MoveMouse(fx, fy)
|
||||||
|
robotgo.MouseClick("left", doubleClick)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user