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

Partagez | 
 

 Systeme de Pts de vie, vos idées...

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Systeme de Pts de vie, vos idées...   Ven 4 Mai 2012 - 17:20

Alors voilà, pour mon jeu je voudrais utiliser un système de vie. Le personnage a 3 vies.

Ne sachant pas bien comment procéder et voulant me débrouiller par moi-même, j'ai fait fonctionner ma petite tête et j'ai trifouillé le fichier d'aide d'AGS, j'ai vu une fonction intéressante GiveScore(x); qui permet de donner un score.

J'ai alors imaginé un système :
Déjà j'ai crée 3 GUI. GUIlive1 , GUIlive2 et GUIlive3
Chacun des GUI correspond à une image représentant les pts de vie. GUIlive1 dessin avec 3 coeurs rouges, GUIlive 2 , deux coeurs rouges un en gris , etc...


Après dans le Globalscript , sous function repeatedly_execute() j'ai ajouté une petite fonction assez simple pour dire en gros:
Iniatialement le GUIlive1 est visible, puis j'ai dit, si le score est de 1 , le GUIlive1 n'est plus visible mais le GUIlive2 devient visible, si le score est de 2 ....etc ...

Après dans mon jeu, j'ai programmé un évènement en gros, si tu ne fais pas bien quelque chose, tu perds une vie.
Pour cette fonction, j'ai aussitôt pensé tout simplement à donner +1 en score a chaque vie perdue (oui oui, je sais, c'est probablement une logique bizarre, obtenir des pts de score normalement ça fait gagner)

Malheureusement, je me suis vite rendu compte que la fonction GiveScore(x); n'était pas une fonction qui permettait de donner des pts de score MAIS de signaler un Etat dans le score. Je m'explique, les pts donné avec GiveScore ne sont pas additionnables.

Si on ajoute la fonction GiveScore(32);
Le score sera de 32
mais si après une nouvelle action nous fait gagner 2 pts, on ajoute la fonction GiveScore(2) , elle ne nous fera pas avoir un score de 34 mais un score de 2

A partir de là, tout se compliquait .... J'ai donc pensé a modifier mon évènement qui faisait perdre une vie en y ajoutant une condition: Si le personnage a 0 pt, alors il y aura GiveScore(1) , si le personnage a 1 pts, ça sera GiveScore(2) ...etc... et donc, si le personnage a déjà un score de 3 , au lieu de donner un autre pt, ça sera un Game over.

Devinez quoi ?
Ça ne marche pas bien
Je me suis mélangé les pédales grand sourire



Bon cette expérience aura au moins eu le mérite de me faire réfléchir un peu, mine de rien, je progresse je progresse... uh
Mais sinon donc, si vous avez déjà utilisé un système de vie, vous avez fait quoi ?
Il existe probablement quelque chose de bien plus simple, une fonction que je ne connais pas.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Re: Systeme de Pts de vie, vos idées...   Ven 4 Mai 2012 - 18:54

Changer les valeurs d'une variable, je crois que ça peut se faire... du genre "Si la variable a atteint 0 faire un game over"

ta variable commence à 3 et si c'est 3 il s'affiche 3 coeurs, etc...

Je ne m'y connais pas trop, mais je crois que sous cet ordre c'est possible...

_________________
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


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: Systeme de Pts de vie, vos idées...   Ven 4 Mai 2012 - 23:37

C'est amusant de voir l'ingéniosité dont on peut parfois faire preuve pour développer un système ! langue

Tu dis "ça ne marche pas bien", mais qu'est-ce qui déconne au juste ?
Parce qu'à première vue ça parait plutôt raisonnable comme démarche, à condition bien sûr de ne pas chevaucher des conditions, c'est-à-dire ne pas faire de code du style :
Code:
if (game.score == 0) GiveScore(1);
if (game.score == 1) GiveScore(2);
if (game.score == 2) GiveScore(3)
if (game.score == 3) ResetGame();
Imaginons que le score vaille initialement 0. Arrivé au premier if, la condition étant validée, la commande GiveScore(1) est exécutée : le score du joueur vaut désormais 1. Arrivé au deuxième if la condition, qui initialement n'aurait pas été validée, est désormais validée, puisqu'on vient de définir le score à 1. On comprend de suite que toutes les conditions vont être validées, amenant finalement à l'exécution de la commande ResetGame().
Après je ne sais pas si c'est ça ton problème, mais c'est une piste.

