Pong sur le PIC de XGS (7 / 36 étapes)

Étape 7: Constructions de jeu - jeu de logique - Collision Detection mise en œuvre

Lorsque vous travaillez dans l’espace à 2 dimensions, la mise en œuvre est en réalité un peu plus simple. Plutôt que d’avoir une boucle de vérifier tous les points tangents possibles sur les deux objets ou arêtes, vérification d’au plus deux points suffiront dans tous les cas.

En se concentrant sur les bords supérieur et inférieur, (x, 0) et (x, Y - s) sont les points de tangence seulement possibles, où 0 < = x < = x. n’oubliez pas que chaque objet est représenté logiquement par paire ordonnée qui est son angle supérieur gauche. Si l’emplacement de la balle est (bx, b,y) et si by= 0, alors la balle est tangent à la partie supérieure de l’écran. Cela ne nécessitait qu’une seule comparaison pour savoir quand changer de l’État vers le bas. En outre, si by = Y - s, alors que le ballon doit également changer son état en se déplaçant vers le haut.

Les bords gauche et droit sont tout aussi simples. Rappelons que (0, y) et (X - s, y) sont les points de tangence possibles, où 0 < = y < = Y. L’étape suivante consiste à comparer la bx à 0 et X - s. Si bx est égale à une des valeurs suivantes, la condition de notation s’est produite. Sans doute, la balle sera réinitialisée afin de continuer à jouer.

La dernière série de cas, lorsque la balle entre en collision avec la pagaie, est seulement un peu plus difficile. Soit (p,x, p,y) est l’emplacement actuel de la raquette. En se concentrant sur la palette de gauche, la première chose à vérifier est les coordonnées x correctes. Pour la palette de gauche, tous les points de tangente verticales possibles se trouvent sur (px + w, y), où 0 < = y < = Y. logiquement, si px + w = bx, puis une collision peut se produire. Il y a quelques autres points à vérifier.

L’étape suivante consiste à comparer les coordonnées y. Graphiquement, une collision devrait se produire exactement quand n’importe quel pixel de la balle est entre les bords supérieur et inférieur de la raquette. De la section précédente sur la détection de collision, tous les points de tangence possibles peuvent qualifier tous les points entre (px + w, p,y) et (px + w, py + h) si h est la hauteur de la raquette. À ce stade, il est possible de simplifier l’algorithme en comparant seulement deux points. Si le coin supérieur gauche ou le coin inférieur gauche est tangente à la pagaie, alors il doit y avoir au moins un point de la balle qui visuellement ressemble à c’est entrer en collision avec la pagaie. En vérifiant ces deux points, l’algorithme vérifie tous les points sur le côté gauche de la boule implicitement. La palette de droite fonctionne de manière similaire, sauf les points à vérifier sont les coins haut - et bas-droite de la boule, trouvé par (b,x + s, b,y) et (b,x + s, by + s).

Lors de l’implémentation de la détection de collision, l’ordre des questions de comparaisons. Calculs et, par conséquent l’heure, peut être sauvé en vérifiant les points saillants dans un certain ordre. Prenez, par exemple, la palette de gauche. Supposons que les coordonnées y ont été vérifiées en premier dans l’algorithme. Par nature, c’est une expression compliquée dans de nombreux langages de programmation. Après que cette expression est cochée, l’étape suivante consisterait à comparer les coordonnées x. Pendant l’exécution, il serait probable que le lecteur suit le ballon étroitement sur le plan vertical, donc la première comparaison sera vraie au moins quelques fois durant le jeu, même lorsque le ballon est de l’autre côté de l’écran. L’expression de l’abscisse, cependant, sera vraie exactement une seule fois pour tout à fait quelques images. Si les comparaisons ont été retournées, le calcul ordonnée coûteux peut être sauvegardé pour être utilisés seulement exactement quand nécessaire, car il peut arriver s’avèrent quelques fois lorsqu’elle n’est pas nécessaire.

Par conséquent, la détection de collision pour les pagaies ressemblera à quelque chose comme ceci :

1. Vérifiez si bx = px
2. Vérifiez si by < = py et by < = py + h, ou si by + s < = py et by + s < = py + h
3. changer l’état de boule

Chacune des étapes suivantes doivent être remplies afin de continuer sur celle qui suit. Les collisions de bord écran fonctionnent exactement comme décrit, puisqu’il n’y a seulement un seul point à vérifier.

Articles Liés

Comment faire la meilleure Table de Beer Pong sur le campus

Comment faire la meilleure Table de Beer Pong sur le campus

Êtes-vous fatigué de jouer pong bière boiteux pli des tables ?  Ou peut-être fatigué de prendre vos amis porte les gonds, chaque fois que vous voulez jouer ?  Vous êtes-vous déjà demandé comment ils construisent toute la bière fraîche, tables de ping
Nulle part de Beer Pong sur roues

