Des intérupteurs

Bonjour tous le monde,
Pour mon retour de la grande marche sur le web j’ai fait un jeux sur RMXP, c’est alors que j’ai eu une idée.
Pourquoi ne pas mètre des interrupteurs en nouvelle fonctionnalité pour GD ?
C’est asser pratique pour par exemple, faire un interface avec l’affichage d’objectif, ou faire des actions si interrupteur est activé ou non.

Et puis pour encore plus personnalisé le jeux pourquoi pas faire un éditeur de script, comme je sais que le programme est codé en C, je pencherais plus sur un éditeur en langage C (Ou C++), mais pas de langage comme le ruby qui sont assez difficile à apprendre.

Voilà

HS : Dis donc j’ai vus que de dayvid et colin postait pas mal…

Game Develop est programmé en C++. Ton idée n’est pas mauvaise, mais il existe déjà les variables pour permettre de faire ce que tu voudrais. Tu crées une variable “interrupteur”, tu lui affectes la valeur 0 (désactivé), et lorsque tu souhaites l’activer, tu lui affectes la valeur 1 (activé).

EDIT : Tu peux déjà ajouter du code source C++.

En gros :
Interrupteur = Nom hideux utilisé par RPG Maker et qui existe sous le nom de “Variable” dans tous les autres langages et outils de développement, dont Game Develop.

Bonjour

Ou une variable de type booléenne (true ou false) utilisée dans de nombreux langages de programmation…

jérémie 14

Oui, il s’agit précisément d’une variable booléenne.

Prends une variable et change sa valeur en 1 ou 0.
Et pour tester si c’est true (=1) ou false (=0) utilise la comparaison d’expression, et compare ta variable et 1.
Si variable machine = true (donc 1) , l’action sera effectuée.

Il y a de l’écho par ici ? :astonished:

Bonjour à tous,

J’ignore si sous GD il est possible de créer des variables de type ‘octet’. Je pense que cela serait assez utile par exemple lorsque dans son jeu, on a de multiples interrupteurs à actionner dans 1 certain ordre et si ce dernier est respecté alors une porte s’ouvrira à cette condition seulement (ceci est 1 exemple bien sûr)
On aurait : 1 pour levier baissé et 0 pour levier levé et ce, pour chacun des 8 bits. On gérerait ainsi par octet jusqu’à 8 interrupteurs ou leviers.
Bien sûr, on pourrait tout autant utiliser une variable de type ‘texte’. Cela présenterait comme avantage une longueur beaucoup plus grande que 8 positions binaires (8 bits) par octet mais au chapitre des inconvénients, on notera que cela compliquerait d’autant la tâche du créateur de jeux (il lui faudra alors gérer et tester par fonctions chaque valeur de bit pour déterminer la position des leviers dans la chaine.

HS : Cela faisait longtemps que je ne m’étais pas exprimé sur un forum de création de jeux (oui, GM Zone n’est plus mais peu importe !)
GD est là et je félicite chaudement son auteur qui n’imagine peut-être pas à quel point, il contribue à rendre accessible, par la gratuité de l’outil notamment, la création de jeux à tout un chacun.

Xierra54

PS : je suis nouveau sous GD mais peut-être que certains me connaissent quand j’étais sur le forum Game Maker Zone

Il n’y a pas de tel type de variable dans GD mais pour réaliser une telle chose, j’utiliserai personnellement une variable à incrémenter, comme ceci par exemple :

[code]Conditions : Interrupteur1 est baissé par le joueur
Actions : (Changer l’état de Interrupteur1…)
Faire +1 à la variable InterrupteurAvancement

Conditions : Interrupteur2 est baissé par le joueur
La variable InterrupteurAvancement est = à 1
Actions : (Changer l’état de Interrupteur2…)
Faire +1 à la variable InterrupteurAvancement

Conditions : Interrupteur3 est baissé par le joueur
La variable InterrupteurAvancement est = à 2
Actions : (Changer l’état de Interrupteur3…)
Faire +1 à la variable InterrupteurAvancement
[/code]

Afin de forcer un certain ordre. Peut être est ce moins pratique ( mais d’un autre coté, on n’est pas limité arbitrairement par un concept informatique qu’est une variable sur 8 bit ), mais ça me semble quand même assez facilement réalisable.

Bienvenue sur le forum en tout cas. :slight_smile:

Merci à toi 4ian pour tes souhaits de bienvenue.

Si ma mémoire est exacte, il me semble que nous avions déjà échangé sur un autre forum. Tu nous parlais justement de ton formidable logiciel Game Develop mais cela fait quelques années (je connais un peu Multimedia Fusion et j’apprécie la simplicité d’utilisation de ton outil)

Comme GD ne permet pas le typage des variables (bien qu’il propose je crois tout de même l’objet ‘Texte’), je repose alors ma question autrement :
Existe t’il des fonctions dans GD permettant de lire une chaine caractère par caractère ? (afin d’en extraire la valeur bien entendu)
Dans l’affirmative, cela permettrait d’apporter une réponse à ma précédente question.
Car en effet, si cela est possible, cela serait sans conteste plus court, plus concis et donc sans doute plus lisible pour le créateur de jeux de procéder de la sorte plutôt que d’écrire de multiples :

<Si Condition 1>
Alors <Action 1… Action 2… etc>

<Si Condition 2>
Alors <Action 1… Action 2… etc>

Etc.

Excusez-moi si les questions que je pose ou vais poser ont des réponses évidentes pour la plupart d’entre vous mais je connais très peu GD.

A+

Actuellement, GD permet d’utiliser soit des variables qui contienne une chaine de caractère ou un nombre : Le type de la variable est determinée à l’utilisation. ( Si on appelle une action pour modifier le texte d’une variable, alors la variable prendra le texte comme valeur ).

Oui, tu peux trouver d’ailleurs toi même la fonction comme ceci :
En modifiant une action, comme celle qui modifie le texte d’une variable par exemple, tu as un petit bouton avec une icone à la droite du paramètre qui définit le texte de la variable : En cliquant dessus, Game Develop va ouvrir un éditeur d’expression texte, te permettant d’avoir la coloration syntaxique de l’expression que tu entre, ainsi que, en dessous, l’accès à toutes les propriétés et fonctions disponibles. Tu trouvera notamment dans la catégorie “Manipulation sur le texte” l’expression : “Obtenir un caractère depuis un texte”. Double clique dessus pour que Game Develop l’insère en te demandant les paramètres.
( De même, ce genre d’aide est disponible dans un éditeur d’expression de la même manière ).

En pratique ça donne :

StrAt("MonTexte",0) : Renverra M StrAt("MonTexte",2) : renverra n StrAt("MonTexte",Random(2)+1) : renverra o,n ou T StrAt(VariableString(MaVariable),0) : renverra le premier caractère de la variable "MaVariable".

Merci 4ian de toutes ces précisions.

Je considère que la question que je soulevais, a donc trouvé réponse.

A+