我是靠谱客的博主 爱撒娇香烟,最近开发中收集的这篇文章主要介绍山东大学软件实验课程-Ebiten-基于go语言实现的2D游戏库源码分析第七篇-关于Ebiten游戏库触摸等功能函数的分析 2021SC@SDUSC一、AppendJustPressedTouchIDs()函数二、IsTouchJustReleased()函数三、TouchPressDuration()函数四、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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()函数四、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部