这是下面的链接,我如何使用触摸点移动子弹到目标位置。(
我的问题是,如果弹体已经到达目标位置,我如何阻止弹体。
我已经尝试了下面的代码,它工作正常。
PIXEL_TO_METER = 1/32.0f
time step = 1/45.0f, velocity iteration = 6, position iteration = 2
float distanceTravelled = targetDirection.dst(bulletPosition);
if(distanceTravelled >= MAX_DISTANCE){
// stop
} else {
// move body
}
但我想让子弹停在目标位置,也不停在最远距离。但我不知道怎么做。
你需要检查子弹是否足够靠近你的目标,以表明它已经到达目标。
float distance = targetPosition.dst(bulletPosition);
if(distance <= DEFINED_PRECISION){
// stop
// also you can set the target's position to the bullet here
} else {
// move body
}
为什么不在这个点上?子弹以一定的速度运动,比如说每秒10像素。如果你有60fps
,这意味着每帧子弹移动10/60px。
如果项目符号是从位置0
开始的,那么它的下一个位置(在下一帧中)将是
1/6 (frame 1)
2/6 (frame 2)
3/6 (frame 3)
...
如果目标位于1.5/6
位置,您可以看到,尽管在第1帧中
子弹尚未到达目标,但在下一帧中,它已经通过了目标,就像从未检测到碰撞一样。这就是为什么你需要定义一些精度。它的值应至少为1帧步长,因此在这种情况下,它将为1/6
float DEFINED_PRECISION = 1/6f;
平铺贴图对象以像素表示x、y位置,以度表示旋转。 我正在从地图上加载坐标和旋转,并试图将它们指定给box2d实体。位置模型之间存在一些差异,例如平铺对象旋转以度为单位,而box2d躯干角度以弧度为单位。 如何将位置转换为BodyDef坐标x、y和角度,以便在正确的位置创建实体? 使用代码: 当旋转为0时工作,但当旋转不同于0时,主体定位不正确。 我在这里找到了一些提示: http://www.tu
如何检查字节中的某个位是否被设置?
我目前创建了一个动态的身体,并且用Vector2()以恒定的速度移动。我想要的是当身体离开屏幕边缘时,立即从当前点回到原点。我该怎么做?
我想知道位置是否在我的半径范围内。例如,我有我当前位置的“latlng”物体和我有一个更多的“latlng”物体,我想检查这两个物体是否在1km范围内?我该如何实现呢?
问题内容: 我使用64位整数内的位存储标志。 我想知道是否有单个位设置了64位整数中的任何位置(我不在乎任何特定位的位置)。 我可以使用 Bit Twiddling Hacks (由Sean Eron Anderson 撰写) 来计数位数,但是我想知道什么是最有效的方法来检测是否设置了一位。 以及一些维基百科页面: 找到第一个 位操作 汉明重量 注意:我的应用程序是用Java编写的,但是我对使用其
问题内容: 我正在实现是否有位图,那么它应该将图像从imageview保存到内部存储器,否则在应用程序的内部存储器中设置另一个位图。这是代码:_ 问题答案: 您可以按以下方式检查它: 只需检查Bitmap值,如下所示: