Ich habe diese IBAction, die ein Zeichen auf dem Bildschirm machen soll, aber wenn es aufgerufen wird, verschiebt es das Zeichen nur einmal, dann jeden Aufruf danach das Zeichen bewegt sich mehr und mehr nach unten. Diese Funktion sollte nur aufgerufen werden, dann würde der Charakter "hochspringen" und dann direkt vom Bildschirm fallen, da ich keine Kollision mit dem Boden gemacht habe. Warum gibt es Vorschläge? tim ist der Name meiner UIImageView, die den Chracater enthält, btw.Iphone, objective-c wie man eine Jump-Methode für einen Platformer macht
-(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;
}*/
}
}