Étape 10 : Programme Structure - boucle de jeu
La partie la plus importante de tous les jeux, la boucle de jeu timing, a besoin d’être immaculé sur bon nombre des anciens systèmes et architectures. L’Atari 2600, avait par exemple, 76 cycles du processeur pour faire toute la logique du jeu, qui comprend son aussi bien. Les processeurs d’aujourd'hui sont beaucoup plus rapides, et le timing est seulement une contrepartie réelle pour le graphisme pousser l’enveloppe matérielle.Aux fins de la présente discussion, chaque itération de la boucle de jeu correspond à l’élaboration d’un cadre unique et est programmée pour s’exécuter à environ 30 images par seconde. La boucle de jeu doit gérer tout, chaque itération, mais rester dans les limites de la télévision ou VSYNC du moniteur. Le VSYNC est la plus longue période de temps que le moniteur ou télévision est inactif et ne pas en train de redessiner l’écran. Essaie d’écrire dans la mémoire vidéo, tandis que le moniteur ou télévision essaye de lire conduira à des contingences matérielles, écran déchirure ou autres anomalies graphiques.
Ce qui est la première chose que la boucle de jeu doit gérer ? Supposons, un instant, que toutes les constructions de jeu sont répartissent de la logique de jeu et le moteur graphique. En mettant le code graphique tout d’abord et ensuite gérer, dire, joueur d’entrée, un problème se pose. Le problème découle de l’étape d’initialisation. Essentiellement, le moteur graphique sera ont calculé la première image avant la boucle commence réellement et puis tirage au sort la première image à nouveau au cours de la première itération de la boucle de jeu. Maintenant, la logique de jeu est calculée, mais l’image actuelle dans la boucle est desynced avec les calculs réalisés avec la logique de jeu.
Par conséquent, il convient d’ordonner tout d’abord la logique de jeu, mais qui laisse quelques constructions à l’ordre. Supposons que la décision arbitraire est faite que la détection de collision devrait être traitée tout d’abord. Alors, logiquement, l’entrée de joueur est gérée quelque temps après que, dans la boucle. Essentiellement, la collision est calculée, et puis le joueur doit déplacer. Une contradiction peut être trouvé dans au moins un cas, mais supposons que py + h = by + 1, et le joueur est frénétiquement essayant de déplacer vers le bas pour compenser. Par la définition de la détecteur de collisions, aucune collision se produit en l’espèce. Mouvement du joueur a été en vain, même si il y aurait l’apparence du moteur graphique que le ballon doit avoir rebondi. Prenant la contradiction plus loin, le ballon puis même ressemblerait il a recoupé avec la pagaie si le joueur a continué à se déplacer vers le bas. Ce serait une situation frustrante pour le joueur. Par conséquent, l’entrée doit être manipulée quelque temps avant la détection de collision.
L’AI tombe dans une situation similaire comme ci-dessus. Si la détection de collision est traitée avant l’IA se déplace, cela se traduit par le même problème. Par conséquent, la détection de collision doit se produire après l’IA et le joueur d’entrée. L’ordre en ce qui concerne l’IA et le joueur d’entrée n’importe pas ; le mouvement de l’un est indépendant de l’autre.
Mais, quand la balle doit se déplacer ? Gardez à l’esprit que les graphismes sont mises à jour dernier ; par conséquent, l’emplacement de la boule actuellement affiché par le téléviseur ou moniteur est la dernière itération. Si le programme devait utiliser cette position pour vérifier les collisions, le même problème se pose. Par conséquent, les emplacement de la balle doit être actualisée tout d’abord.
Le classement final est :
1. mouvement de la balle
2. entrée pour lecteur
3. AI
4. détection de collision
5. mettre à jour l’écran de jeu
Avec quelques motivations de comment le jeu fonctionne, nous allons commencer à travailler avec du code.