Se connecter

Project Spark

Sujet : Demande d'aide - on relative path
1
Alysdefunk
Niveau 6
14 octobre 2015 à 13:23:26

Bonjour à toutes et tous.

Comme d’habitude, je viens demander de l’aide car j’ai un petit problème.
Mon problème concerne la tuile « on relative path ».

Voici ce que je souhaite réaliser :

When : A - DO : move / on relative path (ce path est créé à une position P1 en mode création)

Jusque-là, pas de problème majeur. (en mode playing) Mon personne suit le chemin de mon « relative path » (à une position P2) quand j’appuie sur A mais, parce qu’il y a un mais, lorsque je lâche le bouton A et que je déplace mon personnage à une autre position (P3) puis que je presse à nouveau sur A, mon personnage reprend le path depuis la position P2 (en gros, il reprend le path à l’endroit où je l’ai lancé la première fois) alors que je veux effectuer le path à l’endroit où mon perso se trouve au moment où j’appuie sur le bouton.

J’espère que mon message est compréhensible car même moi j’ai du mal en me relisant...

Si quelqu’un à la solution à mon problème, je suis preneur car je sèche.
J'ai effectué au moins 10 kodes différents mais rien n'y fait.

Merci d'avance!

Alysdefunk
Niveau 6
14 octobre 2015 à 13:55:02

A oui, il me semble avoir déjà utilisé ce Kode sans succès

https://www.noelshack.com/2015-42-1444823691-path.png

MindcraftMax
Niveau 7
14 octobre 2015 à 19:06:23

Il faut que tu crées un nouveau chemin à chaque fois que tu veux partir d'une nouvelle position. Donc met ton chemin en modèle (template) puis crée une variable d'objet "chemin" égale créer chemin à partir de la sélection en monde, et à partir de là tu peux te déplacer sur le chemin relatif "chemin". Dès que tu dois changer de chemin, détruit l'ancien "chemin" et recrée "chemin" comme avant.
.
Attention cependant, j'ai fait des tests et remarqué que pour une raison inconnue, il y a des problèmes quand tu commence à te déplacer sur un tel chemin dans le cas où tu changes l'orientation de ton personnage (ie son vecteur [avant]) entre deux créations de chemin : tu ne pars pas exactement de ta position, ou bien tu restes bloqué à faire du sur place.
Mais apparemment cela n'arrive que si la propriété "orientation" du chemin est sur "fixe", tu peux donc corriger ça en la mettant sur "2D" ou "3D", quitte à faire bouger un cube logique et à demander à ton personnage de suivre ce cube logique pour imiter le comportement "fixe" si tu as besoin de faire des pas latéraux (strafing).

Alysdefunk
Niveau 6
15 octobre 2015 à 09:46:31

Comment ferais-je sans toi MindcraftMax :)
Mon jeu fait du surplace et je commence à me lasser de rester butté sur des trucs aussi simples...
A force de suivre les tutos et de regarder les kodes des kodeurs, je suis capable de faire pas mal de chose mais jamais réellement ce qui sort de ma tête.

La vie est dure parfois :)

En tout cas, merci pour ta réponse!
Je vais tester ce soir un truc dans ce style en sachant que le "in-world picker" sera mon path.

https://www.noelshack.com/2015-42-1444895140-path-1.png

Alysdefunk
Niveau 6
15 octobre 2015 à 10:56:58

N'ayant pas trouver la fonction "éditer", je poste à la suite car j'ai un doute sur le kode que j'ai posté ci-dessus.

When A DO create / in world picker

Le "in world picker" est faux non? Je dois le remplacer par la variable "chemin" non?

Alysdefunk
Niveau 6
15 octobre 2015 à 11:34:29

J'ai également peur que mon "chemin " soit créé chaque frame le temps que ma touche A reste enfoncé...

ps : pourquoi je n'ai pas de fonction "éditer"?

MindcraftMax
Niveau 7
15 octobre 2015 à 18:10:24

En effet, là tu crées ton chemin à chaque frame, alors qu'il faut que tu ne le crées qu'au début, en utilisant soit WHEN [A] [pressed], soit [started to] en tant qu'enfant de WHEN [A].

