zoukankan      html  css  js  c++  java
  • 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇04:如何实现触控操作》

    4.如何实现触控操作

    触控操作概述:

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

    原理:

    如图4-1所示


    图4-1

    实现方法:

    步骤1:

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

    01 if (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:

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

    01 public 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取为绝对值
    24 private 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开源游戏引擎:游戏起源,皆因有我!!!

     


  • 相关阅读:
    jython resources
    Installing a Library of Jython ScriptsPart of the WebSphere Application Server v7.x Administration Series Series
    jython好资料
    ulipad install on 64bit win7 has issue
    an oracle article in high level to descibe how to archtichre operator JAVA relevet project
    table的宽度,单元格内换行问题
    Linux常用命令大全
    dedecms系统后台登陆提示用户名密码不存在
    登录织梦后台提示用户名不存在的解决方法介绍
    Shell常用命令整理
  • 原文地址:https://www.cnblogs.com/G-3D/p/3513345.html
Copyright © 2011-2022 走看看