Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

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

Aller en bas 
3 participants
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Systeme de Pts de vie, vos idées... Empty
MessageSujet: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... EmptyVen 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
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite
-a-timburton-a-


Nombre de messages : 588

Date d'inscription : 17/05/2010


Systeme de Pts de vie, vos idées... Empty
MessageSujet: Re: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... EmptyVen 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...

_________________
Systeme de Pts de vie, vos idées... Chouchoupouet-2ffab17
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


Systeme de Pts de vie, vos idées... Empty
MessageSujet: Re: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... EmptyVen 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite
-a-timburton-a-


Nombre de messages : 588

Date d'inscription : 17/05/2010


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

Alors je suis académique x)

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

_________________
Systeme de Pts de vie, vos idées... Chouchoupouet-2ffab17
Revenir en haut Aller en bas
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Systeme de Pts de vie, vos idées... Empty
MessageSujet: Re: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... EmptySam 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
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite
-a-timburton-a-


Nombre de messages : 588

Date d'inscription : 17/05/2010


Systeme de Pts de vie, vos idées... Empty
MessageSujet: Re: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... EmptySam 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. ^^

_________________
Systeme de Pts de vie, vos idées... Chouchoupouet-2ffab17
Revenir en haut Aller en bas
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


Systeme de Pts de vie, vos idées... Empty
MessageSujet: Re: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... EmptyDim 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
Systeme de Pts de vie, vos idées... 661006coeur3

gVIE2
Systeme de Pts de vie, vos idées... 186424coeur2

gVIE1
Systeme de Pts de vie, vos idées... 233447coeur1


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
Contenu sponsorisé





Systeme de Pts de vie, vos idées... Empty
MessageSujet: Re: Systeme de Pts de vie, vos idées...   Systeme de Pts de vie, vos idées... Empty

Revenir en haut Aller en bas
 
Systeme de Pts de vie, vos idées...
Revenir en haut 
Page 1 sur 1

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: