2010-12-03 11 views
0

J'essaie de déplacer une balle sur l'écran avec des coordonnées aléatoires. mais mon objet se déplace juste autour de l'axe x! voici mon code:Déplacement d'une balle au hasard

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.70]; 
[UIView setAnimationRepeatCount:1000]; 
[UIView setAnimationRepeatAutoreverses:YES]; 

CGFloat x = (CGFloat) random()/(CGFloat) RAND_MAX; 
CGFloat y = (CGFloat) random()/(CGFloat) RAND_MAX; 

CGPoint squarePostion = CGPointMake(y, x); 
blue3.center = squarePostion; 

[UIView commitAnimations]; 

ÉDITÉ:

je change mon code pour cela, mais ne fonctionne pas ~:

CGFloat x = (CGFloat) random()/(CGFloat) RAND_MAX * self.view.bounds.size.width; 
CGFloat y = (CGFloat) random()/(CGFloat) RAND_MAX * self.view.bounds.size.height; 

CGPoint squarePostion = CGPointMake(y, x); 

même chose se produit!

Répondre

1

Vous mettez à l'échelle toutes vos valeurs à 0 ... 1, donc je m'attendrais à ce que votre balle se déplace réellement à (0,0) et reste là. En outre, vous pouvez avoir votre x any y coordonnées permutées dans CGPointMake. Vous devez adapter votre valeur à la région que vous voulez qu'il soit dans Pour une position aléatoire sur tout point de vue (si blue3 est une sous-vue de containerView - qui pourrait être auto ici).

CGFloat x = (CGFloat) random()/(CGFloat) RAND_MAX * containerView.bounds.size.width; 
CGFloat y = (CGFloat) random()/(CGFloat) RAND_MAX * containerView.bounds.size.height; 

CGPoint squarePostion = CGPointMake(x, y); 
+0

s'il vous plaît voir mon édition question –

+0

Veuillez utiliser NSLog (@ "% f% f", x, y); et voyez quelles valeurs vous définissez réellement. – Eiko

+0

La console me montre ces chiffres: '645.264160 395.960449' –