Plaque de pression
Ven 18 Nov 2016 - 20:35
J'aimerais en fait déplacer une pierre avec le personnage (déjà codé) mais j'aimerais aussi que, une fois la pierre à un emplacement spécifique, un interrupteur s'activer et ouvre une porte. Vous auriez une solution à ça ?
- ChimneiMembre
- Nombre de messages : 15
Localisation : Entre la chaise et l'écran
Distinction : aucune
Date d'inscription : 11/11/2016
Re: Plaque de pression
Ven 18 Nov 2016 - 22:06
Bonjour à toi aussi,
Je ne travaille pas sur MV, mais les systèmes d'event sont sensiblement les mêmes, donc je peux t'indiquer une méthode :
- Sur ta pierre, à chaque déplacement, tu récupère les coordonnées de l'event Pierre. Pour ce faire, tu choisis 2 variables que tu appelles par exemple Pos X pierre et Pos Y pierre.
- A chaque déplacement de ta pierre, tu récupères les positions X et Y du pierre en faisant "modifier une variable" > Variable : Pos X pierre / opération : remplacer / Valeur : autre - cet événement - Carte X. Et tu fais de même pour la position Y. (tout ça, c'est à adapter selon MV, mais ça doit être relativement la même chose.)
L'interrupteur (que l'on met, admettons, en [12:3], tu le mets en "traverse tout", "en-dessous du héros" et "Processus parallèle".
- En commande, tu mets "Condition : si Variable Pos X pierre = 12", tu rajoutes dans cette condition, une seconde condition "Condition : si Variable Pos Y pierre = 3" (pour les 2 conditions, tu peux lui dire de ne rien faire si les conditions ne sont pas respectées. On n'a pas besoin du "sinon".
- Dans cette 2e condition, si elle est rempli (et donc a fortiori la première l'est aussi), tu fais ce que tu veux : déplacer un evenement pour ouvrir une porte, activer un son, etc ...
Enfin, comme c'est un processus parallèle, en dehors des conditions, ajoute un "Attendre". 1 frame suffit. Sinon ton jeu va planter à vouloir faire le test comme un fous sans s'arrêter.
Je ne travaille pas sur MV, mais les systèmes d'event sont sensiblement les mêmes, donc je peux t'indiquer une méthode :
- Sur ta pierre, à chaque déplacement, tu récupère les coordonnées de l'event Pierre. Pour ce faire, tu choisis 2 variables que tu appelles par exemple Pos X pierre et Pos Y pierre.
- A chaque déplacement de ta pierre, tu récupères les positions X et Y du pierre en faisant "modifier une variable" > Variable : Pos X pierre / opération : remplacer / Valeur : autre - cet événement - Carte X. Et tu fais de même pour la position Y. (tout ça, c'est à adapter selon MV, mais ça doit être relativement la même chose.)
L'interrupteur (que l'on met, admettons, en [12:3], tu le mets en "traverse tout", "en-dessous du héros" et "Processus parallèle".
- En commande, tu mets "Condition : si Variable Pos X pierre = 12", tu rajoutes dans cette condition, une seconde condition "Condition : si Variable Pos Y pierre = 3" (pour les 2 conditions, tu peux lui dire de ne rien faire si les conditions ne sont pas respectées. On n'a pas besoin du "sinon".
- Dans cette 2e condition, si elle est rempli (et donc a fortiori la première l'est aussi), tu fais ce que tu veux : déplacer un evenement pour ouvrir une porte, activer un son, etc ...
Enfin, comme c'est un processus parallèle, en dehors des conditions, ajoute un "Attendre". 1 frame suffit. Sinon ton jeu va planter à vouloir faire le test comme un fous sans s'arrêter.
- Après ça :
- Ajoute éventuellement un interrupteur pour gérer le cas où la personne retire le pierre du bouton (donc qu'il n'est pas en [12:3]) : soit refermer la porte (processus parallèle activé grâce à l'interrupteur, qui désactive l'interrupteur après avoir fermé la porte), soit maintenir la position du pierre et la porte ouverte si le joueur change de map (processus parallèle => "placer un événement").
Re: Plaque de pression
Ven 18 Nov 2016 - 22:54
Tu n'aurais pas un schéma ou un Screenshots du script parce que j'ai un petit peut de mal, enfin juste la partie pour la pierre ^^'
- ChimneiMembre
- Nombre de messages : 15
Localisation : Entre la chaise et l'écran
Distinction : aucune
Date d'inscription : 11/11/2016
Re: Plaque de pression
Dim 20 Nov 2016 - 3:12
Voilà une capture d'écran (je peux pas te mettre la programmation complète car j'utilise un script qui me facilite la tâche, mais qui demande quelques petits réglages en plus) :
1) Modifier une variable
2) Tu sélectionnes la variable Pos X pierre
3) Tu vérifies que le curseur est bien sur "remplacer"
4) Tu sélectionnes pour valeur "Autre"
5) Tu choisis "cet événement" et "Carte X" (pour sa position X sur la carte)
Tu fais de même pour Y.
Et tu fais cette modification à chaque fois que la pierre se déplace (juste après l'endroit où tu as mis "déplacer cet événement" que tu auras bien veillé à mettre en "Attendre la fin".
Je te conseille de rajouter un pnj qui va te dire en message quand tu lui parles, en quelle position est ta pierre, pour être sûr qu'elle soit au bon endroit ("Afficher un message" et tu met [\V[1]:\V[2]], \V[1] permettant de récupérer le contenu de la variable dont l'id est "1", donc ce chiffre est à adapté selon la variable que tu utilises pour stocker "Pos X pierre" et "Pos Y pierre".
1) Modifier une variable
2) Tu sélectionnes la variable Pos X pierre
3) Tu vérifies que le curseur est bien sur "remplacer"
4) Tu sélectionnes pour valeur "Autre"
5) Tu choisis "cet événement" et "Carte X" (pour sa position X sur la carte)
Tu fais de même pour Y.
Et tu fais cette modification à chaque fois que la pierre se déplace (juste après l'endroit où tu as mis "déplacer cet événement" que tu auras bien veillé à mettre en "Attendre la fin".
Je te conseille de rajouter un pnj qui va te dire en message quand tu lui parles, en quelle position est ta pierre, pour être sûr qu'elle soit au bon endroit ("Afficher un message" et tu met [\V[1]:\V[2]], \V[1] permettant de récupérer le contenu de la variable dont l'id est "1", donc ce chiffre est à adapté selon la variable que tu utilises pour stocker "Pos X pierre" et "Pos Y pierre".
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|