Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.phpMédailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Question de collision
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 19/01/08 14:12    Sujet du message: Question de collision Citer

Bonjour,
Voilà, j'ai fais un système pour que les unités glissent dans une région (les unités avance à chaque intervalle de temps devant elle avec une certaine vitesse.
Le problème c'est que je voudrais que quand 2 unités se rencontrent elles changent de direction (qu'elles rebondissent entre-elle). Donc j'ai fais 8 déclos (il y a 8 unités qui sont "sur la banquise", chacune assignée à une variable), pour faire tourner les unités je crée la même unité en changeant son "facing angle" car si j'utilise l'action "make unit face..etc" l'unité prend 1 seconde à tourner et l'effet est très mauvais, car l'unité doit tourner directement c'est pourquoi je crée une autre unité et je détruit l'ancienne.
Donc au début de la map je rajoute à mes 8 déclencheurs l'événement respectif "a unit comes within 100 of son unité respective".
Les actions de chaque déclencheurs échangent les "facing angle" de chaque unité :
ex: unit1(facing angle = 0) se cogne à unit2(fc = 90) => unit1 (fc = 90) et unit2 (fc = 0).
Sauf que à chaque fois que je fais se tourner une unité j en crée une nouvelle comme expliqué plus haut et donc je change la variable assignée à l'unité donc je dois rajouter l'événement "a unit comes within 100 of son unité respective" à chaque fois qu'une unité tourne ce qui arrive très souvent.
Ce système ne marche pas et crée un leak. C'est pourquoi je sollicite votre aide pour trouver une solution à se problème.
J'espère que vous m'avez compris.
Merci.
_________________


Dernière édition par Le vagabond le 19/01/08 15:27; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 19/01/08 14:56    Sujet du message: Citer

Citation:
Sauf que à chaque fois que je fais se tourner une unité j en crée une nouvelle

Oho j'en vois vraiment pas l'intérêt, même le pire escape jamais créé n'utilise pas cette méthode.
Si tu veux que l'unité tourne instantément aprés en avoir reçu l'ordre y'a une action pour cela.
(Move unit instantly face angle/point)
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 19/01/08 15:20    Sujet du message: Citer

Bah le problème c'est que quand j'utilise cette action l'unité met un temps fou à se tourner... Crying or Very sad
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 19/01/08 15:47    Sujet du message: Citer

fais voir ce que tu faisais
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 19/01/08 16:02    Sujet du message: Citer

Pour tourner ou pour le reste? Parce que pour tourner j'ai esseyer avec les 2 actions :

Gui:
Trigger:
Unité - Move (Triggering unit) instantly to (Center of (Playable map area)), facing Orientation bâtiment par défaut degrees
Unité - Make (Triggering unit) face Orientation bâtiment par défaut over 0.00 seconds

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 19/01/08 16:16    Sujet du message: Citer

c'est quoi ton déclencheur au complet ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 19/01/08 17:01    Sujet du message: Citer

J'ai tout mis dans un seul déclo finalement il a tous les événements de 1 à 8 :"a unit comes within 120 of skater[1]. Skater est la variable unité.

Gui:
Trigger:
collisionuniverselle
Evénements
Conditions
Collapse Actions
Partie - Display to (All players) the text: (Name of (Owner of (Triggering unit)))
Collapse Groupe unité - Pick every unit in (Units within 150.00 of (Position of (Triggering unit)) matching ((Triggering unit) Différent de (Matching unit))) and do (Actions)
Collapse Boucle - Actions
Collapse For each (Integer B) from 1 to 9, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Picked unit) Egal à  skater[(Integer B)]
Collapse Alors - Actions
Collapse Groupe unité - Pick every unit in (Units within 120.00 of (Position of (Triggering unit)) matching ((Triggering unit) Différent de (Matching unit))) and do (Actions)
Collapse Boucle - Actions
Unité - Hide (Picked unit)
Unité - Create 1 (Unit-type of (Picked unit)) for (Owner of (Picked unit)) at ((Position of (Picked unit)) offset by 100.00 towards (Facing of (Triggering unit)) degrees) facing (Facing of (Triggering unit)) degrees
Set skater[(Integer B)] = (Last created unit)
Unité - Remove (Picked unit) from the game
Caméra - Lock camera target for (Owner of skater[(Integer B)]) to skater[(Integer B)], offset by (0.00, 0.00) using Rotation par défaut
Sélection - Select skater[(Integer B)] for (Player((Integer B)))
Déclencheur - Add to (This trigger) the event (Unité - A unit comes within 120.00 of skater[(Integer B)])
Collapse For each (Integer A) from 1 to 9, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Triggering unit) Egal à  skater[(Integer A)]
Collapse Alors - Actions
Unité - Hide (Triggering unit)
Unité - Create 1 (Unit-type of (Triggering unit)) for (Owner of (Triggering unit)) at ((Position of (Triggering unit)) offset by 100.00 towards (Facing of skater[(Integer B)]) degrees) facing (Facing of skater[(Integer B)]) degrees
Set skater[(Integer A)] = (Last created unit)
Unité - Remove (Triggering unit) from the game
Caméra - Lock camera target for (Player((Integer A))) to skater[(Integer A)], offset by (0.00, 0.00) using Rotation par défaut
Sélection - Select skater[(Integer A)] for (Player((Integer A)))
Déclencheur - Add to (This trigger) the event (Unité - A unit comes within 120.00 of skater[(Integer A)])
Collapse Sinon - Actions
Do nothing
Collapse Sinon - Actions
Do nothing


