概述
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游戏库中很重要的部分。
最后
以上就是爱撒娇香烟为你收集整理的山东大学软件实验课程-Ebiten-基于go语言实现的2D游戏库源码分析第七篇-关于Ebiten游戏库触摸等功能函数的分析 2021SC@SDUSC一、AppendJustPressedTouchIDs()函数二、IsTouchJustReleased()函数三、TouchPressDuration()函数四、总结的全部内容,希望文章能够帮你解决山东大学软件实验课程-Ebiten-基于go语言实现的2D游戏库源码分析第七篇-关于Ebiten游戏库触摸等功能函数的分析 2021SC@SDUSC一、AppendJustPressedTouchIDs()函数二、IsTouchJustReleased()函数三、TouchPressDuration()函数四、总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复