« ClickteamFusion » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 84 : Ligne 84 :
Si vous voulez faire une boucle sur des objets, utilisez plutôt une boucle du type "for each" qui prend en compte tout vos objets ou vos objets d'un certains type. Pour il est conseillé de mettre un qualifieur à vos objet et d'utiliser une boucle "for each" via le qualifieur. En faisant votre condition, sélectionner le qualifieur voulu et "boucles" => "pour chaque objet", donner ensuite un nom à cette boucle, celui-ci pourra être réutiliser ultérieurement ou non (il n'est pas forcément nécessaire de le réutiliser si vous activer un groupe d'événement).
Si vous voulez faire une boucle sur des objets, utilisez plutôt une boucle du type "for each" qui prend en compte tout vos objets ou vos objets d'un certains type. Pour il est conseillé de mettre un qualifieur à vos objet et d'utiliser une boucle "for each" via le qualifieur. En faisant votre condition, sélectionner le qualifieur voulu et "boucles" => "pour chaque objet", donner ensuite un nom à cette boucle, celui-ci pourra être réutiliser ultérieurement ou non (il n'est pas forcément nécessaire de le réutiliser si vous activer un groupe d'événement).


=== Groupes d'événements comme action imbriquée===
=== Groupes d'événements comme actions imbriquées===


