2021SC@SDUSC
目录
一、AppendJustPressedTouchIDs()函数
二、IsTouchJustReleased()函数
三、TouchPressDuration()函数
四、总结
一、AppendJustPressedTouchIDs()函数
代码如下:
func AppendJustPressedTouchIDs(touchIDs []ebiten.TouchID) []ebiten.TouchID {
origLen := len(touchIDs)
theInputState.m.RLock()
for id, s := range theInputState.touchDurations {
if s == 1 {
touchIDs = append(touchIDs, id)
}
}
theInputState.m.RUnlock()
s := touchIDs[origLen:]
sort.Slice(s, func(a, b int) bool {
return s[a] < s[b]
})
return touchIDs
}
在当前帧中创建的触摸id附加到触摸id中,并返回扩展的缓冲区。给予一个已经有足够容量的有效工作部分。
该动作是是并发且安全的。
二、IsTouchJustReleased()函数代码如下:
func IsTouchJustReleased(id ebiten.TouchID) bool {
theInputState.m.RLock()
r := theInputState.touchDurations[id] == 0 && theInputState.prevTouchDurations[id] > 0
theInputState.m.RUnlock()
return r
}
该函数的作用是给出一个布尔值,判断该触摸动作是否在有效帧内释放。
三、TouchPressDuration()函数代码如下:
func TouchPressDuration(id ebiten.TouchID) int {
theInputState.m.RLock()
s := theInputState.touchDurations[id]
theInputState.m.RUnlock()
return s
}
该函数的返回值不再是布尔值,而是int类型,它判断了该触摸动作持续的有效帧。
四、总结对于inpututil包内代码的分析基本到这里结束了,所以该篇分析内容较少。
纵观整个inpututil.go文件,其主要作用就是定义了很多函数,用来反馈鼠标。键盘。游戏手柄以及触摸的输入、释放及持续时间,是整个Ebiten游戏库中很重要的部分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)