Étape 3: Mécanismes de jeu
Ce jeu craint si vous ne pouvait pas interagir avec lui. Si vous ne pouvait pas mourir, si elle était trop facile ou si c’était répétitif vous ennuyer rapidement et jeter. Je vais énumérer dans l’ordre que j’ai mis en place les éléments du jeu.
Génération de niveau procédurale :
Jeu générera le terrain à la volée. Puisqu’il s’agit d’une grande partie, qu’elle mérite sa propre étape.
Bouton
Clic sur le bouton détection est simple. Attendez pour Appuyez sur le bouton, attendre la sortie de bouton, poursuivre avec le code. Mais qu’en est-il si vous souhaitez animer les choses pendant que vous attendez de bouton ? Un peu plus difficile mais pas un problème.
Comme vous pouvez le voir dans le code ci-dessus, j’ai fait cela en ajoutant une variable buttonReady. D’affectation de noms est peut-être pas le meilleur mais la fonctionnalité reste la même. Bien que buttonReady soit 1 (vrai), programme attend sur une touche. Lorsqu’il détecte une touche, buttonReady active ou désactive par 0 (faux) et programme commence à attendre le bouton version. Le bouton vaisseau spatial se déplace et bouton prêt est en retrait à 1. De cette façon le jeu peut fonctionner tant que le bouton est enfoncé.
Collision :
Si vous voulez vérifier si vous frappez quelque chose, vous devez vérifier si tout objet est au même endroit que vous êtes. Il en va de même pour cela. Voir code ci-dessous pour voir comment cela fonctionne.
Comme vous voyez, que cela se fait avec l’aide de décalage de bits et opérateur modulo. Cela fait partie de mon mini-jeu « optimiser le code » j’ai joué à travers cette chose entière de programmation. Quel décalage de bits est qu'il décale les bits de variable à gauche ou à droite en montant fixe. Cela le rend facile de voir s’il y a un 1 à certaine position ou pas. Après bitshifting modulo (& 2) renvoie le reste de la division et si qui est égal à 1, il y avait un 1 en position fixe dans le cas contraire, il y avait 0.
Si vous n’obtenez pas opérateur de décalage de bits (ne vous inquiétez pas vous l’obtiendrez un jour), vous pouvez utiliser les fonctions de tableau au lieu de cela (vos variables de données doivent être des matrices et vous devrez faire une fonction pour déplacer des données).
Scoring
Jeu est pas un jeu si elle ne vous montre pas le score vous atteint. Mais comment marquer ce jeu ? Par quantité d’obstacles esquivé ! Mais cela signifie-t-il qu'une pinte devrait être ajoutée chaque fois que vous cliquez sur un bouton et ne pas mourir ? Qui faciliterait niveaux avec beaucoup d’obstacles dans les différentes voies en début de partie injustement et utilisateur pouvait tricher en cliquant plusieurs fois lorsque le jeu démarre et il n’y a pas d’obstacles... Ajouter un point pour chaque bloc que se sont rendu sans heurter quoi que ce soit, est une meilleure façon de marquer des joueurs. Je pourrais effectivement le nom « distance parcourue » mais « score » sonne mieux.
Parce que le vaisseau commence à la position 4 et le terrain est vierge tout le match commence, joueur commence par les points négatifs de 12. De cette façon il aura 0 score si il frappe le premier obstacle.
Mise à l’échelle de Difficulté
Mais même marquant vous ne pouvez pas faire coller avec le jeu si c’est trop facile. Vous ennuyer et arrêtez de jouer. Jeu de mises à jour d’écran par défaut toutes les 0,7 secondes (Steptime est variable). Qui est très bien pour commencer mais devient ennuyeux très rapidement. Évidemment, il doit y avoir quelques difficultés de mise à l’échelle mis en œuvre. J’ai décidé de le faire en accélérant le jeu - en abaissant la variable Steptime est. Sur chaque étape, elle est réduite par quantité de difficultés. J’ai trouvé cette difficulté entre 1 et 3 fonctionnent le mieux. Si vous la définissez plus haut, le jeu devient très vite trop dur. Si vous souhaitez plus grand défi, je recommande surbaissement Steptime est variable et en laissant la difficulté faible. Que vous aurez plaisir trépidant jeu.
Nous n’avez pas besoin de s’inquiéter de limiter Steptime est toujours supérieure à 0 car le joueur ne peut éventuellement pas aller loin quand il a à prendre des décisions en dixième de seconde, comme une touche même prend plus de temps.