2012-09-20 3 views
0

Je voulais développer un projet d'échantillon simple où j'ai une image de joueur, j'ai une logique pour sauter de ce lecteur par simple UIViewAnimation maintenant je veux faire cet objet joueur à courir ou marcher comment puis-je atteindre ce par normal UIViewAnimation genre de choses sans utiliser cocos2D ou OpenGL. Toute aide est appréciée à l'avance.Simple UIViewAnimation pour le mouvement d'un objet

Répondre

1

salut ici est un exemple de projet j'espère que cela vous aidera à comprendre ....

exemple de code Here

+0

Merci pour l'échantillon, j'ai eu l'image exacte –

+0

@GrahamBell continuer à poser des questions .... – Spynet

1

Si vous voulez faire cela en utilisant UIViewAnimation alors vous devez créer un certain nombre d'images, connu sous le nom imageview animation dans lequel vous devez afficher chaque image et d'image à pied. Cela donnerait l'impression que l'image marche ou court. Alors vous n'auriez pas besoin d'openGL ou de cocos2d.

BTW wat voulez-vous atteindre?

+0

merci pour la réponse, je suis juste en train de préparer un article qui met l'accent sur objectif de base c programmation, ici je veux montrer un exemple de projet de démonstration où un objet s'exécute et saute dans une mise en page. –

+0

http://liehacker.dyndns.org/blog/wp-content/uploads/Picnic.zip. Peut-être que ce lien pourrait vous aider :) – IronManGill

1

La manière classique de faire cela dans les jeux 2d est de créer une feuille de sprites avec les cadres de l'animation d'exécution pour le personnage du joueur. Une feuille de sprites est une image bitmap composée d'une grille de sous-images. Chaque sous-image contient une seule image de l'animation d'exécution. Pour lire l'animation d'exécution vers l'avant, vous devez créer une liste de l'image secondaire à afficher pour chaque numéro d'image. L'animation d'exécution commencera à l'image 0 et jouera à une fréquence d'images donnée. Vous pouvez créer une minuterie qui se déclenche périodiquement à la fin de chaque image. Lorsque la minuterie se déclenche, incrémentez le numéro d'image. Ensuite, utilisez le numéro de cadre pour indexer dans la liste des sous-images pour choisir la sous-image correcte à afficher pour le cadre d'animation en cours. Invalidez la vue contenant l'image du lecteur et lorsque le système demande que la vue du lecteur soit redessinée, dessinez la sous-image pour le cadre d'animation en cours. Exécuter les animations répéter dans une boucle tant que le joueur est en cours d'exécution. Pour boucler l'animation, vous devez vérifier la valeur du compteur d'images après l'avoir incrémentée lorsque la minuterie se déclenche. Si la valeur du compteur d'images est égale au nombre de trames d'animation pour l'animation d'exécution, réinitialisez le compteur d'images à zéro. Utilisez ensuite le compteur de cadre pour indexer dans la liste des sous-images commandées pour l'animation. La vue du joueur doit également être déplacée dans la direction dans laquelle le joueur s'exécute chaque fois que la minuterie d'animation se déclenche. Vous calculez la distance à laquelle déplacer la vue du joueur en multipliant le temps entre les images d'animation par la vitesse du joueur.

Pour dessiner efficacement le cadre d'animation en cours, stockez les sous-images en tant qu'objets NSValue contenant un CGRect dans un NSArray. Chaque CGRect est le sous-rectangle contenant un cadre d'animation dans le spritesheet. Le sous-rectangle peut être utilisé pour découper le cadre d'animation à partir de la feuille de calcul afin qu'une seule image d'animation soit dessinée lorsque la feuille de calcul est dessinée dans la vue du lecteur. La feuille de sprites doit être dessinée décalée par l'origine du sous-rectangle afin que le coin supérieur gauche du cadre d'animation coïncide avec le coin supérieur gauche de la vue du joueur. Le compteur de trames est utilisé comme index pour rechercher le cadre d'animation en cours dans le tableau.

Questions connexes