因为我想在弹丸运动中制作动画图像, 我的代码如下,但它没有达到目标并给出了射弹动画,请问有什么帮助吗?
-(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;
}
答案 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,而不是每次更新坐标时计算它们。