借鉴Temple Run的重力感应控制和手势操作的设计改进

来源:互联网 发布:syslog协议端口 编辑:程序博客网 时间:2024/04/30 04:51

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!

原文地址: http://www.cocos2dev.com/?p=225

猴子原创,欢迎转载。转载请注明出处,谢谢!

原文地址:http://blog.csdn.net/yanghuiliu/article/details/7615066

 

前一段时间,开发的一款类似Temple Run的跑步游戏,总感觉自己的重力感应左右滑动和手势的上下滑动操作没有Temple Run好操作。自己观察了一下Temple Run,发现自己的设计的确存在不足。

 

先说下我自己的设计吧。

 

1、在重力感应的设计:

我是把左右倾斜的重力感应值传递到游戏控制中,也就是说,我手机向左倾斜,玩家会不停的向左移动,我手机向右倾斜,玩家会不停的向右移动。

看上去没有什么问题,但是在类似Temple Run的游戏中,这就存在极大的不足。

 

不足之处:

玩家只要把手机左右倾斜,游戏角色就会不停的左右移动,玩家找不到一个合适的控制点,就是想把角色控制在一条道的左中右很难。(虽然玩家小幅度倾斜时,我不算作左右移动,但是还是很难控制)。

 

2、在手势上下滑动的设计:

Touch事件分为begin,move,end。我是在end的时候获取当前手指的坐标A以及上一帧的手指坐标B,通过A.y和B.y的差值区分玩家是上滑还是下滑。

我只能说,这个看上去也没问题。

 

不足之处:

不足之处就是玩家操作存在延时,玩家在看到前方有障碍物的时候,快速反应上滑手指,玩家想看到的是我手指点上去角色就应该跳动,但是程序上要等到玩家手指离开的时候才知道是上滑操作还是下滑操作。所以存在一定的延时。

 

自己的不足分析了,那么怎么改进呢?

其实玩玩Temple Run就可以找到答案。

 

1、重力感应的改进方式:

重力感应应该是将手机的左右倾斜度映射到一条道路的宽度上去,这样玩家倾斜一定角度的手机,只是将游戏角色定位到一条到道的某一点上去,玩家可以很容易的控制角色在一条道的某一点上面。

 

2、手势滑动的改进:

刚才也说了,手势分begin,move,end。方法还是和之前一样,只不过不是在end里面获取方向,而是当触发begin的时候记录手指坐标A,在move的第一帧就记录手指坐标B,通过A.y和B.y的差值区分玩家是上滑还是下滑。看上去没什么区别,区别就是减少了玩家move的这段时间的延时。也就是达到对了玩家希望看到的一点击屏幕,角色就应该上跳还是下滑。