Xenko基础API笔记3- Pointers指针设备屏幕上点对应的手指触摸。
样本
这里是一个简单的示例程序,跟踪目前在屏幕上的指针和打印他们的位置。访问输入字段,类继承自@ SiliconStudio.Xenko。脚本的类。
public override async Task Execute()
{
var pointerPositions = new Dictionary<int, Vector2>();
while (true)
{
await Scheduler.NextFrame();
foreach (var pointerEvent in Input.PointerEvents)
{
switch (pointerEvent.State)
{
case PointerState.Down:
pointerPositions[pointerEvent.PointerId] = pointerEvent.Position;
break;
case PointerState.Move:
pointerPositions[pointerEvent.PointerId] = pointerEvent.Position;
break;
case PointerState.Up:
case PointerState.Out:
case PointerState.Cancel:
pointerPositions.Remove(pointerEvent.PointerId);
break;
default:
throw new ArgumentOutOfRangeException();
}
}
var positionsStr = pointerPositions.Values.Aggregate("", (current, pointer) => current + (pointer.ToString() + ", "));
logger.Info("There are currently {0} pointers on the screen located at {1}", pointerPositions.Count, positionsStr);
}
}
Remarks
- A pointer event contains information on only one pointer. If several pointers are modified simultaneously one pointer event is sent for each of them.
- Pointer events are listed by chronological order (time of the event).
- A series of pointer event for a given pointer always starts by a Down action then followed by 0 or more Move actions and ends by an Up, Out or Cancel action.
- Pointer positions are normalized. (0,0) represents the left-top corner of the screen and (1,1) represents the right-bottom corner of the screen.
- The association finger <-> pointer ID is valid only during an Down->Move->Up sequence of pointer events. So a given finger can have different IDs each time it leaves the screen.
- Pointer events' delta-values (e.g. DeltaTime and DeltaPosition) represent the changes since the last event of the same pointer (same pointer ID). Delta values are always nulls at the beginning a given pointer series of event (e.g. when the pointer state is Down).
讲话
一个指针事件包含的信息只有一个指针。如果同时有几个指针修改一个指针事件发送。
指针事件按时间顺序列出事件的(时间)。
一系列的指针事件对于一个给定的指针总是首先行动然后其次是0或多个移动操作和结束的,或取消行动。
指针位置都是标准化的。(0,0)代表工具屏幕的角落,(1,1)代表right-bottom屏幕的角落。
协会手指< - >指针ID是有效的只有在下降- > - >移动指针的事件序列。因此给定的手指可以有不同的id每次离开屏幕。
指针事件的增量值(例如DeltaTime和DeltaPosition)代表相同的变化自从上次事件指针(相同的指针ID)。δ值总是在一开始给定null指针一系列事件(例如当指针状态)。
Xenko基础API笔记3- Pointers指针设备屏幕上点对应的手指触摸。的更多相关文章
- Xenko基础API笔记2-手势
交互: Drag Gesture Type : Continuous Configuration class: GestureConfigDrag Event class: GestureEventD ...
- Xenko基础API笔记2-Enum Keys按键
Name Description A The 'a' key. Add The 'add' key. Apps The 'apps' key. Attn The 'attn' key. B The ...
- UICollectionView基础API笔记
UICollectionView系列API,属性含义笔记.在UICollectionView笔记1中我们了解了UICollectionView是什么,以及可以做什么:在UICollectionView ...
- Java编程基础阶段笔记 day 07 面向对象编程(上)
面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...
- iOS 设备屏幕上实时打印 Log 的小工具
需求 写这个小工具的想法,主要来源于很多团队都会用友盟.TalkingData 等第三方框架做自定义事件统计:不过统计代码加好之后,没有很好的方法来让测试工程师验证一下事件加上了没有,调用次数有没有重 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- object - c 语言基础 进阶笔记 随笔笔记
重点知识Engadget(瘾科技)StackOverFlow(栈溢出)Code4Apprespon魏先宇的程序人生第一周快捷键: Alt+上方向键 跳到最上面 Alt+下方向键 跳到最下面 ...
- C#RabbitMQ基础学习笔记
RabbitMQ基础学习笔记(C#代码示例) 一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法. ...
- 嵌入式Linux学习笔记(三) 字符型设备驱动--LED的驱动开发
在成功构建了一个能够运行在开发板平台的系统后,下一步就要正式开始应用的开发(这里前提是有一定的C语言基础,对ARM体系的软/硬件,这部分有疑问可能要参考其它教程),根据需求仔细分解任务,可以发现包含的 ...
随机推荐
- IT励志与指导文章合集(链接)
乔布斯在斯坦福大学的演讲 http://www.cnblogs.com/tryingx/p/3715886.html 程序员的8个级别 http://www.cnblogs.com/tryingx/p ...
- How To: Samba4 AD PDC + Windows XP, Vista and 7
dnsmasq If you've been struggling with Samba3 domain controllers and NT4 style domains working with ...
- Network Alignment(网络比对)模型
两类模型: 第一类:two-steps method 先计算两个网络之间每两个结点的相似性,再从N1*N2对相似性中抽取N1对匹配(N1<=N2). 代表算法:IsoRank 第二类:obj ...
- 更新日志(建议升级到2016.12.17) && 更新程序的方法
更新程序的方法: 1,在控制面板里点击备份当前数据库文件到磁盘,把当天获取的信息从内存写到磁盘/存储卡.2,下载最新版的源码 wget -O "infopi.zip" " ...
- Redis的三种启动方式【转】
Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make ...
- go语言的命令行库
命令行应用通常很小,程序猿们也不喜欢为它编写注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了.https://github.com/urfave/cli 这个项目因此而生.安装:go g ...
- 将 ASP.NET MVC3 Razor 项目部署到虚拟主机中
国内很多网站空间都只支持.NET 2.0 和 .NET 3.0 3.5,很少有空间商支持.NET 4的,即使有个别支持.NET 4,但是不支持MVC的默认路由访问形式. Go Daddy 的主机支持, ...
- Spark常用函数(源码阅读六)
源码层面整理下我们常用的操作RDD数据处理与分析的函数,从而能更好的应用于工作中. 连接Hbase,读取hbase的过程,首先代码如下: def tableInitByTime(sc : SparkC ...
- Struts2中Action由自己与由Spring管理的区别
struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建. 这导致在两种情况下struts.xml配置文件的略微差异. 假如: ...
- [MySQL] 号称永久解决了复制延迟问题的并行复制,MySQL5.7
一.缘由: 某天看到主从复制延时的告警有点频繁,就想着是不是彻底可以解决一下. 一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) ----->IO Thread (从) - ...