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指针一系列事件(例如当指针状态)。

时间: 2024-08-26 20:14:48

Xenko基础API笔记3- Pointers指针设备屏幕上点对应的手指触摸。的相关文章

Xenko基础API笔记2-手势

交互: Drag Gesture Type : Continuous Configuration class: GestureConfigDrag Event class: GestureEventDrag Action description:The user touched the screen, performed a translation and withdraw its finger(s). Comments: The number of finger on the screen c

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 'b' key. Back The 'back' key. BrowserBack The 'browserback' key. BrowserFavorites The 'browserfavorites' key. BrowserForward The 'browserforward' key

linux应用编程基础学习笔记

********************************************************            --文件I/O-- 文件:文本文件:存储量大,速度慢,便于字符操作二进制文件:存储量小,速度快,便于存放中间结果 普通文件:设备文件: ---C标准函数---:Buffered I/O,高级文件系统,在用户空间开辟缓冲区,流操作(stream)#include<stdio.h> typedef struct{ int _fd;      //文件号 int _

QT基础学习笔记

Qt简介:1991, 挪威奇趣科技Trolltech开发的跨平台c++图形用户界面(GUI)应用程序开发.2008,被诺基亚收购2012,转让给芬兰的Digia公司. 商业版:专业版,企业版: // 开源版(GNU) 优势:1.跨平台 2.面向对象 3.丰富API 类库  4.可视化编程 5,时间驱动机制 JAVA--compile once, run anywhere    一次编译,到处运行Qt-- wrire once ,comile anywhere     一次编写,到处编译 桌面操作

linux系统驱动基础学习笔记

Linux驱动: 角色:应用程序 API      操作系统      驱动       实际硬件 功能:1.对设备进行初始化和释放2.把数据从内核传送到硬件和从硬件读取数据3.检测和处理设备出现的错误 Linux驱动程序类型:字符设备:由文件系统管理    (通过设备文件访问)块设备:由文件系统管理网络设备:由协议栈管理      (通过socket访问) 查看系统设备文件ls -l /devcat /proc/devicescat /sys/power/state 属性:文件类型   主设备

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

重点知识Engadget(瘾科技)StackOverFlow(栈溢出)Code4Apprespon魏先宇的程序人生第一周快捷键: Alt+上方向键 跳到最上面  Alt+下方向键 跳到最下面         Alt+左方向键 跳到最左面   Alt+右方向键 跳到最右面        Alt+shift+方向键  可以批量复制内容,在按方向键可以删除行        command+鼠标  纵向复制内容userInteractionEnabled  控件的交互性;类的三大特性 :工程名:首字母一

java基础巩固笔记(6)-注解

java基础巩固笔记(6)-注解 java基础巩固笔记6-注解 注解的应用结构图 元注解 自定义注解 示例代码 参考资料 注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明,注释. API Package java.lang.annotation 注解的应用结构图 调用/结构关系:A<–B<–C A,B,C解释如下: A:注解类

Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介

Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1

linux基础学习笔记——操作大全

作者:liaoyi 更新时间:2014-6-2 ****************基本操作***************** 关机 shutdown -h now    root用户               init 0              root用户halt      root+一般用户poweroff 重启shutdown -r now    root用户init6     root用户reboot            root+一般用户 注意:1.shutdown 比较灵活,可