java模拟抛物线_作为弹丸模拟器的一部分,需要帮助使球体在抛物线中移动?...

在进行计算机科学项目时,作者正在创建一个Unity射弹模拟器,用户可设置初始速度、发射角度和重力来模拟球体的抛物线运动。目前遇到的问题是,尽管脚本在理论上看似正确,但在实际运行中,球体没有按预期移动,且出现“由于浮点精度限制”的警告。作者考虑是否应使用Vector3来改善效果,但不确定如何修正现有代码。
摘要由CSDN通过智能技术生成

嗨,我目前正在研究一个学校的计算机科学项目,我决定制作一个简单的射弹模拟器,用户只需提供初始发射速度,发射角度和重力 . 到目前为止,我已经尝试制作一个脚本,使用这些值来计算轨迹模式,并随着时间的推移改变球体在平面上的y和z位置 .

public class SphereJump : MonoBehaviour{

public float gravity = 9.8f;

public float InitialSpeed = 10.0f;

public float LaunchAngle = 45.0f;

public Transform Sphere;

void Start () {

float InitialX = Mathf.Sin(LaunchAngle) * InitialSpeed;

float InitialY = Mathf.Cos(LaunchAngle) * InitialSpeed;

float Range = Mathf.Sin(2*LaunchAngle)*Mathf.Pow(InitialSpeed,2)/gravity;

float MaxHeight = Mathf.Sin(LaunchAngle) * Mathf.Pow(InitialSpeed, 2) / 2 * gravity;

float FlightTime = Range / InitialX;

float ElapsedTime = 0;

while (ElapsedTime < FlightTime)

{

float NewPositionX = transform.position.z+InitialX*ElapsedTime;

float NewPositionY = transform.position.y +InitialY -gravity / 2*ElapsedTime;

Sphere.Translate(0f, NewPositionY, NewPositionX);

ElapsedTime += Time.deltaTime;

}

}

}

作为Unity的新手,在我看来,这应该在数学上有效,但是当我运行游戏时,没有任何反应或球体对象消失 . 一开始它的位置是(1,0.5,1) - 它比它所坐的平面高出0.5 - 据我所知,脚本是正确连接的 . 还出现了警告“由于浮点精度限制......” . 使用Vector3会有帮助吗?我完全混淆了剧本吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值