Ios 当起点和终点已知但高度可变时,如何在cocos2d/box2d中创建预览轨迹?
我是一名经验丰富的iPhone开发人员,但对Cocos2D和Box2D还不熟悉,我完全承认我需要物理复习。我希望建立的是一个预览轨迹(一个基于输入变量指示投射物飞行路径的圆弧,类似于许多愤怒的小鸟风格的游戏) 不过,我想做一些不同的事情,设置起点(投射物在屏幕上的开始位置)和终点(目标位置)。不过,根据用户的输入,抛物线的高度会发生变化。所以在这个意义上,我不是用抛物线路径来预览目标的着陆位置,而是投射物撞击目标的角度(同样,抛物线总是在目标处终止) 我没有在网上看到任何完全符合我需要的东西。大多数可用的代码更多的是向用户显示投射物将降落的位置。我想确定一个物体的角度(矢量)和脉冲,以匹配不同的抛物线振幅,但始终在同一位置结束。一张图片抵得上千言万语,所以我链接到了一张自制的图片,试图帮助解释(所以不让我嵌入图片)Ios 当起点和终点已知但高度可变时,如何在cocos2d/box2d中创建预览轨迹?,ios,cocos2d-iphone,box2d-iphone,Ios,Cocos2d Iphone,Box2d Iphone,我是一名经验丰富的iPhone开发人员,但对Cocos2D和Box2D还不熟悉,我完全承认我需要物理复习。我希望建立的是一个预览轨迹(一个基于输入变量指示投射物飞行路径的圆弧,类似于许多愤怒的小鸟风格的游戏) 不过,我想做一些不同的事情,设置起点(投射物在屏幕上的开始位置)和终点(目标位置)。不过,根据用户的输入,抛物线的高度会发生变化。所以在这个意义上,我不是用抛物线路径来预览目标的着陆位置,而是投射物撞击目标的角度(同样,抛物线总是在目标处终止) 我没有在网上看到任何完全符合我需要的东西。大
任何帮助都将不胜感激。尝试检查贝塞尔曲线。您可以使用它们定义所需的路径。您可以使用cocos 2d或不使用cocos 2d 让我们用数学模型来表示<抛物线方向的code>角度是输入变量,抛物线在
0
和目标点
中穿过x轴,将计算高度
抛物线看起来是这样的:y=x*(a-x)*b
,其中a
定义了到目标点的距离,b
是(与a
一起)影响起始角度和高度的某个值。
我们可以通过原点中心的atan(x/y)计算角度。我们知道切线代表抛物线的导数。导数是y'=a*b-2*x*b
,在原点中心y=0
和x=0
,我们得到[原点中心导数]=a*b
a
预定义为到目标点的距离,因此angle
受b
变化的影响:angle=atan(a*b)
此时,我们有抛物线方程y=x*(a-x)*b
,预定义的a=[到目标点的距离]*4
和角度方程angle=atan(a*b)
,其中b
是输入值。例如:
- 到点的距离为10->
a=40
- 用户输入45*->tan(45*)=1,
->b=tan(45*)/a
b=1/40
- 将这些值放入方程式
:y=x*(a-x)*b
,然后检查y=x*(40-x)/40
a*x^2+b*x+c=0
计算,条件是crmk_=-b/2а
。我想,自己算应该不难:)