6
votes

Logiques de balle rebondissant

J'ai une balle qui rebondit de murs. Ce rebond est simple, je viens de le faire, (snippet de code) xxx

Cependant, j'ai aussi reçu un rectangle que le joueur se déplace. Le rebond sur cela fonctionne pratiquement comme rebond sur les murs.

< P> Mais j'ai compris que quand une balle a eu un mouvement similaire comme la photo, c'est impossible pour moi de le faire suivre tout de suite. J'ai donc besoin d'une sorte de calcul quant au mouvement des rectangles pour influencer l'angle de la balle à venir. Le rectangle a toujours une vitesse de déplacement constante lors du déménagement. Cette image montre un rectangle en mouvement à gauche et la balle le frappant pendant son mouvement, ce qui entraîne un angle de 90 degrés. (Qui ne devrait pas toujours être 90).

Désolé pour mes photos de merde j'espère avoir un sens. Mes maths sont rouillés c'est pourquoi je pourrais vraiment avoir besoin d'une poussée dans la bonne direction.


3 commentaires

Fournir un certain code de votre tentative sur cette ^ _ ^


Voulez-vous avoir une physique précise ou simplement quelque chose qui "se sent mieux" que le comportement actuel?


Les vecteurs euclidiens et le théorème de Pythagoreen devraient être suffisants pour une physique simple comme celle-ci.


4 Réponses :


9
votes

Voici un tutoriel sur certaines physies (ce que vous devez savoir) et vous devez en savoir plus sur les vecteurs. Le tutoriel ne dépasse pas exactement ce que vous recherchez (le reflet du rebond et des angles), mais c'est un bon départ pour commencer, car vous aurez besoin de savoir tout cela pour terminer votre projet. Jeu Physics 101

Si vous voulez le faire, le moyen facile, ici est le code en C ++ qui décrit exactement comment faire ce que vous recherchez.

Edit


Vous devriez d'abord vérifier le deuxième lien, c'est un didacticiel sur ce que vous devez savoir exactement. Mais si vous cherchez à faire plus que simplement faire rebondir la balle autour, dites-vous d'autres objets en mouvement ou quelque chose comme ça, consultez le premier lien.


1 commentaires

Le code a été transposé à JS au moment de la rédaction de ce commentaire, je n'ai pas encore été en mesure de trouver la version C ++.



7
votes

Pas besoin de mathématiques de fantaisie ici. Ma compréhension de ces types de jeux est que l'angle de la balle est désactivé de la pagaie est déterminé par où il fait rebondir la pagaie. Si elle rebondit au milieu, l'angle actuel est préservé. Comme il rebondit plus près du bord de la pagaie, l'angle est réglé dans la direction de ce côté de la pagaie. Pensez à la pagaie comme une surface arrondie.


4 commentaires

L'angle résultant ne serait-il pas basé sur la vitesse de la "pagaie"?


Se souvenir de jouer à Pong, même si la pagaie est stationnaire, si la balle frappa près de l'extrémité, l'angle était grandement affecté dans cette direction. Je pense que @treebranch a raison. Je pense que le mouvement de la pagaie au moment de l'impact n'a pas eu aucune incidence - uniquement lorsque la balle frappe.


Merci pour cette approche simple, je vais certainement faire cela si gabes répondit s'avère être un peu exagéré pour mon jeu.


Je vais vous donner la bonne réponse car c'est la solution que j'ai fini par utiliser.



1
votes

Ce code montre comment rebondir le ballon ou dans une autre direction en inversant le x ou y wewing with ball.headingx = -ball.headingx et balle.hedingy = -ball.heingy .

mettre la théorie à la pratique: xxx


1 commentaires

En montrant comment inverser la position de la balle avec balle.Headingx = -ball.heingx and ball.Headingy = -ball.heingy.



4
votes

Aller la voie de la simulation de la physique réelle (par opposition à la réponse de @ Treebranche, ce qui est de savoir comment ces types de jeux fonctionnent vraiment) peuvent être très compliqués. Vous pouvez envisager un frottement, une spin, une durée de contact, etc. Voici quelques liaisons qui discutent de cela.

https : //physics.stackexchange.com/questions/11686/finding-angular-velocity-and-regular-velocity-Quand-bouncing-off-a-surface-with-f

HTTPS: // Physique. stackexchange.com/questions/1142/is-Ithere-a-2d-générisation-fre-Ceutre-fefficicice-of-Efficicice-frestitution/


0 commentaires