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体系的软/硬件,这部分有疑问可能要参考其它教程),根据需求仔细分解任务,可以发现包含的 ...
随机推荐
- warning 4510 with const member in struct
I write a code section as this struct My{const int a;}; OK, then set the warning level then I will g ...
- 为什么有禁用Mac系统的Spotlight的需求:
一.为什么有禁用Mac系统的Spotlight的需求: 有的网友由于使用的是相对较老的苹果电脑在运行较新的系统:也有可能你是个速度控,受不了偶尔卡卡顿顿的操作,必须将所有导致卡顿的原因全部消除:也有可 ...
- BZOJ平推计划
学习VFK大神推BZOJ,记录一下学习的东西 1004: burnside:一个置换群的等价计数=(每个置换的置换后等价情况数)/置换总数,每个置换的置换后等价情况数就是置换后没变的数 模意义下的除法 ...
- Invert Binary Tree
Invert a binary tree: 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 简单递归实现,调换左右子树,子树的所有子树结构 ...
- Eplan简单教程
鉴于AUTOCAD画电路图比较繁琐而且手动添加关联参考错误率较高,而EPLAN画电路图确实效率要高许多,也更规范.过年正好有点时间,把我这段时间学EPLAN的一些经验总结了一下,有兴趣可以看看,也省得 ...
- 跟我学Windows Azure 一 创建Windows Azure试用账号
我在网上看了很多教程,很大部分都是申请的是国外或者是香港的试用账号,而国内是由世纪互联所代理的,他的申请方式与VS2013的部署设置或多或少还是有些出入,这里我先跟大家一起过一下,在国内如何申请一个w ...
- close-vs-shutdown-socke
http://stackoverflow.com/questions/4160347/close-vs-shutdown-socket http://blog.csdn.net/jnu_simba/a ...
- unity, Shader.Find的一个坑
所以对于没有被任何东西引用,只靠在游戏运行时使用Shader.Find换上去的shader,为了双保险,可以首先放到resources文件夹里,另外,再在ProjectSettings->Gra ...
- 2016-12-15 java开发工作中,尚未做的工作
目前未涉及的工作内容: 1.将静态页导入工程,建成jsp文件.配置css.js.img文件.跳转路径 2.未用工具生成pojo dao service等源码文件 3.未签入自己写的代码 4.未搭建子系 ...
- AFNetwork ATS 网络层改造
最近一直做项目的ATS改造,期间遇到了种种问题,各种坑都记录下来, 比如iOS版本.afnetwork版本.证书(是否为自签证书).域名验证.TLS版本等等,我们项目更复杂,还使用了域名到IP映射的路 ...