Nulle part de Beer Pong sur roues

nous aimons jouer pong bière alors j'ai créé ma propre version pour prendre n'importe où. Il peut être pris à part et stockées, et c'est sur roues. Le projet nécessite de couture et m'a pris environ 2 heures. Camping cet été va être un souffle lorsqu
Pong sur Arduino esplora !

Pong sur Arduino esplora !

Hey tout le mondeL'Arduino Esplora est un microcontrôleur incroyable utilisant le grand 32u4 Atmega avec intégré usb serial ainsi que de nombreux grands capteurs tels que :-Capteur-Capteur-Accéléromètre 3 axes-Joystick-Slider-RGB LED-BuzzerMaintenant
Comment mettre le texte sur un pic

Comment mettre le texte sur un pic

il s'agit d'un instructables sur comment mettre le texte sur une image. Je vais faire des choses en utilisant ce lapin heureux (très très ennuyeux)alors Amusez-vous.Étape 1: Les choses dont vous aurez besoin Chose que vous aurez besoin:PC ou ordinate
Bob l’éponge sur le mur

Bob l’éponge sur le mur

J'ai voulu une murale spéciale pour notre fille, quand j'ai enlevé un morceau de mousse à la salle d'artisanat, je suis venu avec une idée sympa de verryÉtape 1: mousse de rembourrage j'ai coupé dans la pièce de mousse le corps de Bob l'EpongeÉtape 2
PIC 12F675 programmeur/OscCal restauration/testeur

PIC 12F675 programmeur/OscCal restauration/testeur

Un de mes circuits que je construis assez souvent (20-40 à la fois), utilise un PIC 12F675. J'ai eu les problèmes suivants :Les conseils que je fais, n'a pas les capacités de programmation en circuit. C'est pour permettre une mise en page du Conseil
Ping Pong Gun

Ping Pong Gun

il s'agit d'un très amusant moyen de jouer au paintball sans toute la peinture. Ces armes sont faciles à faire et nécessite peu de matériel.Étape 1: Les matériaux Vous avez besoin :1-1/2 pouces ABS pipe (d'environ 18 pouces de long)-bouteille d'eau d
Amusez-vous avec PIC Assembly - Episode 22

Amusez-vous avec PIC Assembly - Episode 22

Le dicton est que « la nécessité est la mère de l'invention ». En réalité, cependant, il y a beaucoup de « mères » de l'invention. Mon préféré est « paresse » mais parfois trucs obtient inventé juste parce que c'est un plaisir au défi de comprendre u
Comment peindre une pépinière sur le thème de star/nuit-ciel qui durera jusqu’au lycée.

Comment peindre une pépinière sur le thème de star/nuit-ciel qui durera jusqu’au lycée.

Avant j'ai même eu des enfants, j'ai commencé à peindre ma chambre d'hôtes dans un thème de star/nuit-ciel parce que je suis vraiment, vraiment, vraiment noix pour l'espace et toutes les choses liées à la star. Comme la « all-I-ever-wanted-to-be-was-
Comment faire pour s’accrocher à une palette de ping-pong

Comment faire pour s’accrocher à une palette de ping-pong

Ping pong est un sport étonnant qui exige une coordination oculo-manuelle précise et des réflexes. Il faut habileté à frapper la balle et même plus de compétences de frapper la balle sur la table. Compétences de base à connaître sont pouvant servir l
Éponge + méthode de chlorure ferrique--Etch PCB en une Minute !

Éponge + méthode de chlorure ferrique--Etch PCB en une Minute !

Dans ce Instructable, je vais vous montrer Comment etch un circuit avec environ une cuillère à soupe de chlorure ferrique solution de gravure et une éponge carrée de 2 pouces. Vous serez surpris comme le cuivre exposé sur le circuit imprimé disparaît
Clignoter une LED avec langage assembleur & un PIC

Clignoter une LED avec langage assembleur & un PIC

pour énoncer l'évidence aveuglante, il y a beaucoup de saveurs du microcontrôleur dans le monde.  Il y a d'innombrables applications pour eux aussi.  Ce Instructable couvrira les étapes nécessaires à clignoter une LED en utilisant un microcontrôleur
Comprendre l’ICSP pour les microcontrôleurs PIC

Comprendre l’ICSP pour les microcontrôleurs PIC

programmation de microcontrôleurs n'est pas difficile. Construire un programmeur rend un grand premier projet électronique. L'objectif de cette instructable est d'expliquer la méthode simple « in circuit serial programming » utilisée avec PICs de Mic
Starry Night argile polymère plat porte-éponge

Starry Night argile polymère plat porte-éponge

j'étais fatigué de mon porte-éponge en plastique moche.  J'ai lu que l'argile polymère cuite est assez résistant à l'eau, et gens ont fait des scultpures en plein air avec lui.  Je décide donc d'utiliser l'argile polymère pour rendre le porte-éponge.