[Résolu] Les Fonctions (Functions)


#1

Bonjour,

Je suis en train de faire un casse-briques et comme il y a pas mal de code redondant, j’essaie de mettre en place les Functions.

Je commence à comprendre la logique, mais :
J’ai plusieurs types de briques à casser et je voudrais mettre une fonction sur chaque brique qui fasse une animation de Tween et qui la fasse disparaitre, lorsqu’elle est touchée.

Voici la fonction :

Voici les paramètres :

Voici la ligne qui appele la fonction lorsque chaque brique reçoit une collision avec la balle :

Mais ça ne fonctionne pas (en jeu, il ne se passe rien, la brique ne change pas) et je me rends compte que j’ai ce genre d’erreurs lorsque j’édite l’action dans la fonction :

A noter que toutes mes Briques on le behavior “Tween”.

Merci


#2

Si les briques l’ont alors que ton action dit le contraire refait ton action en ayant précédemment vérifié que les briques l’ont réellement. Mais avant ça corrige les choses suivantes:

Ta nomenclature pour les paramètres, dans le champ texte tu écris:

_ PARAM1 _

et

_ PARAM2 _

Met plutôt des noms qui désigne les paramètres.
Se sera plus clair pour toi et si jamais le moteur comprend mal _ PARAM2 _ parceque c’est utilisé autre part dans le code de GD alors tu évite un comportement hasardeux.

A l’intérieur de la fonction, les actions ne sont pas correcte, la propriété Duration pour la tween opacity est sur PARAM2, ça n’est pas valide.
Pareil pour l’action tween scale au dessus.

Il te faut pour récupéré la valeur d’un paramètre de type nombre, utilisé cette expression:

GetArgumentAsNumber(“monPARAM”)

Pour un text:

GetArgumentAsString(“monPARAM”)

Pour les behaviors et objects tu passe directement le nom du paramètre.

Regarde l’extension Flash, c’est un comportement, mais le passage des paramètres aux conditions/actions dans la fonction sont identique.

As tu suivi un guide à propos desextensions/functions/behaviors ?


#3

Merci pour ces infos Bouh, j’ai fait ce que tu m’as conseillé mais :

  • Je n’arrive pas à changer le nom des variables, il bloque sur _PARAMxxx_
  • J’ai vérifié que mes sprites ont bien le behavior Tween et réécrit la fonction, mais ça ne change rien

Par contre, plus d’erreur avec GetArgumentAsNumber(“PARAM2”) :wink:


#4

C’est pas normal que ça bloque, tu confirme qu’on parle du même endroit en rouge ? Car ils sont éditable.

Pour le comportement Tween, je viens de comprendre, c’est l’action dans la fonction que tu montre, donc c’est que le comportement (behavior) n’existe pas dans les paramètres.
Ajoute le behavior aux paramètres!


#5

Ca fonctionne !
C’est vraiment une logique particulière de devoir passer les behaviors en paramètre :slight_smile:

Voici ma fonction désormais :

et ses paramètres :

Et un complément d’information ici : https://www.youtube.com/watch?v=qfEhbHqaBWE

Merci encore Bouh