Dans CTF, il n'est pas possible d'imbriquer directement une condition dans une autre, ou d'imbriquer une condition dans une boucle. Car l'interface de CTF, ne permet que d'avoir des conditions (reliées par des AND/OR) et leur actions. Ce qui est problématique, si on veut faire une condition qui tombe dans une boucle ou sous une autre condition. C'est pourquoi, il est vital de comprendre l'utilisation des groupes d'événements. Il est possible de créer un groupe d'événements (clic droit sur la colonne avec les numéros des conditions et insérer un groupe d'événements) et de le désactiver (clic droit sur la ligne de l'événement => activé/désactivé la ligne). Toutes les conditions seront ainsi désactivé, et vous pouvez les réactiver au moment voulu (attention pour cela à ne désactiver que la ligne du groupe d'événement et pas les événements à l'intérieur, sinon ceux-ci ne seront pas pris en compte). Les actions seront donc activée à l'action "activé le groupe d'événement" et il est possible des les limiter (qu'elle ne s'active qu'une fois lors de l'activation du groupe) ou de les laisser tourner tant que le groupe est activé.
Dans CTF, il n'est pas possible d'imbriquer directement une condition dans une autre, ou d'imbriquer une condition dans une boucle. Car l'interface de CTF, ne permet que d'avoir des conditions (reliées par des AND/OR) et leur actions. Ce qui est problématique, si on veut faire une condition qui tombe dans une boucle ou sous une autre condition. C'est pourquoi, il est vital de comprendre l'utilisation des groupes d'événements. Il est possible de créer un groupe d'événements (clic droit sur la colonne avec les numéros des conditions et insérer un groupe d'événements) et de le désactiver (clic droit sur la ligne de l'événement => activé/désactivé la ligne). Toutes les conditions seront ainsi désactivé, et vous pouvez les réactiver au moment voulu (attention pour cela à ne désactiver que la ligne du groupe d'événement et pas les événements à l'intérieur, sinon ceux-ci ne seront pas pris en compte). Les actions seront donc activée à l'action "activé le groupe d'événement" et il est possible des les limiter (qu'elle ne s'active qu'une fois lors de l'activation du groupe) ou de les laisser tourner tant que le groupe est activé.
Par exemple, si je veux faire des conditions sur chacun de mes objets, je peux faire une boucle "for each" qui a comme unique action d'activé un groupe d'événement, dans lequel je pourrais mettre des conditions qui ont chacune leur propres actions.
Par exemple, si je veux faire des conditions sur chacun de mes objets, je peux faire une boucle "for each" qui a comme unique action d'activé un groupe d'événement, dans lequel je pourrais mettre des conditions qui ont chacune leur propres actions.




Ligne 108 : Ligne 107 :
**[https://www.youtube.com/watch?v=3Zq1yo0lxOU Youtube] : 167 Indie games faits avec Multimedia Fusion (MMF)
**[https://www.youtube.com/watch?v=3Zq1yo0lxOU Youtube] : 167 Indie games faits avec Multimedia Fusion (MMF)


[[Utilisateur:Camacab0|Camacab0]] ([[Discussion utilisateur:Camacab0|discussion]]) [[Catégorie:Logiciels]] [[Catégorie:Outils auteur]]
[[Utilisateur:Camacab0|Camacab0]] ([[Discussion utilisateur:Camacab0|discussion]])  
[[Catégorie:Logiciels]]  
[[Catégorie:Outils auteur]]

Version du 17 avril 2017 à 14:57

Introduction

Clickteam est une entreprise française fondée en 1993, étant principalement connue pour son outil de programmation Clickteam Fusion (outil auteur) permettant de développer des jeux vidéos ou d’autres outils interactifs à l’aide d’une interface graphique et sans avoir besoin d’écrire du code.

Description de Clickteam Fusion

ClickTeam Fusion est un outil de création d’applications ou jeux vidéos - outil-auteur - ne nécessitant pas de maîtriser un langage de programmation. Voici les principales forces de Clickteam Fusion, selon ses auteurs : CF est décrit comme accessible à tout le monde, et du fait de son format “code-free” il est dit qu’il est possible d’apprendre à développer en une heure. L’outil intègre tout le nécessaire à créer une application basique de A à Z, il utilise un moteur physique (Box2d) pour les mouvements notamment et permet à vos applications de tirer profiter de l'accélération matérielle des utilisateurs. CF permet d’exporter vos applications ou jeux compatibles Windows (gratuitement) mais aussi sous format flash (swf), iOS, Android, HTML5 (option payante).

Une des forces de Clickteam Fusion est donc ses modules d’exportation. Parmi ces modules nous avons six possibilités d’exportation : en application swf/flash pour des modules utilisant la technologie d’adobe, iOS pour les terminaux mobiles de Apple, Android pour les terminaux Android, HTML5 pour des jeux jouables dans un navigateur sans logiciel supplémentaire, et XNA pour des applications pouvant s’éxecuter sur les produits Windows (dont la XBox et les Windows Phone).

ClickTeam Fusion 2.5 est la dernière version de cet outil. Celui-ci a cependant plusieurs fois changé de nom, comme on peut le constater en parcourant le web. Il s’est tout d’abord appelé Klik & Play (KnP), puis The Games Factory (TGF), et enfin Multimedia Fusion (MMF) avant d’adoper son nom actuel Clickteam Fusion (CF).

Exemples des jeux

Jeux pour Windows

Jeux en Flash

  • MagnetKid
  • CaboBay
  • Fashion&glamour : permet au joueur de créer un “avatar” féminin, intègre différentes possibilités de personnalisation. Une fois l’avatar créé le joueur est limité à rejouer cependant (avec la version gratuite) ou à envoyer son avatar par courriel (version deluxe uniquement).

Jeux pour iOS

Programmer avec Clickteam Fusion

Trucs & Astuces

Clickteam Fusion est un outil puissant, mais pas toujours intuitif, de plus, comme tout programme certains éléments peuvent ne pas fonctionner entièrement correctement ou posséder quelques bugs. Cette section est là pour donner des astuces simples pour programmer son jeu avec CTF sans perdre trop de temps.

Commentaires

Cela peut paraître bête, mais un code commenter vous fait toujours gagner du temps à la relecture, surtout si le projet et long et que plusieurs personnes y participes. Pour ajouter un commentaire, il suffit de cliquer sur la bordure avec les numéros des conditions dans vos gestionnaires d'événement et d'insérer un commentaire, pour plus de visibilité, vous pouvez changer la couleur de fond.

Utiliser des variables pour vos expressions

Dans Clickteam Fusion, il est possible de faire des conditions avec des expressions (par exemple, si ma variable est égal à x + y /5), mais parfois, ces expressions ne sont pas pris correctement en compte par le logiciel, il est donc fortement conseiller de mettre son expression dans une variable, puis de faire sa condition sur la variable. Cette astuce peut vous faire gagner plusieurs heures, car CTF ne vous indiquera pas que votre expression n'est pas prise en compte. De plus cette astuce vous offre un meilleur contrôle de vos éléments (via le debugger).

Incrémenter vos variables avec des conditions

L'incrémentation d'une variable se fait généralement à travers des boucles, mais dans CTF il vaut mieux utiliser des conditions que des "fast loop" qui tournent dans le vide. Il est possible de limiter l'incrémentation avec une autre condition et si on veut que l'incrémentation se fasse à un moment spécifique, il est possible de créer des groupes d'événement. Néanmoins, si vous utilisez des "fast loop" attention avec l'utilisation de l'index des boucles rapide, mieux vaut créer une variable indépendante qui s'incrémente à chaque tour de la boucle, si vous voulez utiliser l'index dans une expression (par exemple : si ma variable = x + y / index), car parfois, cela ne marche pas comme désiré.

= Utiliser des variables globales

L'utilité des variables globale est similaire à l'utilisation des variables globales dans tous les langages informatiques, c'est-à-dire qu'elle vous permet un accès global (à travers toutes vos scènes). Pour les créer, il suffit de sélectionner votre application (l'élément racine de votre projet sur la ligne avec le logo "éclair" de CTF dans votre "Barre espace de travail) et des les ajouter dans l'onglet "valeur". Les variables globales sont également très utile pour faire des tests, car elles sont affichée automatiquement dans le debugger.

Utiliser des variables pour faire des tests

Chaque fois qu'un élément ne marche pas, n'hésiter pas à ajouter une "variable test" pour savoir si votre condition/boucle/expression est prise correctement en compte par l'outil auteur (Par exemple, si je crée une boucle, je peux fixer la valeur de ma variable test à 1 comme premier élément de ma boucle, pour voir dans le debugger si le logiciel rentre bien dans ma boucle). Certaines fonctionnalités sont très similaire et fonctionnent parfois seulement dans des cas particulier, les "variables tests" sont un outil de base de tout programmateur, c'est un des premiers réflexe à avoir quand un élément ne marche pas comme vous le vouliez.

Debugger

Le debugger est un outil essentielle à toute programmation. Il permet de base de voir les informations systèmes et les différentes variables globales. Vous pouvez également ajouter vos objets au debugger pour voir le fonctionnement de vos variables en cliquant sur l'icône du petit rectangle en bas à droite de votre de debugger.

debugger

Même si celui qu'offre CTF de base est déjà très bien et sûrement suffisant pour de petits jeux, si vous le souhaitez, il est possible de votre propre debugger.

Utiliser des "qualifieurs" pour traiter vos objets dynamiquement

Les qualifieurs sont comme des classes, qui s'appliquent à tout les objets. Vous pouvez l'ajouter à votre objet en cliquant dessus et en ajoutant un qualifieur dans l'onglet événement. Si vous compter faire que plusieurs objets se comportent pareillement, il est plus simple de mettre à chacun de ces objets le même qualifieur et de faire les conditions sur ce même qualifieur au lieu de le faire sur chaque objet. De plus, il est possible d’accéder à chaque objet possédant le même qualifieur en faisant une boucle "for each" sur le qualifieur.

Conditions

Tout les événements dans CTF sont à voir comme des conditions, ce qui peut-être contre-intuitif, c'est qu'il n'y a pas de conditions "else" pour un traitement alternatif sur un objet, il faut donc rusé un peu pour l'obtenir. Nous allons voir quelques exemples pour mieux comprendre ces conditions Quelques exemples sur les conditions

  • AND : Si on crée une première condition A (par exemple, "si mon objet touche un mur"), on peut soit insérer une nouvelle condition (clic droit + insérer) qui sera considéré comme une seconde conditition obligatoire (un "AND"), par exemple, j'insère l’événement B ("si mon mur et visible"), ce qui fait que les actions seront soumise à la condition A et B ("Si mon objet touche un mûr et que ce mûr est visible").
  • OR : Dans CTF, il existe deux possibilité de faire un ou (else if), le OR logique ou le OR filtré. Le OR logique prendra en compte vos action si une seule de vos conditions est réalisée, alors que le OR filtré les prendra en compte vos objet séparément. Par exemple, si on les condition:
  1. la souris est au-dessus de l'objet 1
  2. OR (filtré)
  3. la souris est au dessus de l'objet 2

Avec les actions détruire l'objet 1 et détruire l'objet 2 en dessous. Dans cette conditions, si on a la souris au dessus de l'objet 1, alors l'objet 1 est détruit et si on a la souris au dessus de l'objet 2, l'objet 2 est détruit. Avec un OR (logique), les deux objets seraient détruit à chaque fois, que l'on ait le curseur sur l'objet 1 ou 2.

  • Else : Pour cette condition, il faut un peu ruser. La plupart de temps, vous pouvez copier-coller votre condition, cliquer sur la condition copiée et choisir "inverser" ce qui inversera la condition. Si votre condition porte sur une comparaison, par exemple, si la valeur de point de vie du personnage est égal à 0, il faudra créer une "expression inverse" si la valeur de point de vie du personnage est inégal à 0. Il est possible également, de fixer une valeur de base au préalable et de la modifier dans la condition ou d'activé des groupes où la condition se réalise ou encore de changer la valeur d'un drapeau pour les conditions binaire (on/off).

Drapeaux pour les variables binaires

Les drapeaux sont des variables pré-programmée liées à vos objets. Si vos désirez programmer une variable de type binaire (on/ff), il est conseillé d'utiliser les drapeau et de faire des conditions sur l'état (on/off) de ces drapeau. Il est toujours possible de faire une variable et de changer sa valeur en fonction de la situation (par exemple la fixer à 0 ou 1), mais le traitement des drapeau est plus optimisé et vous évitera des bugs dans des expressions ou des boucles.

Différentes boucles

Il existe différentes sortes de boucles sur CTF, les "fast loop" sont des boucles qui tournent dans le vide et qui sont extrêmement rapide, mais qui sont limitée dans le traitement des objets. La "fast loop" s'utilise en deux temps, elle et ce qui est assez-contre-intuitif, c'est qu'elle sont créée par des "actions" et non en "condition", la "condition" permet d'utiliser une "fast loop" par son nom, une fois cette dernière créée dans une action. Si vous voulez faire une boucle sur des objets, utilisez plutôt une boucle du type "for each" qui prend en compte tout vos objets ou vos objets d'un certains type. Pour il est conseillé de mettre un qualifieur à vos objet et d'utiliser une boucle "for each" via le qualifieur. En faisant votre condition, sélectionner le qualifieur voulu et "boucles" => "pour chaque objet", donner ensuite un nom à cette boucle, celui-ci pourra être réutiliser ultérieurement ou non (il n'est pas forcément nécessaire de le réutiliser si vous activer un groupe d'événement).

Groupes d'événements comme actions imbriquées

Dans CTF, il n'est pas possible d'imbriquer directement une condition dans une autre, ou d'imbriquer une condition dans une boucle. Car l'interface de CTF, ne permet que d'avoir des conditions (reliées par des AND/OR) et leur actions. Ce qui est problématique, si on veut faire une condition qui tombe dans une boucle ou sous une autre condition. C'est pourquoi, il est vital de comprendre l'utilisation des groupes d'événements. Il est possible de créer un groupe d'événements (clic droit sur la colonne avec les numéros des conditions et insérer un groupe d'événements) et de le désactiver (clic droit sur la ligne de l'événement => activé/désactivé la ligne). Toutes les conditions seront ainsi désactivé, et vous pouvez les réactiver au moment voulu (attention pour cela à ne désactiver que la ligne du groupe d'événement et pas les événements à l'intérieur, sinon ceux-ci ne seront pas pris en compte). Les actions seront donc activée à l'action "activé le groupe d'événement" et il est possible des les limiter (qu'elle ne s'active qu'une fois lors de l'activation du groupe) ou de les laisser tourner tant que le groupe est activé. Par exemple, si je veux faire des conditions sur chacun de mes objets, je peux faire une boucle "for each" qui a comme unique action d'activé un groupe d'événement, dans lequel je pourrais mettre des conditions qui ont chacune leur propres actions.


Liens & Tutoriels

Camacab0 (discussion)