достижение определенной координаты в движении снаряда? - PullRequest
3 голосов
/ 26 сентября 2011

Поскольку я хотел оживить изображение в движении снаряда, Мой код выглядит следующим образом, но он не достиг цели и дал анимацию снаряда, пожалуйста, помогите?

-(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 Ответ

1 голос
/ 26 сентября 2011
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, а не вычислять их каждый раз, когда вы обновляете координаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...