gpt4 book ai didi

java - 计算子弹速度

转载 作者:行者123 更新时间:2023-11-30 02:40:42 26 4
gpt4 key购买 nike

我需要计算子弹的 X 和 Y 速度(子弹将通过这些移动每个“更新”),所以我有以下内容

public int[] getXandYSpeed(int pointOfOriginX, int pointOfOriginY, int aimToX, int aimToY){
int[] coords = new int[2];
aimToX = aimToX - pointOfOriginX;
aimToY = aimToY - pointOfOriginY;

while((aimToX + aimToY) > 5){
aimToX = aimToX/2;
aimToY = aimToY/2;
}

coords[0] = aimToX;
coords[1] = aimToY;
return coords;

但是,这并不是真正准确的,子弹有随机速度(如果最终循环中的最终速度是 aimToX 加上 AimToY 等于 6,那么(每个都是 3)所以最终速度将是 x=1 和 y=1,如果最终循环等于四而不是像 x=2 和 y=2 那样结束,这就是区别)

那么,问题是,如何让它变得更好?

最佳答案

如果你想让子弹在任何角度以恒定速度行进,你真的想要更像这样的东西。此外,@JSlain 关于使用 double 的评论也很准确,即使您在绘制/渲染项目符号时必须四舍五入值,它们也会更加准确

public double[] getSpeed(int sx, int sy, int ex, int ey)
{
double dx = ex - sx;
double dy = ey - sy;

double theta = Math.atan2(dy, dx); //get the angle your bullet will travel

int bulletSpeed = 5; //how fast your bullet can go.

double[] speeds = new double[2];

speeds[0] = Math.cos(theta) * bulletSpeed;
speeds[1] = Math.sin(theta) * bulletSpeed;

return speeds;
}

关于java - 计算子弹速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com