Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
Publicité
|
|
Re: Portal BGE - Version 1.5 - 5 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 24/07/2008 00:45
De Paris
Post(s): 3445
|
Nous passons maintenant à la 1.6 ! J'ai en effet ajouté un niveau utilisant la transmission de force, bien qu'elle soit encore à améliorer. Le niveau 7 est fait vite fait et n'a encore aucun intérêt. En fait, c'est juste pour les tests de la tourelle et du bouclier. La tourelle a été un point intéressant à traiter avec son articulation en deux temps et le bouclier, qui est censé renvoyer les lasers à la façon d'un miroir, est lui aussi un beau casse tête...En théorie, ma technique fonctionne mais en pratique l'angle de réflexion du laser n'est absolument pas influencé par l'orientation du bouclier ce qui est, au vu de mon script (Bouclier.py, il est court  ), tout à fait improbable ! Je vous laisse voir par vous même :  Pas de nouvelle texture !  Pour voir le renvoi des lasers, il ne faut pas utiliser la caméra parce que sinon, on se rend très mal compte. Si par hasard vous arriviez à renvoyer les lasers sur la tourelle, ce qui est totalement improbable dans l'état actuel du script mais qui l'a été de façon passagère lors de mes différents tests, sachez qu'en 20 coups vous détruisez la tourelle et qu'elle ne tire plus. Mais ce bouclier, qu'il faudra tout d'abord obtenir, ne servira pas qu'à détruire les tourelles : bien d'autres éléments pourront être affectés...sauf que je ne sais pas encore lesquels.  Je manque un peu d'inspiration pour la création de niveaux, mais Moaaa m'a donné une idée intéressante : faire des salles qui peuvent tourner, ce qui reviendrait grosso modo à modifier la gravité. Avec ça, on peut faire beaucoup de choses ! Encore faut-il mettre en oeuvre cette belle idée. D'autre part, si vous aussi vous avez des idées, n'hésitez pas ! 
Contribution le : 20/11/2010 19:45
|
|
|
Re: Portal BGE - Version 1.5 - 5 niveaux fonctionnels |
|
Fou Furieux du Clan 
Inscrit: 02/11/2008 19:26
Post(s): 238
|
Je ne sais plus si je te l'avais dit, mais le perso est un peu lent J'ai une bonne nouvelle pour toi : je t'ai refait le script Portail.py, de tel sorte que la réorientation (perso + force) marche comme tu le voulais. Mais niveau méthode, j'utilise toujours les complexes (pour pouvoir utiliser phase() qui donne directement le bon angle (sur ]-pi, pi])). Voilà le script : from bge import logic as gl
from mathutils import *
from math import *
from vec import *
from cmath import phase
x, y, z = 0, 1, 2
cont = gl.getCurrentController()
scene = gl.getCurrentScene()
own = cont.owner
col = cont.sensors["Col"]
if col.positive and own["active"] :
obj = col.hitObject
parent = obj.parent
if not parent == None :
parent = parent.name
else : parent = ""
if not obj["prec"] == int(own["bleu"]) and not parent == "EmptyTir" :
object_list = scene.objects
if own["bleu"] :
portail = object_list["PortailOrange"]
else :
portail = object_list["PortailBleu"]
if portail["active"] :
rotObj = obj.worldOrientation
rotOwn = own.worldOrientation
rotPortail = portail.worldOrientation
force = obj.worldLinearVelocity
# Deplacement
obj.position = portail.position + rotPortail[z]
# Rotation
if -0.7 < rotPortail[z][z] < 0.7 and -0.7 < rotOwn[z][z] < 0.7 :
# Calcul de l'angle entre le 1er portail et le joueur
angle = phase(complex(-rotObj[y][x], -rotObj[y][y]))\
- phase(complex(rotOwn[z][x], rotOwn[z][y]))
# Calcul de l'angle entre le 2nd portail et le joueur
objYrot = phase(complex(rotPortail[z][x], rotPortail[z][y])) - angle
obj.orientation = [[cos(objYrot - pi/2), sin(objYrot - pi/2), 0.], [cos(objYrot), sin(objYrot), 0.], [0., 0., 1.]]
# Transmition de la force
if -0.7 < rotPortail[z][z] < 0.7 and -0.7 < rotOwn[z][z] < 0.7 :
modForce = (force[x]**2 + force[y]**2 + force[z]**2)**0.5
angle = phase(complex(-force[x], -force[y]))\
- phase(complex(rotOwn[z][x], rotOwn[z][y]))
forceApp = phase(complex(rotPortail[z][x], rotPortail[z][y])) - angle
obj.worldLinearVelocity = [cos(forceApp)*modForce, sin(forceApp)*modForce, force[z]]
obj["prec"] = abs(int(own["bleu"]) - 1)
P'tite explication : phase(complex(vecteur[x], vecteur[y])) sert à obtenir l'angle entre le vecteur et l'origine du repère (l'axe des abscisses) sur le plan (0, x, y). Pour obtenir l'angle entre le vecteur A et le vecteur B et bien on soustrait les angles... Et on se sert des fonctions sinus et cosinus pour retrouver les coordonnées d'un vecteur. S'il y a toujours quelque chose que tu ne comprends pas, j'essayerai de te faire un schéma. Bon blend 
Contribution le : 21/11/2010 22:02
|
_________________
Guillaume
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 18/09/2009 20:52
De Paris
Post(s): 1860
|
Je suggère que tu Re-uppes un fichue avec toutes les textures, ça évitera aux personnes qui veulent tout DL de partir à la pêche dans tout le thread.
LadeHeria
Contribution le : 21/11/2010 22:11
|
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 24/07/2008 00:45
De Paris
Post(s): 3445
|
C'est centralisé sur la première page du post (je le répète...  ) En gros il y a une archive et trois textures pas indispensables (aide, sphère et normal map de la sphère) Merci gui36fr, je verrais tout ça demain parce que là, dodo !
Contribution le : 22/11/2010 00:00
|
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 12/12/2007 20:02
De quoi tu te mêles !
Post(s): 1073
|
Quoi dire... Elle est hyper bugguée comme version :S Presque à chaque fois que je passe dans une porte, je sors dans le décors... et pourtant j'essaie pas de tricher, même pire, quand je triche, ça marche mieux qu'en temps normal..
Contribution le : 22/11/2010 00:30
|
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 24/07/2008 00:45
De Paris
Post(s): 3445
|
Oh là il va vraiment falloir que je revois tout ça. Je crois que le plus simple pour éviter les bugs de position va être de placer le joueur au centre du portail et non relativement à la position d'entrée...
Contribution le : 22/11/2010 19:56
|
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 24/07/2008 00:45
De Paris
Post(s): 3445
|
Je profite du fait qu'OpenGL fonctionne en ce moment pour faire une petite révision. Je travaille sur le niveau 7 dans lequel il faudra actionner le levier pour faire pivoter le couloir au-dessus, ce qui permettra de passer. Le dépliage n'est pas encore fait, ce qui est là est ce qui s'est fait au fil des extrusions. Mais là j'ai un problème avec le portail orange : il n'est plus modifier par les actuators F-Curves...Selon la frame laquelle on lance le jeu, ou on ne le voit pas (frame <= 1), ou il est tout petit (1 < frame < 5), ou il est de la bonne taille (frame >= 5), mais dans tous les cas il n'y a plus d'animation.  Chose curieuse, il ne se passe rien de mal sur le bleu, seul le orange fait des siennes... Pour ton script, gui36fr, je n'ai testé pour le moment que la rotation, mais la méthode matricielle fonctionne très bien depuis que j'ai résolu mon précédent problème. Simplement, j'avais oublié de l'implémenter dans la version "officielle", c'était resté dans mon blend de test. En ce qui concerne les bugs de passage au travers des murs lors du passage au travers des portails, c'est assez compliqué, mais je sais déjà d'où vient le problème : lorsqu'on rentre par le haut du portail, on sort par le haut du portail, donc si un des portails est juste contre le haut du terrain et que l'on tire au sol le second, on risque de se retrouver au plafond.  Exemple en vidéo, dans le style de la future intro : -- En upload sur YouTube -- Le blend : 
Contribution le : 24/11/2010 13:47
|
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
Fou Furieux du Clan 
Inscrit: 02/11/2008 19:26
Post(s): 238
|
Ton problème de portail qui ne s'affiche pas n'apparaît que dans le niveau 6, et devine quoi, je n'ai trouvé ni le portail bleu ni le portail orange dans cette scène. Donc soit le problème viens de là soit je suis bigleux. Vérifie les raccords des briques logiques au passage. Pour les fosses, j'ai deux idées : si ton jeux se font dans une sorte de base spatial et tu peux alors faire un trou qui mène tout droit dans l'espace. Sinon ce sera les entrailles de la planète. Une autre idée : des tuyaux transportant quelque chose de très dangereux (comme du plasma ou une autre source d'énergie). Pour attraper la balle, applique lui une force orienté vers le bout de ton arme, et dès qu'elle la touche la force disparait et la balle est parenté à l'arme. Voilà  Bon blend 
Contribution le : 24/11/2010 16:02
|
_________________
Guillaume
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
OverdOzed 
Inscrit: 24/07/2008 00:45
De Paris
Post(s): 3445
|
Voilà la vidéo. http://www.youtube.com/watch?v=uiFHHyrS-RMPour les trous, ouais, je vais faire un fossé infini, c'est le plus simple. Le problème de portail, il est dans tous les niveaux, et seulement sur le orange. Dans le niveau 6 (comme dans tous les autres) il faut activer les deux premières scènes.  Le tuyau, c'est sympa comme idée, ou peut-être juste un transfert d'énergie sous forme d'éclair qu'il faudrait désactiver quoi. Le coup de la force pour attirer la sphère, c'est une idée, mais il va falloir tester parce que je suis pas sûr que ça marche à tous les coups... D'ailleurs, il faut que je fasse disparaître la cible lorsqu'on porte un objet...
Contribution le : 24/11/2010 16:53
|
|
|
Re: Portal BGE - Version 1.6 - 6 niveaux fonctionnels |
|
Fou Furieux du Clan 
Inscrit: 02/11/2008 19:26
Post(s): 238
|
La fin de la vidéo me paraît un peu trop rapide... Mais ça explique bien le fonctionnement. Faudrait par contre mettre un message comme quoi toutes les surfaces ne peuvent pas recevoir un portail. En parlant de ça, on peut superposer les portails, à corriger  Pour attirer la sphère, un bout de script qui récupère le vecteur unitaire du vecteur sphère - extrémité de l'arme, tu multiplie par la valeur de ta force que tu rentre dans un actuator et c'est bon. Un sensor collision (ou near comme tu veux) pour stopper l'actuator et parenter la boule par la suite. Le seul problème que je vois c'est si la boule reste bloquée : deux solutions : ou il faut appuyer constamment sur 'E' pour appliquer la force, ou elle disparaît après un petit temps. Faudrait par contre trouver un moyen de la détruire pour tout débloquer (et faire une explosion lorsque qu'elle touche la source d'énergie mortelle, mais j'en demande peut être un peu trop...). Et pour le portail orange, il n'y a que dans le niveau 6 que ça plante chez moi 
Contribution le : 24/11/2010 17:18
|
_________________
Guillaume
|
|
Sujets récemment répondus |
|
|
|
Qui est en ligne
98 utilisateur(s) en ligne (dont 66 sur Forums) Membre(s): 0 Invité(s): 98 plus... Nouveaux membres
Dernier Ajout
Evènements à venir
|