Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [Tuto] Afficher la valeur d'une variable

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
avatar

Nombre de messages : 1513

Age : 24

Localisation : La Rochelle

Date d'inscription : 09/01/2008


MessageSujet: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 11:13

Bonjour, j'apporte une petite astuce pour vous aider à la programmation AGS. Avant toute chose, je tiens à dire que le script est beaucoup plus performant qu'on ne peut le penser. Vous le savez certainement je pense, AGS est très familier avec le langage C.
J'ai eu une idée, et en utilisant la fonction %ld à une variable, il est possible d'afficher sa valeur !!

Pourquoi ?

Et bien par exemple : afficher le nombre de pièce qu'a récolté un aventurier, sous forme de message bien sûr ^^.
Vous ouvrez votre inventaire et puis vous voulez savoir combien de pièces vous possédez, donc clic droit ==> mode regarder, ensuite clic gauche sur le sac de pièce ==> Vous avez 38 pièces d'or !!
Au cours de l'aventure vous en ramassez d'autres, vous ouvrez votre inventaire, mode "look" puis clic sur le sac d'or ==> Vous avez 49 pièces d'or !!

Magique, et ceci sans se tracasser l'esprit à créer 50 items qui ont pour image un sac d'or puis de programmer tous les messages ==> Vous avez 1...2....3.....4...... etc... pièces d'or.

La théorie c'est bien, la pratique c'est mieux :^^: :

Voilà, le moment le plus intéressant :dd:
En faite, si je garde cet exemple, la ligne de code serait :

Code:
Display("Vous avez %ld pièces d'or !!", piece);

