2010-09-05 4 views
0

Faire un jeu de cartes simple, et il devrait bien quand l'utilisateur est en contrôle, car il va appuyer sur un bouton. Il appellera ma méthode assignée à ce bouton et la logique sera exécutée et l'écran mis à jour.Une méthode pour surcharger cela est appelée quelques fois par seconde? ou une boucle est-il sûr de coder dans?

Mais lorsque les joueurs se terminent, et que l'IA doit tout faire fonctionner pendant quelques secondes, mettez à jour l'écran avec ses décisions etc. Manipulez de la logique, appelez une animation avant de rendre le contrôle à l'utilisateur.

Existe-t-il une méthode que je peux remplacer dans ma classe Controller qui est une sous-classe de NSObject qui est appelée chaque boucle ou au moins 5 à 10 fois par seconde? Ou comment allez-vous gérer ça?

Merci -Code

+0

Il est un peu difficile de ce que votre question. Demandez-vous comment empêcher l'utilisateur de prendre des mesures? Cherchez-vous cette méthode 5-10 fois par seconde parce que vous voulez l'utiliser pour la planification? Si c'est le cas, vous pouvez regarder NSTimer. – morgancodes

+0

Oui, je dois configurer un rappel pour que je puisse mettre à jour l'écran. Comme le contrôle passe au joueur IA, j'ai besoin de mettre à jour/animer ses actions. Ou générer un thread pour moi-même pour exécuter une boucle continue qui peut contenir une machine d'état ou similaire. –

Répondre

0

Il suffit de créer un un NSTimer qui appelle une méthode tique à ce que la fréquence que vous désirez. Mais gardez à l'esprit que NSTimer n'est pas garanti pour être précis, donc pour éviter d'accumuler des erreurs, vous pouvez vérifier combien de temps s'est écoulé (par exemple, si le temporisateur tire en moyenne 10 ms en retard sur 500 ticks, code cela dépend de la synchronisation précise sera cinq secondes d'arrêt).

+0

Merci Chuck! Je vais essayer un NSTimer. :) –

1

Il ne semble pas que vous souhaitiez un thread d'arrière-plan (du moins pas un que vous créez) ou une minuterie. Ce que vous voulez vraiment faire, c'est visuellement animer les actions de l'IA, à cette fin, regardez le contenu de CoreAnimation, pour définir des animations pour les actions de l'IA, puis jouez-les. Vous pouvez spécifier une période de temps qu'une animation doit prendre.

Regardez ce projet pour des exemples d'animation du simple au complexe:

http://github.com/neror/CA360

Questions connexes