De plus, tu le crées, mais l'« abandonne » aussi vite en ne le sauvegardant dans aucun variable, donc tu ne peux jamais l'utiliser. Il faut que utilises la variable "chemin" non pas pour garder en mémoire le template, que tu peux très bien sélectionner en monde sans souci après ton [créer] (ou bien, utilise une variable "modèle chemin", distincte de "chemin", égale sélection en monde -> le template), mais pour enregistrer le chemin que tu crées. C'est ce "chemin" que tu vas utiliser pour te déplacer, et c'est bien sûr ce chemin que tu vas supprimer. Il est de toute façon impossible de supprimer un template, tout ce que [détruire] [template] fait, c'est de détruire l'ensemble des objets créés à partir du template, mais le template lui-même reste intact, et donc la dernière ligne de ton kode ne sert à rien à cause de la mauvaise valeur de "chemin" que tu as attribuée, il faut donc vraiment que "chemin" contienne un chemin créé à partir du modèle et non le modèle lui-même.

Donc pour corriger ton kode, il suffit d'enlever ta première ligne, ou bien de changer "chemin" en "modèle chemin" que tu pourrais ainsi mettre à la place de chacune de tes sélections en monde futures, puis de bien définir "chemin" comme le chemin que tu crées, et ce seulement au premier tic où tu enfonces A.

Je te conseille de lire attentivement l'Apprentissage du Kode (lien dans le sujet épinglé des tutos et autres liens utiles), il n'est pas encore complet mais ce qu'il y a dedans peut déjà t'aider à te familiariser avec le Kode. Et suis les conseils de la première page (Bases de la programmation) de l'Apprentissage du Kode, tu auras moins l'impression de faire du surplace ; enfin, j'espère :P (sinon dis-le moi, c'est moi qui ait écrit cette première page, j'aimerais être sûr que ça marche ^^).

PS : je crois que la fonction "éditer" n'est disponible que pour un certain temps et seulement pour ton dernier message, il me semble qu' au maximum une demie-heure après le post il n'est plus possible d'éditer.

Alysdefunk
Niveau 6
16 octobre 2015 à 11:11:28

Merci MindcraftMax!

J'ai bien compris qu'un template (path) ne peut être détruit (je ne le savais pas avant ta remarque ce qui prouve que j'ai encore du chemin à parcourir).
Par contre, j'ai un peu de mal à comprendre l'attribution de "chemin" dans mon cas. D'un coté, je comprends pourquoi il doit être mis dans le cas du path puisqu'il est indestructible.

Le "chemin" doit être créé à partir de quelque chose mais quoi?
Dois-je créer un logic cube qui lui même suit ce path et donc que mon chemin = logic cube?
En gros, et tu l'auras compris, je n'ai pas tout saisi malgré le fait que j'ai suivi l'apprentissage et à plusieurs reprises.

Pour te mettre dans la situation, mon personnage doit tracer un chemin de feu au sol en forme de pentacle (pas de problème jusque la) à une très grande vitesse et je constate également qu'il faut que j'intervienne sur les propriétés de mon personnage car lorsque je lance mon animation "à la vitesse" / "2.5", il n'arrive pas à suivre le path. Il "rebondit" dans le cercle car il prend des G et ne gère pas l'effet de gyroscopie.

Je vais essayer de glaner des informations à gauche à droite pour avancer.

Merci encore!

MindcraftMax
Niveau 7
18 octobre 2015 à 17:56:47

En fait, c'est assez évident qu'un template ne puisse pas être détruit, mais seulement si tu as déjà fait un petit peu de programmation orientée objet (POO) avant. Pour expliquer rapidement, un template n'existe pas vraiment dans le monde, il ne sert que de modèle (d'où sa traduction) pour créer des objets à partir de lui. On dira en gros en POO que le template est une classe, alors qu'un objet créé à partir d'un template est une instance, et ce sont ces instances que l'on peut détruire, bouger, faire agir sur le monde ; le modèle n'est lui qu'un ensemble de caractéristiques que chaque instance créé à partir de lui aura (propriétés de l'objet, cerveau).

Les informations sur les templates et la tuile [créer] en général font partie de l'Apprentissage du Kode, mais je ne l'ai pas encore traduit ; si l'anglais ne te gêne pas, c'est disponible ici : http://projectspark.wikia.com/wiki/Creation_and_Destruction

Je suis assez occupé en ce moment, j'essaierais de te répondre plus en détails, ou plutôt probablement traduire la page ci-dessus en français, dès que j'aurai plus de temps.

1
Sujet : Demande d'aide - on relative path
   Retour haut de page
Consulter la version web de cette page