Voilà c'est vraiment le bordel je sais pas si tu vas comprendre quelquechose. Mais je cherche pas tellement que vous me corrigiez ce que j'ai fais mais plutôt que vous trouviez une autre méthode si possible.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 19/01/08 17:40    Sujet du message: Citer

si tu veut leur faire faire un demi tour suffit d'ajouter 180 à l'angle d'orientation de l'unité
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Gevans
Back


Inscrit le: 21 Aoû 2007
Messages: 1930
Sujets: 85

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Gevans (Quantité : 1)

MessagePosté le: 19/01/08 19:05    Sujet du message: Citer

Mais si 2 unités se touchent elles ne vont pas dévier forcément de 180° chacune!
Cela dit je vois pas du tout comment faire autrement, normalement il faudrait voir la distance entre les 2 centres des unités, le risque c'est que ça fasse très faux si deux unités se frolent à peine et font quand même un demi tour (à moins que ça ne soit l'effet recherché ^^)
_________________
Si vous recherchez quelque chose, il y a de très grandes chances que vous trouviez la réponse ici alors jetez y un oeil.
Topic indispensable
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 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...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 19/01/08 19:56    Sujet du message: Citer

Pour faire rebondir deux choses l'unes sur l'autre sans parler d'élasticité et autre, il faut penser à la règle valable pour la réflexion de la lumière.

angle rayon incident = angle rayon réfléchi


Après est ce que tu veux un rebond comme une balle, ou alors, plus comme deux humains qui se rentrent dedans (j'ai dans la tête qu'il iraient ensuite dans la meme direction^^)
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 19/01/08 22:15    Sujet du message: Citer

C'est ce que j'esseye de faire:
échanger les 2 facing angles comme je l'ai dit unit1(facing angle = 0) se cogne à unit2(fc = 90) => unit1 (fc = 90) et unit2 (fc = 0). En fait c'est 2 humains qui se rentrent dedans mais j aurais aimer qu'ils rebondissent entre-eux comme des balles.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 20/01/08 01:06    Sujet du message: Citer

Sa metone que personne n'est fait cette remarque (apart si j'ai mal lu),
alors c'est que cette evenement doit être spécial.

Les evenement qui utilise des variable prennent les valeur des variable a l'initialisation et donc quand tu change la valeur de la variable l'evenement ne change pas.

Ceci ne generai pas si les valeur y sont deja a l'initialisation (deja en valeur par défaut de la variable) (note: impossible avec une array de choisir independament non ?) mais puisque tu crée une nouvelle unité a chaque choc la valeur change.

Voila j'ai peut être dit ma connerie du jour merci de m'avoir lu. :p
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 20/01/08 11:21    Sujet du message: Citer

Bah le problème si je ne rajoute pas l'événement à chaque fois que la valeur change et bien le déclo ne se lance plus. Quand je change la valeur de la variable il faut absolument que je rajoute l'événement.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 20/01/08 11:27    Sujet du message: Citer

Le vagabond a écrit:
Bah le problème si je ne rajoute pas l'événement à chaque fois que la valeur change et bien le déclo ne se lance plus. Quand je change la valeur de la variable il faut absolument que je rajoute l'événement.

Oui ce n'est pas la variable en elle même qui est utilisée, mais sa valeur à l'instant ou l'évènement est enregistré.
Je connais une seule exeption, mais il y en a peut être d'autres.
C'est l'event avec une region.
si on utilise une variable globale, modifier la région, affecte l'évènement.
(je parles du jass pas du gui).
Enfin je parles bien de modifier la region (ajouter/enlever des rect/cells) pas de changer la référence de la variable

@Darfeyt : Oui pour choisir les valeurs individuellement dans un array , faut le faire manuellement, impossible dans l'éditeur de variable.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Le vagabond
Membre récent


Inscrit le: 06 Nov 2007
Messages: 71
Sujets: 6



MessagePosté le: 20/01/08 11:36    Sujet du message: Citer

Donc peut-être que si j'esseyait de faire un système ou chaque unité aurait une région qui bougerait avec elle, et à chaque fois qu'une unité rentre dans cette région elle dévie cela marcherait mieux?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com