En faite, avant tout, vous devez créer une variable (piece en l'occurrence).
Alors attention car si les objets sont dans d'autres rooms, vous devrez créer une variable global, en utilisant la fonction :

Code:
SetGlobalInt(1,0);
Pour plus d'infos ==> Clic ici

Dès que l'aventurier gagne 35 pièces :

Code:
SetGlobalInt(1, GetGlobalInt(1)+35);

Ce ligne veut dire : "Mettre à la variable 1 la valeur de la variable 1 + 35"
Attention il y a bien deux types de GlobalInt : le Get et le Set.
En faite ce n'est pas compliqué, le Set permet de créer ou de modifier une variable (modifier = ajouter, soustraire, etc...)
Le Get permet d'afficher la valeur actuelle de la variable.

La méthode pour afficher les messages est la même.

Code:
display("Vous avez %ld pièces d'or",  GetGlobalInt(1));

Nous constatons donc qu'il y a deux types de variables :perplexe: :
  • Les variables classiques

  • Les variables globales


Le choix est vite fait :^^:

Si votre variable ne dépasse pas la room, va pour un int !
Si votre variable nécessite son utilisation sous plusieurs rooms, va pour un global !
Si vous n'êtes pas sûr de vous, va aussi pour un global, comme ça vous ne risquez rien...

N'oubliez pas que vous pouvez comparer les variables entres elles :surprise:

Toujours le même exemple :

Vous avez deux sacs de pièces, l'un d'or, l'autre d'argent, imaginons que l'aventurier ne veuille pas les mélanger, par exemple, il ne peut acheter des armes qu'avec de l'or et des sorts qu'avec de l'argent, bref...
Bien sûr il faut deux items, l'un d'un sac d'or l'autre d'un sac d'argent.

Le problème est le suivant :

Sac d'or = 50
Sac d'argent = 122

Clic sur sac d'or en mode "look", un message affiche ceci :

Vous avez 50 pièces d'or.
Vous avez 172 pièces en tout.


Pareil pour sac d'argent :

Vous avez 122 pièces d'argent.
Vous avez 172 pièces en tout.


Quel est ce script de fou ? =====> Celui de Alucard peut être ::XD:
Non plus sérieusement, c'est très très simple, voilà nos données :

Code:
SetGlobalInt(1,50); // variable 1 (sac d'or) avec 50 pour valeur (pieces)
SetGlobalInt(2,122); // variable 2 (sac d'argent) avec 122 pour valeur (pieces).

C'est tout ^^, ces variables ce trouvent dans la section : "game_start" ; bon alors bien sûr imaginons que nous débutons le jeu avec ces sommes là dès le départ, en vrai vous mettriez 0 à chaque sac ^^

Voilà, maintenant les scripts, alors celui-ci nous montre le nombre de pièces d'or si clic sur sac d'or en mode "look"

Code:
 // script for Inventory item 1 (sac d'or): Look at inventory item
Display("Vous avez %ld pieces d'or", GetGlobalInt(1));

Jusque là, pas de soucis.
Nous voulons indiquer l'or => variable 1.

Nous voulons indiquer ensuite le nombre total de pièce, qui est composé du nombre de pièce dans le sac d'or et le nombre de pièce dans le sac d'argent, il faut donc les additionner. Ajouter donc cette ligne de code :
Code:
Display("Vous avez %ld pieces en tout", GetGlobalInt(1)+GetGlobalInt(2));
C'est mieux ? grand sourire
Maintenant vous savez tout !!!
Si clic sur sac d'argent en mode "look" : Pareil

Code:
 // script for Inventory item 2 (sac d'argent): Look at inventory item
Display("Vous avez %ld pieces d'argent", GetGlobalInt(2));
Display("Vous avez %ld pieces en tout", GetGlobalInt(1)+GetGlobalInt(2));

La seule chose qui a changée c'est la 1ère ligne, la variable choisit est la 2 puisque nous voulons le nombre de pièce d'argent ; le message également a changé, remplacez "or" par "argent". Autrement dit vous n'avez qu'à copier/coller le 1er script et le modifier.

Eh ben, on en a appris des choses aujourd'hui sourire
J'espère avoir été clair et surtout vous permettre d'améliorer vos projets.
Car un jeu sans variables, ce n'est pas un jeu grand sourire .
Sur ce je vous laisse et merci beaucoup d'avoir lu ce tuto.
Bye bye sourire

See you again soon

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.


Dernière édition par Crazy Legs le Dim 1 Fév 2009 - 13:08, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
avatar

Nombre de messages : 5420

Age : 39

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 11:47

Très intéressant, et je me permettrais d'ajouter une autre astuce :sourire:

Vous pouvez intégrer des textes modifiables dans des dialogues en utilisant %s.

Par exemple, mettons qu'au début du jeu, vous laissez au joueur le choix de donner un nom à son personnage. Vous créer dans le GUI un label nommé "nomjoueur". Au début du jeu, vous créez un GUI avec un text box (nommé par exemple "entrezlenom") où le joueur peut entrer son nom.
Avec une ligne de code, vous faites :

nomjoueur.Text = entrezlenom.Text;

ainsi le nom du joueur apparaîtra dans le GUI. Et vous pourrez appeler le nom du joueur au cours d'un dialogue comme ceci :

cPersonnage.Say("Bonjour %s !", nomjoueur.Text);

ou

Display("%s ne peut pas faire cela.", nomjoueur.Text);


C'est magique ! :^^:

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
avatar

Nombre de messages : 1513

Age : 24

Localisation : La Rochelle

Date d'inscription : 09/01/2008


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 12:24

Oui exact, je connais ça aussi mais j'avais pas pensé qu'on pouvait le mettre dans AGS.

Concrètement :

%ld = chiffres
%s = lettres

Je parie Shai-la que tu as utilisé ces fonctions dans ton jeu Horse Park !

:cyclops:

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
avatar

Nombre de messages : 5420

Age : 39

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 12:25

Oui et pas qu'un peu zarb

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
avatar

Nombre de messages : 1513

Age : 24

Localisation : La Rochelle

Date d'inscription : 09/01/2008


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 12:32

En faite c'est ça la source d'un jeu de gestion, les indénombrables variables qui la compose, en comptant les %s si tu permets de donner un nom au cheval... Oups ::-x: ! je ne dois pas vendre la mèche grand sourire !!

Finalement un jeu de gestion c'est vraiment pour les utilisateurs très expérimentés et très patients surtout :travaille: !

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
avatar

Nombre de messages : 5420

Age : 39

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 13:22

Je te le fais pas dire... J'ai des dizaines de milliers de lignes de code !! zarb
Et quand tu te rends compte qu'il y a un truc qui marche pas, t'es bon pour en corriger des dizaines à chaque fois. Il faut prendre en compte toutes les combinaisons chevaux/cavaliers... je me suis lancée dans un truc de dingue ! Mais je vois le bout ! :^^:

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
avatar

Nombre de messages : 1513

Age : 24

Localisation : La Rochelle

Date d'inscription : 09/01/2008


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 13:37

Ben finalement te souhaiter bonne chance ne servait à rien en faite lol.
J'imagine bien l'état de ton script :ihih: .
A mon avis faire ce genre de jeu c'est une preuve de confiance en soi et de maîtrise. Si quelqu'un ne connais pas 25% de mon tuto, il a même pas besoin de chercher midi à 14h !!
Quand on pense à des jeux comme Sims :surprise: des jeux de gestion "professionnel" (bon certes moins professionnel que le tiens ::XD: )
Ça ne nous étonne plus si ces fous de l'informatique travaillent en groupe !

:cyclops:

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2494

Date d'inscription : 01/08/2006


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 19:42

Très clairement rédigé, la mise en page permet une bonne lisibilité, des conseils pratiques qui soulèvent un point à côté duquel il serait bien dommage de passer.

Le fichier d'aide d'AGS consacre également un petit chapitre au sujet, je vous mets un lien vers une page traduite ici, mais ceci est bien sûr disponible dans le fichier d'aide original (le lien mène vers la version traduite par mes "soins").


Bonne création à vous tous ^^


PS : Pour être un peu chipoteur, notons que définir une troisième variable pour un total de pièces est dispensable, du moins dans l'exemple donné :
Crazy Legs a écrit:
Code:
function repeatedly_execute() {
 // put anything you want to happen every game cycle here
  SetGlobalInt(3, GetGlobalInt(1) + GetGlobalInt(2));

Le variable 3 est créée, sa valeur est égale à l'addition des valeurs des variables 1 et 2.
Cela puisqu'on passe une valeur numérique après le message et celle-ci est automatiquement calculée par le moteur, avant l'exécution à proprement parlée.
Soyons clairs : plutôt que passer une variable qui contient l'addition, passons directement l'addition elle-même :
Code:

Display("Vous avez %ld pieces en tout", GetGlobalInt(1) + GetGlobalInt(2));
Ce qui évite tout de même de mettre du code dans repeatedly_execute, ce qui n'est pas rien :sourire:

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !


Dernière édition par Kitai le Lun 21 Juil 2008 - 21:43, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
avatar

Nombre de messages : 1513

Age : 24

Localisation : La Rochelle

Date d'inscription : 09/01/2008


MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   Lun 21 Juil 2008 - 20:47

Ce n'est pas faux. En fait le but du tuto c'est d'apprendre à utiliser la fonction %ld et de voir en profondeur les fonctions SetGlobalInt.
Donc bon j'ai laissé cette variable pour que cela soit plus compréhensible, sinon c'est trop technique grand sourire.

Merci pour les commentaires :bigsmile: !!!

:cyclops:

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   

Revenir en haut Aller en bas
 
[Tuto] Afficher la valeur d'une variable
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Tuto] Afficher la valeur d'une variable
» [Résolu] Mémoriser la valeur d'une variable après un call
» Comment avoir les commandes d'un contrôlinateur affichées en bas de l'écran ?
» [Tuto] Afficher la tension de 5v de votre borne
» Afficher une variable sur l'écran

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Trucs & Astuces, Tutoriaux-
Sauter vers: