Expressions Natives de Construct 2

Favourite 255 favourites
Tutorial written by pearsonlandsOriginally published on 14th, November 2011 - 16 revisions

Translation Team:

2 total revisions

Les Opérateurs

Il est possible d'utiliser les opérateurs suivants dans les expressions :

+ (addition)
- (soustraction)
* (multiplication)
/ (division)
% (modulo, le reste de la division euclidienne, exemple : 7%3 = 1)
^ (élevation à une puissance, exemple 5 ^ 2 = 25)
& (construction de chaînes de carzctères, exemple "Votre score est : " & score)

Il y a également les opérateurs de comparaison =, <>, <, <=, >, >= permettant de comparer deux valeurs. Ils renvoient 1 si la comparaison est vraie et 0 si elle est fausse (exemple 3 < 5 donne 1, 7 > 8 donne 0, 4 <> 11 donne 1...)

L'esperluette (&) se double pour donner l'opérateur logique ET, et | est l'opérateur logique OU (inclusif). Ces opérateurs sont utiles combinés avec des opérateurs de comparaison (exempke : score < 0 | vie < 0, qui retournent alors 1 si la condition est vraie, 0 si elle est fausse.

?: est un opérateur conditionnel, permettant de tester des conditions dans des expressions. C'est particulièrement utile lorsqu'utilisé avec les opérateurs de comparaison et les opérateurs logiques. Cela prend la forme condition ? résultat_si_vrai : résultat_si_faux (exemple : vie < 0 | score < 0 ? "Game Over !" : "Continuer !"
La condition est vraie si différente de zéro, et fausse si égale à zéro)

Les chaînes de caractères (texte)

Les textes sont aussi connus sous le nom de chaînes de caractères en programmation, et Construct 2 utilise parfois cette convention de nommage. Les textes dans les expressions doivent être entourrés de guillemets (exemple "Bonjour")

Les guillemets ne font pas véritablement partie du texte, de ce fait, le texte désigné par l'expression "Bonjour" est Bonjour, sans les guillemets. Pour inclure un guillemet dans la chaîne de caractères, il faut utiliser deux guillemets consécutifs (exemple : "Il m'a dit ""Bonjour"" !" désigne le texte suivant : Il m'a dit "Bonjour" !)

Il est possible d'utiliser & pour construire des chaînes de caractères avec du texte et des nomres (exemple : "Votre score est : " & score)

Expressions Mathématiques Standards

La liste complète des expressions peut être trouvée dans Construct 2-même : pour ce faire, double-cliquez l'objet System dans la liste des objets de la fenêtre flottante accompagnant l'éditeur d'expression.
En voici tout de même quelques unes :

sin (sinus d'un angle en degrés)
cos (cosinus d'un angle en degrés)
tan (tangente d'un angle en degrés)
asin (arcsinus, donne un angle en degrés)
acos (arccosinus, donne un angle en degrés)
atan (arctangente, donne un angle en degrés)
sqrt (racine carrée)
abs (valeur absolue)
exp (exponnentielle e^x)
ln (logarithme néperien (base e))
log10 (logarithme décimal (base 10))

Il est bon de se rappeller que Construct 2 utilise toujours des angles en degrés, jamais en radians : si il est nécessaire d'exprimer un angle dans Construct 2, cela sera en degrés.

Expressions de Conversion

int(x) - convertit x en nombre entier
float(x) - convertit x en nombre flottant (à virgule)
str(x) - convertit x en chaîne de carctères

N'oubliez pas qu'il est possible d'utiliser & pour construire des chaînes de caractères (exemple : "Votre score est : " & score donne "Votre score est : 10" si la variable score vaut 10)

Autres expressions

Angle(x1, y1, x2, y2) - Donne l'angle en degrés entre les points de coordonnées (x1, y1) et (x2, y2) en utilisant atan2(y2 - y1, x2 - x1).

Ceil(number) - Arrondit un nombre au supérieur (exemple : Ceil(2.2) = 3)

Distance(x1, y1, x2, y2) - Donne la distance entre les points de coordonnées (x1, y1) et (x2, y2)

dt - Delta de temps. Voir Delta de temps et indépendance du framerate.

Floor(number) - Arrondit un nombre à l'inférieur (exemple : Floor(6.7) = 6).

fps - Donne le framerate actuel, en frames par secondes.

len(x) - Donne la longueur de la chaîne de caractères x

Lerp(a, b, x) - Interpolation linéaire : calcule a + x(b - a)

LoopIndex - Index de boucle actuel (au premier niveau)

LoopIndex("name") - Index actuel de la boucle de nom donné

ObjectCount - Nombre total d'instances d'objets en jeu.

Max(a, b [,c,...]) - Donne le maximum de toutes les valeurs données, un nombre arbitraire de valeurs peut être passé en paramètre.

Min(a, b [,c,...]) - Donne le minimum de toutes les valeurs données, un nombre arbitraire de valeurs peut être passé en paramètre.

Newline - Une chaîne de caractères contenant un caractère de retour à la ligne (exemple : "Bonjour" & newline & "tout le monde !")

Random(N) - Donne un nombre aléatoire compris entre 0 et N (N exclu). Le résultat peut être une fraction, ainsi Random(3) peut donner 2.5. Utiliser Floor(Random(N)) pour générer un nombre entier aléatoire compris entre 0 et N (N exclu) (exemple : Floor(Random(3)) donnera 0, 1 ou 2).
Random(A,B) peut aussi être utilisé pour générer un nombre aléatoire compris entre A et B.

Round(value) - Arrondit un nombre (exemple : Round(6.8) = 7)

Scrollx, Scrolly - Position de défilement actuel.

Timescale - L'échelle de temps actuelle. Voir Delta de temps et indépendance du framerate.

Time - Temps en secondes écoulé depuis le début du jeu.

TickCount - Nombre de frames écoulées depuis le début du jeu.

N'oubliez pas d'aller voir le panneau d'expressions de Construct 2 pour avoir la liste complète.

Expressions utiles dans d'autres objets

Les objets Souris et Toucher permettent tous les deux de passer un calque en paramètre pour les expressions X et Y, ce qui est très utile dans le cas de calques redimmensionnés ou ayant subi une rotation.

(exemple : Mouse.X("Layer 1") donne la positio X de la souris sur le calque 1, prenant en compte le parallaxe, l'échelle et l'angle du calque. Si vous utiliser uniquement Mouse.X, cela ne prendra pas en compte le parallaxe, échelle et angle, le résultat peut ainsi être faux suivant le calque sur lequel vous voulez obtenir la position)

Indexage des objets dans les expressions

Il est possible d'ajouter un index d'objet (commençant à 0) à l'expression pour obtenir un résultat suivant les différentes instaces de l'objet.

(exemple : Sprite(0).X donne la position horizontale de la première instance de Sprite, et Sprite(1).X donne la position horizontale de la seconde instace de Sprite. Il est aussi possible de passer une autre expression pour l'index. Les nombres négatifs permettent de commençer depuis la fin, ains Sprite(-1).X donne la position horizontale de la dernière instance de Sprite.
Cela peut être appliqué à tous les objets, pas uniquement les sprites)

Unlock your full gamedev potential

Upgrade to the Personal Edition of Construct 2, it has way more features and won't holding back from making money and using your full creativity like the free edition does. It's a one off payment and all Construct 2 editor updates are free for life!

View deals

Plus, it's got a lot of additional features that will help you save time and make more impressive games!

Congratulations on finishing this tutorial!

Did you learn a lot from it? Share it now with your friends!

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.