《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇04:如何实现触控操作》

4.如何实现触控操作

触控操作概述:

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

原理:

如图4-1所示


图4-1

实现方法:

步骤1:

在游戏的主循环里会对移动输入做Tick检测,在Tick中,会记录手指的坐标移动位置。

01if (Input.GetScreenTouchCount () == 1)
02{
03 int id = Input.GetScreenTouchID (0);
04 if (Input.IsFingerDown (id))
05 //检测到手指按压屏幕,获取当前像素点坐标,并将手指沿X、Y轴方向位移初始化为0
06 {
07  m_pixelPos = Input.GetScreenTouchPixelPosition (id);
08  m_Bias.X = 0.0f;
09  m_Bias.Y = 0.0f;
10 }
11 //时时计算手指发生的位移变化
12 if (Input.IsFingerPressing (id))
13 {
14  Vector2 temp = Input.GetScreenTouchPixelPosition (id);
15  m_Bias = temp - m_pixelPos;}
16  //检测到手指抬起,将位移变化归零。
17  if (Input.IsFingerUp (id))
18  {
19   Vector2 temp = Input.GetScreenTouchPixelPosition (id);
20   m_Bias = temp - m_pixelPos;
21   m_pixelPos.X = 0.0f;
22   m_pixelPos.Y = 0.0f;}
23  }
24 }
25}

步骤2:

可以根据这个位置信息,来判定玩家做出了左右移动或者上下滑动中哪种指令。开发者可根据自行设定的上划屏对应角色操作,来完成得到指令操作之后的角色相关操作内容。

01public bool IsLeftSlide()
02//以判定手指向左滑动举例
03{
04 if(Input.GetScreenTouchCount()== 1)
05 {
06  int id = Input.GetScreenTouchID(0);
07  float x = ABS(m_Bias.X);
08  float y = ABS(m_Bias.Y);
09  if (x > y)
10  //判定手指为横向操作
11  {
12   if (m_Bias.X < 0)
13   //判定手指向左滑
14   {
15    m_Bias.X = 0.0f;
16    m_Bias.Y = 0.0f;
17    return true;
18   }
19  }
20 }
21 return false;
22}
23//定义ABS取为绝对值
24private float ABS(float f)       
25{
26 if (f>0.0f)
27 {return f;}
28 return -f;
29}

 


 

引擎官方网站:http://www.genesis-3d.com.cn/

官方论坛:http://bbs.9tech.cn/genesis-3d/

官方千人大群:59113309   135439306

YY频道-游戏开发大讲堂(完全免费,定期开课):51735288 

Genesis-3D开源游戏引擎:游戏起源,皆因有我!!!

 


 

转载于:https://www.cnblogs.com/G-3D/p/3513345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值