Deplacement fluide d'une image
Bonjour alors aujourd'hui j'attaque une nouvelle appli !!
Et oui ils sont gourmands les boss..
Je vous expose mon soucis, je dois faire un espèce de pacman qui bougerait à l'endroit où l'utilisateur toucherais l'écran.
Pour cela j'ai donc crée une classe qui s'occupe de mon pacman, pour le moment j'arrive à la redessiner à l'endroit ou l'on touche l'écran l'étape suivant est donc de faire bouger ce dernier d'un endroit à l'autre sans "disparaitre" comme par magie, de bouger quoi.
Je ne vois pas trop comment m'y prendre, dois je faire appel à Quartz ou Open GL ? ou y a t il une méthode plus simple ?
Merci de votre aide
Et oui ils sont gourmands les boss..
Je vous expose mon soucis, je dois faire un espèce de pacman qui bougerait à l'endroit où l'utilisateur toucherais l'écran.
Pour cela j'ai donc crée une classe qui s'occupe de mon pacman, pour le moment j'arrive à la redessiner à l'endroit ou l'on touche l'écran l'étape suivant est donc de faire bouger ce dernier d'un endroit à l'autre sans "disparaitre" comme par magie, de bouger quoi.
Je ne vois pas trop comment m'y prendre, dois je faire appel à Quartz ou Open GL ? ou y a t il une méthode plus simple ?
Merci de votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si en plus ton déplacement est sensé être en ligne droite (et pas "contourner des murs" par exemple), t'as même pas à préciser le CGPath qu'il doit suivre, il va directement déplacer ton objet (ta UIView représentant ton PacMan) de l'ancienne à la nouvelle position.
Donc pour ça le plus simple c'est juste d'encadrer ton changement de position ([tt]pacmanview.center = newPosition[/tt]) d'un [tt][UIView beginAnimations:nil context:NULL][/tt] avant et d'un [tt][UIView commitAnimations][/tt] après. Et hop, ça devrait marcher comme par magie
Voila mon code :
Ceci étant appelé la :
ça fait bien ce que je voulais mais surement qu'avec CoreAnimation ça doit être plus fluide mais je sais pas trop comment m'y prendre.
La je planche sur la matrice contenant mes 0 ou 1 représentant mes murs ou couloirs.
D'ailleurs comment on déclare une matrice en Objective-c... :-\\
Ou (j'ai un doute là ) sinon de ne pas modifier le center de ta view mais de son layer associé : [tt]self.view.layer.center = currentPosition[/tt]... (au pire tu testes les 2, vu que c'est juste une ou 2 lignes à rajouter dans ton code c'est quand même pas la mort ;D)
J'ai d'ailleurs presque réussi à faire déplacer mon pacman en respectant mes murs (matrice à deux dimensions remplie de 0 et 1), j'ai juste quelques soucis d'algo je dirais, je dois m'embrouiller entre les lignes et colonnes ou vice versa bref c'est une question de logique.
Mais j'ai presque réussi.Merci
Note: c'est un des exemples du podcast de Stanford University disponible gratuitement sur iTunes.