Re: Portal BGE

Posté par Bobibou le 23/10/2010 11:30:10
Citation :
L'inversion (-rot si j'ai bien compris ce que tu me demandes) c'est parce que la vue du joueur est inversé d'un portail à l'autre (s'il rentre en "marche arrière", quand il ne regarde pas le portail il en ressort en le regardant, pareil dans l'autre sens, donc il faut inverser). Et le angle = ... - phi c'est pour la symétrie par rapport à la normale.

Heu je pensais plutôt à rot.invert(), mais si tu dis que -rot fait la même chose, ça sera plus simple.
edit : Bah non, ça marche pas, "-rot"...Faut faire rot.invert()

Citation :
La division par mod (le module du projeté (sa longueur, si tu préfères)) c'est pour agrandir le projeté si son module n'est pas égal à 1 (produit en croix) :
(avec x' et y' les coordonnées du projeté (donc z'=0) et x, y et z les coordonnées de la normale)
x' = x*module(x, y, z)/module(x, y) = x*1/module(x, y) = x/module(x, y)
y' = y*module(x, y, z)/module(x, y) = y/module(x, y)

On a donc:
module(x', y')² = (x')² + (y')² = x²/(x² + y²) + y²/(x² + y²) = (x² + y²)/(x² + y²) = 1

Or la racine carré de 1 est 1 : le projeté est correcte

Ou là !
A froid, je te suis pas, mais j'essayerais de faire un dessin.

Et merci encore pour le code, je vais tester ça. Mais pour les objets en général, n'y a-t-il pas un moyen de conserver la force sans tous ces calculs ? Parce que Warwick ne se prend pas la tête avec tout ça...

edit : J'ai testé, et il y a un problème : le cos de cmath donne une complexe, et une force doit être donnée par des float...Et float() ne fonctionne pas pour la conversion. Que faire ?

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=27924&post_id=347470