Quoi qu'il en soit, ce que tu fais là c'est que tu utilises le score du joueur comme une variable globale qui représente la vie du joueur.
Une solution plus académique (si tant est qu'on puisse parler d'académie en programmation/AGS clin d\\\\'oeil) serait donc d'utiliser les objets variables globales (onglet Global Variables dans l'éditeur) prévus à cet effet. Il te suffit de créer une nouvelle variable entière (int) à laquelle tu donnes 3 comme valeur par défaut (on commence avec 3 vies). Mettons que tu la nommes Vies, il te suffira de mettre, dans l'événement qui fait perdre une vie au personnage, la commande Vies--; qui aura pour effet de réduire la valeur de la variable de 1.
Juste après cette commande, tu peux placer la condition if (Vies == 0) ResetGame(); ou quelque chose comme ça.

_________________
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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Re: Systeme de Pts de vie, vos idées...   Sam 5 Mai 2012 - 8:37

Alors je suis académique x)

C'est cette solution que je voulais dire, m'suis mal exprimé...

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Systeme de Pts de vie, vos idées...   Sam 5 Mai 2012 - 16:38

Citation :
Changer les valeurs d'une variable, je crois que ça peut se faire... du genre "Si la variable a atteint 0 faire un game over"

ta variable commence à 3 et si c'est 3 il s'affiche 3 coeurs, etc...

Je ne m'y connais pas trop, mais je crois que sous cet ordre c'est possible...


langue

On peut dire ça sourire
héhé je taquine.
Au fait, total hors sujet, mais Tim ton image me fait penser à Thom Yorke dans le clip there there..



MERCI encore une fois Kitai, je test et j'édite voir si j'y arrive ....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Re: Systeme de Pts de vie, vos idées...   Sam 5 Mai 2012 - 17:02

Dommage c'est l'image d'un jeu; The Path x)

Je ne pense pas qu'il y ait de lien. ^^

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Systeme de Pts de vie, vos idées...   Dim 6 Mai 2012 - 17:50

Kitai , merci ça fonctionne parfaitement et c'est d'une facilité déconcertante.
J'ai finalement fonctionné en utilisant ta méthode d'ajouter une variable dans la Global Variables.


Après pour l'anecdote, ma première méthode fonctionne aussi (bien que nettement plus fastidieuse) , je m'étais juste trompé en recopiant le nom des GUI et j'affichais le GUIlive1 au lieu du GUIlive2 etc...
Du coup, visuellement j'avais l'impression de gagner une vie alors que j'en perdais une. Une bête petite erreur ....



Pour peut-être aider des gens dans l'avenir, je vais faire un petit point sur la méthode utilisée.
Voilà ce que je veux : Un système de 3 vies qui s'affiche en haut à droite de l'écran sous la forme de 3 petits cœurs par exemple, comme pour Zelda.



- Alors déjà, créer une variable "VIE" , il suffit pour ça d'aller dans Global Variable , clique droit , add new variable, type (int) et mettre 3 comme valeur dans Initial Value. 3 c'est notre nombre de vies souhaitées

-Ensuite, il faut simplement faire 3 GUI avec chacun une image représentant le niveau de la vie.
J'ai réalisé vite fait des petites images pour exemple :

Le niveau de la vie est au max, je vais nommer ce Gui gVIE3


gVIE2


gVIE1



Ensuite, il suffit d'aller dans le Globalscript, sous la ligne :
function repeatedly_execute()

Code:

//Système de Vie

if (Vie==3){
  gVIE3.Visible=true;
  gVIE1.Visible=false;
  gVIE2.Visible=false;
  }
   
  else if (Vie==2){
  gVIE3.Visible=false;
  gVIE2.Visible=true;
  gVUE1.Visible=false;
}

  else if (Vie==1){
  gVIE3.Visible=false;
  gVIE2.Visible=false;
  gVIE1.Visible=true;
}
 
  else if (Vie==0){
  Display("Game over");}


-Après, si vous voulez faire perdre une vie à votre personnage, il suffit d'ajouter dans la conséquence de l'action : VIE--;
Si vous voulez faire gagner une vie à votre personnage ajouter : VIE++;

A noter qu'il faudra faire attention de ne pas faire gagner plus de 3 vies au personnage, vu que là, on voulait uniquement un système à 3 vies strictement. Sinon, il suffit simplement de modifier selon ses envies.

Dernier point, si vous laissez le code comme il est, le Display("Game Over"); si le nombre de vie est tombé à 0 va s'afficher en boucle et va bloquer le jeu car elle est définit dans function repeatedly_execute(). A vous de modifier cette partie selon vos envies ....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Systeme de Pts de vie, vos idées...   Aujourd'hui à 17:23

Revenir en haut Aller en bas
 
Systeme de Pts de vie, vos idées...
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Vends] Versus City, Systeme Taito Ty X2, kof xiii et ssfae
» Systeme de loot
» II le systeme de combat.
» benibi dans magic systeme
» Nintendo Entertainment Systeme

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: