У меня есть это IBAction, которое должно совершать прыжок персонажа на экране, однако, когда он вызывается, он просто перемещает персонажа один раз, затем каждый вызов после этого персонажа просто перемещается вниз все больше и больше. Эту функцию нужно просто вызвать, тогда персонаж «подпрыгнет», а затем упадет прямо с экрана, поскольку я не столкнулся с землей. Любые предложения, почему это происходит? Tim - это имя моего UIImageView, в котором находится chracater, кстати.
-(IBAction)Jump:(id)sender
{
int jumpSpeed = JumpSpeedLimit;
CGPoint newCenter = tim.center;
if(!mainJumping){
//then start jumping
mainJumping = TRUE;
jumpSpeed = JumpSpeedLimit*-1;
newCenter.x -= jumpSpeed;
tim.center = newCenter;
} else {
//then continue jumping if already in the air
//crazy math that I won't explain
if(jumpSpeed < 0){
jumpSpeed *= 1 - JumpSpeedLimit/75;
if(jumpSpeed > -JumpSpeedLimit/5){
jumpSpeed *= -1;
}
}
if(jumpSpeed > 0 && jumpSpeed <= JumpSpeedLimit){
jumpSpeed *= 1 + JumpSpeedLimit/50;
}
newCenter = tim.center;
newCenter.x -= jumpSpeed;
tim.center = newCenter;
/*
//if hits the floor, then stop jumping
if(tim.center.x >= 360 - tim.bounds.size.height){
mainJumping = FALSE;
newCenter = tim.center;
newCenter.x = 360 - tim.bounds.size.height;
tim.center = newCenter;
}*/
}
}