作者:gnanderso
项目:Go-SD
// Gets a snapshot of the current keyboard state
func GetKeyState() []uint8 {
var numkeys C.int
array := C.SDL_GetKeyState(&numkeys)
var ptr = make([]uint8, numkeys)
*((**C.Uint8)(unsafe.Pointer(&ptr))) = array // TODO
return ptr
}
作者:rsaarel
项目:teratoge
func IsKeyDown(key KeySym) bool {
var numKeys C.int
keys := C.SDL_GetKeyState(&numKeys)
if int(key) < 0 || int(key) >= int(numKeys) {
return false
}
// Keys is a byte array
// XXX: Is this idiomatic for accessing C arrays?
result := (*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(keys)) + uintptr(key)))
return *result != 0
}
作者:kearsle
项目:Go-SD
// Gets a snapshot of the current keyboard state
func GetKeyState() []uint8 {
GlobalMutex.Lock()
var numkeys C.int
array := C.SDL_GetKeyState(&numkeys)
var ptr = make([]uint8, numkeys)
*((**C.Uint8)(unsafe.Pointer(&ptr))) = array // TODO
GlobalMutex.Unlock()
return ptr
}
作者:beora
项目:fung
func GetKeyState() []uint8 {
ks := C.SDL_GetKeyState(nil)
ptr := (*[K_LAST]byte)(unsafe.Pointer(ks))
res := ptr[0:K_LAST]
return res
}