Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
jk2pach Invité
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 11/03/09 23:37 Sujet du message: |
|
|
Le principe serait de faire une projection polaire du point de croisement entre la ligne rouge et la verte.
Ensuite la même chose à partir de ce point, en utilisant l'angle de l'unité +- 90° avec différentes distances pour placer tes dummy.
La même chose à partir des positions de tes dummy pour les faire avancer.
Il y a différents moyens d'optimiser mais je te laisse deja faire ça, on verra pour le reste après^^ _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
retely Membre reconnu
Inscrit le: 04 Juil 2008 Messages: 1195 Sujets: 73
|
Posté le: 11/03/09 23:38 Sujet du message: |
|
|
Facile avec le tutorial de Gevans
Donc tu fais une variable Réel X, et tu la "Reset" avec un set X=0 (oui car elle a put être utilisé avant)
Ensuite, on se place dans un graphique avec deux Axes X et Y ( 0.00 ; 0.00 ) donc on créé une ligne de projectile devant le héro donc on mais en X 10 pour avoir une distance, et en Y on met X ( vu le vecteur que tu as dessiné, on devrait set X = -( 20 x 15 ) / 2 pour avoir une symetrie entre le haut et le bas du vecteur rouge puis on répéte le projectile 15 fois avec une montée en Y.
Le problème la dedans, c'est que les projectiles se placeront pas devant devant le héro, mais toujours a droite... car on est dans un repère fixé, ne dépendant pas du héro !
Où est la trigo ? _________________
|
|
Revenir en haut |
|
|
jk2pach Invité
|
Posté le: 12/03/09 00:21 Sujet du message: |
|
|
Moi j'avais fait ça (je vous passe l'ensemble du déclencheur)
d1 est la distance entre le caster et le segment rouge.
a1 est le facing du caster.
Jass: | ocal real ox1 = x1 + d1 * Cos(a1+90.00)
local real oy1 = y1 + d1 * Sin(a1+90.00)
local real ox2 = x1 + d1 * Cos(a1-90.00)
local real oy2 = y1 + d1 * Sin(a1-90.00)
loop
set i = i + 1
exitwhen i > 6
set x2 = (ox1+ox2)/i
set y2 = (oy1+oy2)/i
set x3 = x2 + d2 * Cos(a1)
set y3 = y2 + d2 * Sin(a1)
set dum = CreateUnit(pl,id,x2,y2,a1)
endloop
|
_________________
|
|
Revenir en haut |
|
|
jk2pach Invité
|
Posté le: 12/03/09 03:32 Sujet du message: |
|
|
Oubliez ce que j'ai dit. La première méthode que j'avais utilisé était bonne, à part que j'avais oublié d'utiliser le BJ_Degtorad.
Ca donne quelque chose comme ça :
Jass: | loop
set i = i + 1
set n = n + 0.50
exitwhen i > 6
set x2[i] = x1 + n*d1 * Cos((a1+90.00)* bj_DEGTORAD)
set y2[i] = y1 + n*d1 * Sin((a1+90.00)* bj_DEGTORAD)
set dum[i] = CreateUnit(pl,id,x2[i],y2[i],a1)
call DestroyEffect(AddSpecialEffect(fx,x2[i],y2[i]))
set x2[i+6] = x1 + n*d1 * Cos((a1-90.00)* bj_DEGTORAD)
set y2[i+6] = y1 + n*d1 * Sin((a1-90.00)* bj_DEGTORAD)
set dum[i+6] = CreateUnit(pl,id,x2[i+6],y2[i+6],a1)
call DestroyEffect(AddSpecialEffect(fx,x2[i+6],y2[i+6]))
endloop |
_________________
|
|
Revenir en haut |
|
|
Max Floodeur prématuré
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
|
Posté le: 12/03/09 18:14 Sujet du message: |
|
|
Tu devrais plutot utiliser les fonctions CosBJ et SinBJ :
Cos((a1+90.00)* bj_DEGTORAD)
-> CosBJ( a1+90.00 )
Plus pratique d'utilisation, et aussi à lire.
Cependant tu fais les mêmes calculs plusieurs fois :
(a1+90.00)* bj_DEGTORAD deux fois
Tu devrais passer par une variable intermédiaire, par exemple angle :
set angle = (a1+90.00)* bj_DEGTORAD
De même que pour n*d1, que tu calcules 4 fois.
set dist = n*d1
Cela donnerait au final les lignes suivantes :
set x2[i] = x1 + dist * Cos( angle )
set y2[i] = y1 + dist * Sin( angle )
Deux avantages : économiser des calculs et obtenir des lignes de codes plus compréhensibles. _________________
|
|
Revenir en haut |
|
|
retely Membre reconnu
Inscrit le: 04 Juil 2008 Messages: 1195 Sujets: 73
|
Posté le: 12/03/09 19:03 Sujet du message: |
|
|
Ah là je vois la trigo ^^ _________________
|
|
Revenir en haut |
|
|
zril Membre actif
Inscrit le: 02 Jan 2008 Messages: 175 Sujets: 35
|
Posté le: 13/03/09 13:21 Sujet du message: |
|
|
Si j'ai bien compris, le sort crée une ligne droite, alors je comprends pas trop pourquoi t'utilise de la trigo.
Je suis sur une map ou j'ai créé une bonne douzaine de sort à base de dummy dans le même genre que le tien. Je ferai peut-être une video démo un jour pour vous montrer.
edit : ah en fait ça fait une ligne droite au départ mais après ils convergent tous vers un même point, c'est ça ? _________________
|
|
Revenir en haut |
|
|
jk2pach Invité
|
Posté le: 13/03/09 13:34 Sujet du message: |
|
|
Ca créé une ligne perpendiculaire au héro de dummys, et ça les lance en ligne droit en face d'eux mêmes.
Les dummys sont secondaires, ça aurait aussi bien pu être un effet spécial
Mais oui j'ai déjà fait les variantes "ça converge", "ça diverge" etc...^^ _________________
|
|
Revenir en haut |
|
|
zril Membre actif
Inscrit le: 02 Jan 2008 Messages: 175 Sujets: 35
|
Posté le: 14/03/09 01:04 Sujet du message: |
|
|
Pour les "lancer", tu recrées d'autres dummies ou tu les déplaces ?
Mais de toute façon, pour faire des trajectoires en ligne droite, tu dois t'en sortir sans trigo. _________________
|
|
Revenir en haut |
|
|
jk2pach Invité
|
|
Revenir en haut |
|
|
zril Membre actif
Inscrit le: 02 Jan 2008 Messages: 175 Sujets: 35
|
|
Revenir en haut |
|
|
jk2pach Invité
|
Posté le: 14/03/09 01:48 Sujet du message: |
|
|
héhé.
Sinon effectivement créer plusieurs dummys rend bien, mais là ça en ferait beaucoup trop: il y a une dizaine de dummys à l'origine, alors si je dois les cloner toutes les 0.03 secondes sur une distance de 600 ou dans ces eaux là, ça fait trop d'unités en même temps.
Je limite au maximum l'usage de dummys quand ils ne servent qu'à un effet graphique. _________________
|
|
Revenir en haut |
|
|
retely Membre reconnu
Inscrit le: 04 Juil 2008 Messages: 1195 Sujets: 73
|
Posté le: 14/03/09 12:04 Sujet du message: |
|
|
Mais, si ces unités n'ont aucun models, elle ne ralentissent pas ! si ? _________________
|
|
Revenir en haut |
|
|
zril Membre actif
Inscrit le: 02 Jan 2008 Messages: 175 Sujets: 35
|
Posté le: 14/03/09 12:21 Sujet du message: |
|
|
Ce sont des dummies avec des modèles, le but étant qu'on ne puisse pas les sélectionner tout en ayant l'effet visuel.
edit : en fait je sais pas si il fait comme ça, mais moi c'est comme ça que je fais. _________________
|
|
Revenir en haut |
|
|
|