4.如何实现触控操作
触控操作概述:
随着APPLE、Samsung、SONY等众多公司,将掌机、电脑和手机等产品在触控领域的不断探索,以触控为操作的机型越来越多的被投放到市场当中。触控游戏、触控软件的大量被开发以和应用,宣布着触控时代的到来。跑酷游戏作为一直以来备受玩家亲睐的游戏,大量的移植到触控平台上。当触控游戏操作界面,摆脱了传统的点控操作,又是怎样实现玩家与游戏交互的呢?这就较之以前的跑酷游戏,需要我们先对在触控板上的操作进行指令判定,进而游戏角色根据相应指令执行相应操作。
原理:
如图4-1所示

图4-1
实现方法:
步骤1:
在游戏的主循环里会对移动输入做Tick检测,在Tick中,会记录手指的坐标移动位置。
| 01 | if(Input.GetScreenTouchCount () == 1) | 
 
| 03 |  intid = Input.GetScreenTouchID (0); | 
 
| 04 |  if(Input.IsFingerDown (id)) | 
 
| 05 |  //检测到手指按压屏幕,获取当前像素点坐标,并将手指沿X、Y轴方向位移初始化为0 | 
 
| 07 |   m_pixelPos = Input.GetScreenTouchPixelPosition (id); | 
 
| 12 |  if(Input.IsFingerPressing (id)) | 
 
| 14 |   Vector2 temp = Input.GetScreenTouchPixelPosition (id); | 
 
| 15 |   m_Bias = temp - m_pixelPos;} | 
 
| 17 |   if(Input.IsFingerUp (id)) | 
 
| 19 |    Vector2 temp = Input.GetScreenTouchPixelPosition (id); | 
 
| 20 |    m_Bias = temp - m_pixelPos; | 
 
 
 
步骤2:
可以根据这个位置信息,来判定玩家做出了左右移动或者上下滑动中哪种指令。开发者可根据自行设定的上划屏对应角色操作,来完成得到指令操作之后的角色相关操作内容。
| 01 | publicboolIsLeftSlide() | 
 
| 04 |  if(Input.GetScreenTouchCount()== 1) | 
 
| 06 |   intid = Input.GetScreenTouchID(0); | 
 
| 07 |   floatx = ABS(m_Bias.X); | 
 
| 08 |   floaty = ABS(m_Bias.Y); | 
 
| 24 | privatefloatABS(floatf)        | 
 
 
 
 
												
												
						- 简单物联网:外网访问内网路由器下树莓派Flask服务器
		最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ... 
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
		前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ... 
- 外网访问内网Docker容器
		外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器  ... 
- 外网访问内网SpringBoot
		外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ... 
- 外网访问内网Elasticsearch WEB
		外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1.  ... 
- 怎样从外网访问内网Rails
		外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ... 
- 怎样从外网访问内网Memcached数据库
		外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ... 
- 怎样从外网访问内网CouchDB数据库
		外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ... 
- 怎样从外网访问内网DB2数据库
		外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ... 
- 怎样从外网访问内网OpenLDAP数据库
		外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ... 
随机推荐
	
									- 如何设置Samza的metrics
			参考这个里边对API的调用 http://samza.incubator.apache.org/learn/documentation/0.7.0/container/metrics.html 参考这 ... 
- 云风的BLOG❳可靠 UDP 传输
			http://mp.weixin.qq.com/s?__biz=MzA3NjYxOTA0MQ==&mid=405432715&idx=1&sn=2e40ceafd4b298e1 ... 
- SaaS系列介绍之三: SaaS的特性与作用
			1 SaaS的特性 最早的SaaS服务之一当属在线电子邮箱,极大地降低了个人与企业使用电子邮件的门槛,进而改变了人与人.企业与企业之间的沟通方式.发展至今,SaaS服务的种类与产品已经非常丰富,面向个 ... 
- aop aspect
			所以“<aop:aspect>”实际上是定义横切逻辑,就是在连接点上做什么,“<aop:advisor>”则定义了在哪些连接点应用什么<aop:aspect>.Sp ... 
- boost库在windows下的编译和使用
			因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ... 
- jquery ajax 访问webServer的xml文件
			最近项目中要使用到通过ajax访问webServer的xml文件,通过下面的方式可以直接访问webServer的xml文件,不需要在web.xml中进行任何配置.它的返回参数就是服务器上的xml文件. ... 
- cctype头文件(字符处理库)的使用
			C++ 中cctype头文件的使用 头文件cctype(字符处理库)中定义了有关字符判断与处理的库函数,使用前要包含头文件: #include <cctype> using namespa ... 
- 一个简单的Android小实例
			原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台   3.安装J ... 
- 常用JVM配置参数
			常用JVM配置参数 Trace跟踪参数 堆的分配参数 栈的分配参数 Trace跟踪参数 1.打开GC的日志,如果在程序的运行过程中,系统发生了GC,就会打印相关的信息. -verbose:gc -XX ... 
- python 操作符笔记:
			操作符 描述 x if y else z 三元描述(2.5新加)(类似于c中的 x?y:z x or y 或 x and y 与 not x 非 x!=y ,x is y 序列成员测试 x | y 位 ...