0
我做了一个原型游戏像蠕虫和我想不仅要拍,但也看到了整个投影曲线在我的镜头将前往它击中地面之前。玩家给出的唯一信息是角度和权力。还有一些像风和重力的元素。射击弹丸给出的角度和力量
我可以有投影曲线的代码吗?它就像我想的抛物线。我研究抛物线,但我有一些难以将这些数学公式应用到编程代码中。
谢谢。
我做了一个原型游戏像蠕虫和我想不仅要拍,但也看到了整个投影曲线在我的镜头将前往它击中地面之前。玩家给出的唯一信息是角度和权力。还有一些像风和重力的元素。射击弹丸给出的角度和力量
我可以有投影曲线的代码吗?它就像我想的抛物线。我研究抛物线,但我有一些难以将这些数学公式应用到编程代码中。
谢谢。
数学(和物理)部分
所以这看起来像10级物理给我。
通过弹丸trced的路径(如你所说)通过方程可描述一个parbola现在
,如果你解决这个公式,你会得到以下参数:
范围:
身高:
(VI =在itial速度,θ-I =拍摄WRT水平)的初始角度
而且,在(x, y)
等式为抛物线路径将是
(V0 =初始速度,θ-=触发角)
编程部分
假设以下常数:
const g:Number = 9.81; //9.81 m/s, the grav const
正弦函数可作为Math.sin
幂函数可作为Math.pow
。这意味着,正弦平方将
Math.pow(Math.sin(theta), 2)
您可以写范围功能
function projectileRange(vel:Number, angle:Number):Number {
var vsquare:Number = vel * vel;
var rv:Number = vsquare * Math.sin(2 * angle)/g;
return rv;
}
和高度功能
function projectileHeight(vel:Number, angle:Number):Number {
var vsquare:Number = vel * vel;
var rv:Number = vsquare * Math.pow(Math.sin(angle), 2)/(2 * g);
return rv;
}
和yPosition功能
function yPosition(xPos:Number, vel:Number, angle:Number):Number {
return xPos * Math.tan(angle) - (g * xPos * xPos/(2 * vel * vel * Math.cos(angle) * Math.cos(angle)));
}
注意,的角度以弧度
function toRadians(degrees:Number):void {
return degrees * Math.PI/180;
}
有关详细信息上抛运动,google它。
欢迎来到[SO]。你试过什么了? – zzzzBov 2011-12-31 14:21:34
另外,请花一些时间阅读[faq]。 – zzzzBov 2011-12-31 14:24:45
这似乎更像是“为我工作”类型的问题,而不是“我的代码出了什么问题”问题。阅读[常见问题],你会注意到这些问题并没有得到真正的赞赏。尽管如此,我在下面写了一个答案,它将很快准备好 – 2011-12-31 14:25:37