Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

 

 [Tuto] Afficher la valeur d'une variable

Aller en bas 
3 participants
AuteurMessage
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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 !!! [Tuto] Afficher la valeur d'une variable 114419
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


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


Nombre de messages : 6018

Age : 45

Localisation : Montpellier

Date d'inscription : 17/04/2006


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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 ! :^^:
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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:
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 45

Localisation : Montpellier

Date d'inscription : 17/04/2006


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

Oui et pas qu'un peu zarb
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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: !
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 45

Localisation : Montpellier

Date d'inscription : 17/04/2006


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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 ! :^^:
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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:
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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:


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


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Afficher la valeur d'une variable Empty
MessageSujet: Re: [Tuto] Afficher la valeur d'une variable   [Tuto] Afficher la valeur d'une variable EmptyLun 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:
Revenir en haut Aller en bas
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
[Tuto] Afficher la valeur d'une variable
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Trier des variables par valeur ?
» faire varier une valeur
» Function pour avoir valeur de la longueur et la largeur d'un character
» [astuce]Afficher le FPS
» Variable

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: