Differences

This shows you the differences between two versions of the page.

Link to this comparison view

fr:gdevelop:documentation:manual:pres_concepts [2015/10/18 19:20] (current)
Line 1: Line 1:
 +====== Concepts ======
 +
 +Quelques concepts et notions sont utilisés logiquement par GDevelop.
 +
 +Il ne sont pas compliqués,​ mais les (re)expliquer peut être utile pour être en mesure de débuter de façon optimale avec GDevelop.
 +
 +===== Positions des objets sur la scène ( Système de coordonnées ) =====
 +
 +Les objets sur la scène ont 2 coordonnées : X et Y qui désignent leur emplacement.\\
 +X désigne leur emplacement horizontalement ( //​abscisse//​ ).\\
 +Y désigne leur emplacement verticalement ( //​ordonnée//​ ).\\
 +
 +Quand vous éditez une scène, dans un [[fr:​gdevelop:​documentation:​manual:​editors:​scene_editor:​edit_layer|éditeur de scènes]], la position où la souris se trouve est indiqué en bas :
 +
 +{{fr:​gdevelop:​documentation:​manual:​positionfr.png?​nolink|}}
 +
 +Comme vous pouvez le remarquer, plus on va vers la gauche, puis les X baissent. Inversement,​ plus on va vers la droite, plus les X augmentent.
 +
 +De même, plus on va vers le haut, plus les Y baissent. Et plus on va vers le bas, plus les Y augmentent :
 +
 +{{gdevelop:​documentation:​manual:​pres_coord1.png}}
 +
 +Il peut vous arriver d'​avoir à renseigner un angle ( pour déplacer un objet, pour le tourner dans une direction... ).
 +
 +Le repère est différent que celui pris habituellement en mathématique ( car l'axe Y est inversé par rapport au repère mathématique habituel ), le voici donc :
 +
 +{{gdevelop:​documentation:​manual:​pres_coord2.png}}
 +
 +Enfin, si vous utilisez des fonctions trigonométriques comme le sinus ou le cosinus, notez que vous devez entrer en paramètre des nombres en //radians// ( 1 radian = 180/PI degrés et 1 degré = PI/180 radians, PI étant le nombre approximativement égal à 3.14159 )
 +
 +----
 +===== La sélection des objets par les évènements =====
 +
 +La plupart des conditions et actions utilisent des objets, que ce soit pour tester les objets ou pour les modifier.\\
 +Ainsi, si vous faites référence à un objet pour la première fois dans un évènement,​ GDevelop va aller tester ou modifier **tous les objets** ayant ce nom dans la scène.\\
 +Ensuite, si vous refaite référence à ce même objet dans le même évènement,​ GDevelop va aller tester ou modifier **seulement les objets qui ont été gardés précédemment**.
 +
 +Ce procédé n'est que pure application de la logique. Ainsi, cet évènement va supprimer tous les objets Rond présents :
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_event1fr.png}}
 +
 +Alors que cet évènement ne va supprimer que les objets Rond dont la coordonnée X est inférieure à 100 pixels :
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_event2fr.png}}
 +
 +----
 +===== Déroulement des évènements : l'​ordre est important =====
 +
 +L'​ordre des évènements dans l'​éditeur d'​évènements a son importance.
 +Il sont exécutés du haut du tableau vers le bas. Ainsi, ces évènements :
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_event3fr.png}}
 +
 +//et//
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_event4fr.png}}
 +
 +sont //​différents//​. \\
 +Le premier **créé** un objet "​Rond"​ à la position 200;100, **puis le supprime**. On ne voit donc aucun Rond à l'​écran. \\
 +Le second **supprime** les objets "​Rond"​ de la scène, **puis en créé** un en 200;100. On voit donc un Rond à l'​écran.
 +
 +----
 +===== Déplacement à l'aide des forces =====
 +Les déplacements des objets sont crées avec des //​forces//​.\\
 +Il s'agit de flèches imaginaires,​ qui "​poussent"​ l'​objet dans une direction.
 +
 +Vous pouvez ajoutez des forces de plusieurs façons :
 +
 +  * Par coordonnées ( dites //​cartésiennes//​ ) : Vous indiquerez comment l'​objet doit se déplacer grâce à des mesures horizontales ( X ) et verticales ( Y )
 +  * Par angle ( coordonnées dites //​polaires//​ ) : Vous indiquerez l'​angle vers laquelle la force doit aller, puis sa longueur.
 +
 +Enfin, vous pourrez indiquer l'​**amortissement**. A chaque seconde, cette force sera multipliée par ce chiffre :\\
 +Si vous souhaitez que la force s'​applique indéfiniment,​ mettez **1**. Si vous souhaitez qu'​elle disparaisse immédiatemment après avoir un peu poussé l'​objet,​ mettez **0**. Ce dernier cas est essentiellement utilisé quand l'​objet doit être bougé continuellement,​ par exemple quand le joueur appuye sur une touche.
 +
 +==== Exemple ====
 +
 +Voici par exemple comme exprimer une force permettant de faire bouger cet objet vers le bas.
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_vectorfr.png}}
 +
 +==== Autres possibilités pour déplacer les objets ====
 +
 +Certaines extensions, notamment l'​extension **Moteur Physique** ou Recherche de chemin, peuvent bouger les objets en utilisant leur propre système de déplacement. Dans ce cas, n'​utilisez pas les forces de GDevelop, mais utilisez à la place les **actions fournies** par l'​extension.
 +
 +----
 +===== Variables =====
 +
 +
 +Les variables permettent de **garder en mémoire une information**,​ quelle soit un nombre ( position, nombre de vie, munitions... ) ou un texte ( nom du personnage, état de santé... ). On peut les comparer à des tiroirs ou des petits casiers où l'on rangerait donc un nombre ou un texte.
 +
 +Les variables peuvent servir à retenir le nom d'un personnage, son état de santé, un numéro tiré au hasard, le numéro de l'arme selectionné,​ le score du joueur... C'est au développeur de choisir l'​utilisation qu'il en fait.
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_variablefr.png}}
 +
 +Pour utiliser les variables dans GDevelop, il suffit d'​utiliser les conditions et actions rangées dans //les catégories "​Variables"//​. \\
 +
 +La plupart du temps, on mettra un nombre dans la variable. On choisira donc de modifier la valeur de la variable.
 +Si on veut entrer un texte dans la variable, on choisira de modifier le texte de la variable.
 +
 +Vous n'avez pas à déclarer la variable que vous voulez utiliser, il suffit juste d'​entrer le nom souhaité. Vous pouvez néanmoins déclarer les variables utilisées si vous le souhaitez, et leur affecter une valeur initiale, en éditant les variables globales ( Dans le gestionnaire de projet ), les variables de la scène ( Dans le gestionnaire de projet aussi ) ou les variables d'un objet ( Clic droit sur un objet ).
 +
 +----
 +===== Portée d'une variable =====
 +
 +Dans GDevelop, trois types de variables sont à votre disposition :
 +
 +  * Les variables globales : Ces variables sont accessibles depuis toutes les scènes du jeu. Elles peuvent servir à ranger une information sur un score par exemple.
 +  * Les variables de la scène : Ces variables sont elle bornée à la scène. Elles peuvent donc servir pour des utilisations plus proche de la scène, tel que pour garder en mémoire le temps avant la fin de l'​alarme.
 +  * Les variables des objets : Chaque objet peut lui aussi posséder des variables. Ainsi, un ennemi peut avoir une variable "​Munition"​ ou "​Vie"​.
 +
 +Les actions et conditions relatives aux variables d'​objets sont dans la catégorie **Objet > Variables**.
 +
 +----
 +===== Temps écoulé depuis la dernière image ( TimeDelta ) =====
 +
 +Durant l'​execution d'un jeu, l'​image et les évènements sont respectivement rafraichis et executés plusieurs fois par secondes. Ce nombre peut varier suivant les ordinateurs : Ainsi, un ordinateur rapide pourra par exemple rafraichir un jeu à hauteur de 150 images par secondes, alors qu'un ordinateur plus modeste le rafraichira à 35 images par secondes.
 +
 +Les évènements pouvant donc être executés plus ou moins de fois par seconde suivant les ordinateurs,​ il est important que les évènements du jeu ne dépende pas de la vitesse de l'​ordinateur.
 +
 +==== Comment rendre son jeu indépendant de la vitesse de l'​ordinateur ? ====
 +
 +GDevelop prend déjà en compte cette vitesse lors de l'​utilisation d'​actions ou de conditions comme celles relatives aux forces pour déplacer un objet, ou lors de l'​utilisation d'un comportement,​ ou encore d'un chronomètre.
 +
 +Cependant, si vous effectuez une action telle qu'une modification continue dans le temps d'une grandeur ( Comme obscurcir lentement la transparence d'une image, ou ajouter régulièrement un certain nombre à une variable ), vous devez prendre garde à que cette action soit executée de la même vitesse quelque soit l'​ordinateur.
 +
 +L'​expression ''​TimeDelta()'',​ qui renvoit le temps en seconde depuis la dernière image, permet de s'​assurer que la modification apportée est de même durée quelque soit l'​ordinateur.
 +
 +Ainsi, n'​utilisez pas un évènement comme celui ci :
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_event5fr.png}}
 +
 +mais assurez vous que la modification soit faite de façon continue :
 +
 +{{fr:​gdevelop:​documentation:​manual:​pres_event6fr.png}}
 +
 +Ici, la variable augmentera de **100 unités par seconde**, et ceci quelque soit l'​ordinateur. Alors que pour le premier évènement,​ il n'y a aucun moyen de savoir à quelle vitesse augmentera la variable ( Sur un ordinateur rapide, elle augmentera de plusieurs centaines d'​unités par secondes ! ).
 +
 +Un bon moyen de tester si quelque chose dans votre jeu est sensible à la vitesse l'​ordinateur est de désactiver la limite d'​images par seconde, dans les propriétés du jeu.
 +
 +----
 +===== C'est à peu près tout =====
 +
 +Vous pouvez continuer à consulter le [[fr:​gdevelop:​documentation:​manual:​edit_getstart|guide de mise en route]] pour découvrir l'​interface de GDevelop.