2D游戏控制问题 - 旋转&运动

时间:2011-06-03 20:55:38

标签: iphone ipad transform rotation

我想知道是否有人可以帮助我开始或指向正确的方向。我正在寻找一个使用核心动画的简单驾驶游戏。我是一个非常优秀的obj-c程序员,但是当谈到运动和数学时,我失败了。我想要一个方向盘来控制汽车的方向,一个前进/后退来控制加速度&减速。如果有人可以帮助我使用方向盘代码,我将不胜感激!所以基本上我需要帮助制作一个可以用1个手指拖动旋转的圆圈,并且我会将它的变换值传递给我的汽车视图(我想我可以处理加速/加速代码)任何接受者? :)此外,我有2个邀请来运送dribbble.com,任何帮助我的人都很乐意给出一个。


grady,totowtwo,感谢您的回答,我很感激。我已经到了可以旋转“方向盘”的地步,它将旋转我的“汽车”,我也让它向前和向后移动。只需要移动到更现实......这是xCode项目的链接,http://www.cl.ly/7VBU,保持它非常简单,所以如果有人看它 - 它将很容易更改/添加代码。所以,如果任何人想要看它,并帮助我使运动更加现实,我将永远为你的债务! :)谢谢!

2 个答案:

答案 0 :(得分:0)

一个起点是认识到典型的汽车方向盘有900度的运动,无论你是否想要用于指轮,都是一个设计决定。汽车中的车轮通常在车轮最大旋转时指向大约30度偏离+ z。您可以使用从方向盘角度到车轮角度的简单线性变换。

从那里,Car delta角度是车轮角度乘以前进距离的函数。当汽车向前移动时,您可以想象当您指向正前方时跟踪具有无限半径的圆的切线,以及当方向盘完全倾斜时跟踪半径较小的圆(约4倍车长)。

当然,随意放弃典型车辆的设计规则。为您的用户提供有趣的驱动列车,如完整机器人!

答案 1 :(得分:0)

我不是专家,但你可以做类似的事情:

CGPoint centerOfWheel;
CGPoint currentTouchPoint;
float radians = atan2(currentTouchPoint.x-centerOfWheel.x, currentTouchPoint.y-centerOfWheel.y);

然后将转换应用到滚轮...当然,您将希望在视图上累积转换一段距离,因为继续转动滚轮将导致继续转动。

也是为了让它感觉更真实,并且响应性较差,你可能想要使用较小的转弯程度,因此将车轮转入一圈并不会导致车辆整圈转动。你将不得不玩。

相关问题