样本
这里是一个简单的示例程序,跟踪目前在屏幕上的指针和打印他们的位置。访问输入字段,类继承自@ 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指针设备屏幕上点对应的手指触摸。的更多相关文章

  1. Xenko基础API笔记2-手势

    交互: Drag Gesture Type : Continuous Configuration class: GestureConfigDrag Event class: GestureEventD ...

  2. 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 ...

  3. UICollectionView基础API笔记

    UICollectionView系列API,属性含义笔记.在UICollectionView笔记1中我们了解了UICollectionView是什么,以及可以做什么:在UICollectionView ...

  4. Java编程基础阶段笔记 day 07 面向对象编程(上)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  5. iOS 设备屏幕上实时打印 Log 的小工具

    需求 写这个小工具的想法,主要来源于很多团队都会用友盟.TalkingData 等第三方框架做自定义事件统计:不过统计代码加好之后,没有很好的方法来让测试工程师验证一下事件加上了没有,调用次数有没有重 ...

  6. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  7. object - c 语言基础 进阶笔记 随笔笔记

    重点知识Engadget(瘾科技)StackOverFlow(栈溢出)Code4Apprespon魏先宇的程序人生第一周快捷键: Alt+上方向键 跳到最上面  Alt+下方向键 跳到最下面      ...

  8. C#RabbitMQ基础学习笔记

    RabbitMQ基础学习笔记(C#代码示例) 一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法. ...

  9. 嵌入式Linux学习笔记(三) 字符型设备驱动--LED的驱动开发

    在成功构建了一个能够运行在开发板平台的系统后,下一步就要正式开始应用的开发(这里前提是有一定的C语言基础,对ARM体系的软/硬件,这部分有疑问可能要参考其它教程),根据需求仔细分解任务,可以发现包含的 ...

随机推荐

  1. c# 映射对比测试

    c#  映射对比测试(测试对象,测试案例,测试结果) 测试组件对象: TinyMapper-EmitMapper-AutoMapper-NLiteMapper-Handwritten 对比测试案例: ...

  2. Quartus II 增量编译

    在开发阶段,经常需要改代码,而且往往只改局部代码,但是编译的时候,通常会全部重新编译,这会很浪费时间,使得开发效率大大降低.那么有没有一种方法能够降低不必要的编译时间呢?通过查询Quartus II ...

  3. EHcache缓存框架详解

    EhCache是一个纯Java的进程内缓存框架,具有快速.精干等特点,也是Hibernate中默认的CacheProvider. 归纳一下它大概具有一下几个特点: 1. 快速. 2. 简单. 3. 多 ...

  4. 关于无法使用xx-pc附加到应用程序iisexpress.exe

    问题表现:1.本地调试F5不能调试 2.IIS调试 附加到进程 提示无法访问 解决方法: 用管理员身份在cmd中运行:netsh winsock reset,然后重启.

  5. 承接Unreal4外包虚幻外包,北京正规公司

    VR产业链的现状 去年Facebook 20亿美元收购虚拟现实技术Oculus VR,提高了大家对VR设备.而国内,红杉资本投资蚁视,更是引爆了资本市场对VR/AR 的关注.其中有四块是我们较为常见且 ...

  6. JDBC连接实例

    package com.javaee.corejava; import java.sql.Connection; import java.sql.DriverManager; import java. ...

  7. 黄聪:使用srvany.exe将任何程序作为Windows服务运行

    srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说sr ...

  8. JPA(Hibernate) @OneToMany 两种例子

    环境:Spring Data Jpa,hibernate或者其他jpa实现也是一样的:Spring Boot 场景:User和Role,一个User要对应多个Role. 第一种方式,没有中间关系表,直 ...

  9. 【学】React的学习之旅3 - 添加事件(onClick)

    button除了用<input type="button">之外,还可以直接用<button></button>来创建,而2个标签的中间的内容就 ...

  10. 在macos上利用vmware fusion安装Ubuntu

    1. 安装vmware fusion http://www.vmware.com/products/fusion 下载以后,可以在网上找注册码,最好下载最新的,这里下载的是7的版本 2. 下载ubun ...