在弹丸运动中达到特定的坐标?

时间:2011-09-26 05:03:26

标签: iphone physics

因为我想在弹丸运动中制作动画图像, 我的代码如下,但它没有达到目标并给出了射弹动画,请问有什么帮助吗?

-(void)timeLine
{

dTime += 0.1;


.................


double s_x =   inVel * cos(angle1)  ; // the X speed
double s_y =   inVel * sin(angle1) ;  // the Y speed


NSLog(@"sx = %i",s_x);

NSLog(@"sy = %i",s_y);


x =   oX + (s_x * dTime);
y =   oY + ( ( s_y * dTime) - (0.5 * 9.8 * dTime * dTime));

NSLog(@"x = %i",x);

NSLog(@"y = %i",y);

imageViewForAnimation.x += x;
imageViewForAnimation.y -= y;
}

1 个答案:

答案 0 :(得分:1)

imageViewForAnimation.x += x;
imageViewForAnimation.y -= y;

这些线条对我来说似乎不对。您每次都在计算实际的x和y,而不是自上次以来移动的差异。我也不确定为什么要添加一个并减去一个,但这不是重点。基本上,尝试将行更改为

imageViewForAnimation.x = x;
imageViewForAnimation.y = y;

另外,你一遍又一遍地做一些计算只需要做一次。 v_x == s_x(或者它应该在浮点错误内)以及v_y == s_y。您只需要事先计算一次v_x和V_y,而不是每次更新坐标时计算它们。