Forum Le CBNA

Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA.
 
AccueilAccueil  ­FAQFAQ  ­RechercherRechercher  ­S'enregistrerS'enregistrer  ­MembresMembres  ­ConnexionConnexion  
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 Compteur pour vos objets

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jerelink
Utilisateur moyen


Nombre de messages: 67
Projet Actuel: Zsog
Avancement:
5 / 1005 / 100


MessageSujet: Compteur pour vos objets   Mar 6 Oct - 19:16

Bonjour a tous =)
Je poste mon 1er script ici, qui n' est pas en partie de moi mais que j'ai retranscrit d'rpgmaker en gml =).

Ce script a pour but de crée un compteur pour vos munition votre argent dans le jeu etc.
Certain vont me dire "draw variable sa marche aussi gnii "
Bien...C' est pas faux, a la difference pret qu'ici vous choisissé la forme de vos chiffre la couleur etc puisque ce sont des sprites =) .

Tout dabord, créé un script que vous aller appellé compteur et entré y ce code :

Code:
if global._compteur>=999 global.compteur=999

unite_compteur    =global.compteur
unite_compteur    = unite_compteur mod 10
dizaine_compteur  =global.compteur
dizaine_compteur  -=unite_compteur
dizaine_compteur  /= 10
dizaine_compteur  = dizaine_compteur mod 10
centaine_compteur =global.compteur
centaine_compteur -=unite_compteur
centaine_compteur /= 10
centaine_compteur -=dizaine_compteur
centaine_compteur /= 10


switch(unite_rubis)
{
case 0: draw_sprite(Spr_compteur0,-1,view_xview[0]+330,view_yview[0]+215); break;
case 1: draw_sprite(Spr_compteur1,-1,view_xview[0]+330,view_yview[0]+215); break;
case 2: draw_sprite(Spr_compteur2,-1,view_xview[0]+330,view_yview[0]+215); break;
case 3: draw_sprite(Spr_compteur3,-1,view_xview[0]+330,view_yview[0]+215); break;
case 4: draw_sprite(Spr_compteur4,-1,view_xview[0]+330,view_yview[0]+215); break;
case 5: draw_sprite(Spr_compteur5,-1,view_xview[0]+330,view_yview[0]+215); break;
case 6: draw_sprite(Spr_compteur6,-1,view_xview[0]+330,view_yview[0]+215); break;
case 7: draw_sprite(Spr_compteur7,-1,view_xview[0]+330,view_yview[0]+215); break;
case 8: draw_sprite(Spr_compteur8,-1,view_xview[0]+330,view_yview[0]+215); break;
case 9: draw_sprite(Spr_compteur9,-1,view_xview[0]+330,view_yview[0]+215); break;
default:draw_sprite(Spr_compteur0,-1,view_xview[0]+330,view_yview[0]+215);
}

switch(dizaine_rubis)
{
case 0: draw_sprite(Spr_compteur0,-1,view_xview[0]+323,view_yview[0]+215); break;
case 1: draw_sprite(Spr_compteur1,-1,view_xview[0]+323,view_yview[0]+215); break;
case 2: draw_sprite(Spr_compteur2,-1,view_xview[0]+323,view_yview[0]+215); break;
case 3: draw_sprite(Spr_compteur3,-1,view_xview[0]+323,view_yview[0]+215); break;
case 4: draw_sprite(Spr_compteur4,-1,view_xview[0]+323,view_yview[0]+215); break;
case 5: draw_sprite(Spr_compteur5,-1,view_xview[0]+323,view_yview[0]+215); break;
case 6: draw_sprite(Spr_compteur6,-1,view_xview[0]+323,view_yview[0]+215); break;
case 7: draw_sprite(Spr_compteur7,-1,view_xview[0]+323,view_yview[0]+215); break;
case 8: draw_sprite(Spr_compteur8,-1,view_xview[0]+323,view_yview[0]+215); break;
case 9: draw_sprite(Spr_compteur9,-1,view_xview[0]+323,view_yview[0]+215); break;
default:draw_sprite(Spr_compteur0,-1,view_xview[0]+323,view_yview[0]+215);
}

switch(centaine_rubis)
{
case 0: draw_sprite(Spr_compteur0,-1,view_xview[0]+316,view_yview[0]+215); break;
case 1: draw_sprite(Spr_compteur1,-1,view_xview[0]+316,view_yview[0]+215); break;
case 2: draw_sprite(Spr_compteur2,-1,view_xview[0]+316,view_yview[0]+215); break;
case 3: draw_sprite(Spr_compteur3,-1,view_xview[0]+316,view_yview[0]+215); break;
case 4: draw_sprite(Spr_compteur4,-1,view_xview[0]+316,view_yview[0]+215); break;
case 5: draw_sprite(Spr_compteur5,-1,view_xview[0]+316,view_yview[0]+215); break;
case 6: draw_sprite(Spr_compteur6,-1,view_xview[0]+316,view_yview[0]+215); break;
case 7: draw_sprite(Spr_compteur7,-1,view_xview[0]+316,view_yview[0]+215); break;
case 8: draw_sprite(Spr_compteur8,-1,view_xview[0]+316,view_yview[0]+215); break;
case 9: draw_sprite(Spr_compteur9,-1,view_xview[0]+316,view_yview[0]+215); break;
default:draw_sprite(Spr_compteur0,-1,view_xview[0]+316,view_yview[0]+215);
}



Ensuite, appellé le dans un objet que vous appellé Obj_compteur et declaré ces 4 variables :

Code:
global.compteur=0
unite_compteur=0
dizaine_compteur=0
centaine_compteur=0


Puis, pour finir, appellé le script dans draw.

Il ne reste plus qu'a faire global.compteur += votre valeur afin d'augmenté celui ci super

_________________
Revenir en haut Aller en bas
SPLN
Très bonne participation


Nombre de messages: 120
Localisation: Sur son ordinateur *te vois* arrête de me regarder comme sa
Projet Actuel:
SP Lecteur Multimedia
SSB RPG (En Attente)
Avancement:
1 / 1001 / 100


MessageSujet: Re: Compteur pour vos objets   Jeu 8 Oct - 14:57

C'est un bon debut sauf que certains bout de codes sont a remplacer par des arguments et certaines manipe qui vont s'effectuer a l'infini comme l debut par exemple et certains bout de code je ne voit pas se qui font là!
Deplus le nom des sprites nous permettra de faire QU'UN COMPTEUR se qui est fort embettant

Bref je vais l'arranger un peu:

Create Event:
SCRIPT : compteur_init(spr0,spr1,spr2,spr3,spr4,spr5,spr6,spr7,spr8,spr9,valeur)
Code:

//Sprites pour le compteur
spr_compteur0 = argument0
spr_compteur1 = argument1
spr_compteur2 = argument2
spr_compteur3 = argument3
spr_compteur4 = argument4
spr_compteur5 = argument5
spr_compteur6 = argument6
spr_compteur7 = argument7
spr_compteur8 = argument8
spr_compteur9 = argument9

//Variables du compteur
compteur = argument10
compteur_unite = 0
compteur_dizaine = 0
compteur_centaine = 0


Step Event:
SCRIPT : compteur_limit(min,max)
Code:

/*****Limite*****/
if compteur < argument0 {global.compteur = argument0}
if compteur > argument1 {global.compteur = argument1}

/*****Calcul des Variables*****/
//Unites
compteur_unite = compteur
compteur_unite = compteur_unite mod 10

//Dizaines
compteur_dizaine = compteur
compteur_dizaine -= compteur_unite
compteur_dizaine /= 10
compteur_dizaine = compteur_dizaine mod 10

//Centaines
compteur_centaine = compteur
compteur_centaine -= compteur_unite
compteur_centaine /= 10
compteur_centaine -= compteur_dizaine
compteur_centaine /= 10


Draw Event:
SCRIPT : draw_compteur(x1,y1,x2,y2,x3,y3)
Code:

switch(compteur_unite)
{
case 0: draw_sprite(spr_compteur0,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 1: draw_sprite(spr_compteur1,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 2: draw_sprite(spr_compteur2,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 3: draw_sprite(spr_compteur3,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 4: draw_sprite(spr_compteur4,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 5: draw_sprite(spr_compteur5,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 6: draw_sprite(spr_compteur6,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 7: draw_sprite(spr_compteur7,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 8: draw_sprite(spr_compteur8,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
case 9: draw_sprite(spr_compteur9,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
default:draw_sprite(spr_compteur0,-1,view_xview[0]+argument0,view_yview[0]+argument1); break;
}

switch(compteur_dizaine)
{
case 0: draw_sprite(spr_compteur0,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 1: draw_sprite(spr_compteur1,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 2: draw_sprite(spr_compteur2,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 3: draw_sprite(spr_compteur3,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 4: draw_sprite(spr_compteur4,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 5: draw_sprite(spr_compteur5,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 6: draw_sprite(spr_compteur6,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 7: draw_sprite(spr_compteur7,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 8: draw_sprite(spr_compteur8,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
case 9: draw_sprite(spr_compteur9,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
default:draw_sprite(spr_compteur0,-1,view_xview[0]+argument2,view_yview[0]+argument3); break;
}

switch(compteur_centaine)
{
case 0: draw_sprite(spr_compteur0,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 1: draw_sprite(spr_compteur1,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 2: draw_sprite(spr_compteur2,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 3: draw_sprite(spr_compteur3,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 4: draw_sprite(spr_compteur4,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 5: draw_sprite(spr_compteur5,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 6: draw_sprite(spr_compteur6,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 7: draw_sprite(spr_compteur7,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 8: draw_sprite(spr_compteur8,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
case 9: draw_sprite(spr_compteur9,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
default:draw_sprite(spr_compteur0,-1,view_xview[0]+argument4,view_yview[0]+argument5); break;
}


Personnellement je ne l'ai pas encore tester j'editerai pour vous dire si le script marche!

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://www.dailymotion.com/SPLN ou http://sepalani.home.services.spaces.live.com/default.aspx
[TheDarkTiger]
Modérateur 'Programmation'


Nombre de messages: 6165
Localisation: Essonne
Avancement:
0 / 1000 / 100


MessageSujet: Re: Compteur pour vos objets   Ven 9 Oct - 4:20

heuuu

pourquoi ne pas utiliser les sous images?

En général, quand on fait des copier/coller, il existe une autre solution...

if global._compteur>=999 global.compteur=999

unite_compteur =global.compteur
unite_compteur = global.compteur mod 10
dizaine_compteur =floor((global.compteur mod 100)/10);
centaine_compteur =floor((global.compteur mod 1000)/100);


draw_sprite(Spr_compteur,unite_rubis,view_xview[0]+330,view_yview[0]+215);
draw_sprite(Spr_compteur,dizaine_rubis,view_xview[0]+323,view_yview[0]+215);
draw_sprite(Spr_compteur,centaine_rubis,view_xview[0]+316,view_yview[0]+215);

à vue de pif, je dirait qu'avec un boucle FOR, on peut faire encore moins de lignes.

mais là, dodo baille zz

_________________
Bonne chance pour vos projets actuels!
Prêt à aider ceux qui en ont besoin ^^

actuellement à Liverpool http://leaveherpool.canalblog.com/

Bienvenue au 1388eme utilisateur : lionelvader !
Revenir en haut Aller en bas
http://www.membres.lycos.fr/thedarkminousite/
Jerelink
Utilisateur moyen


Nombre de messages: 67
Projet Actuel: Zsog
Avancement:
5 / 1005 / 100


MessageSujet: Re: Compteur pour vos objets   Ven 9 Oct - 13:38

Tout simplement parce que je ne connait pas encore Game maker aussi bien que vous deux gnii .
C' est mon 1er script que je poste et j'entend bien qu'il y a bien plus simple seulement je ne sait pas comment faire donc après c' est surtout une sorte d'algo sur la quelle tout le monde peut se basé super

_________________
Revenir en haut Aller en bas
Playboy
Utilisateur confirmé: Rang ***


Nombre de messages: 636
Localisation: Sur la lune
Projet Actuel: Sur le pont du Charles de Playboy
Avancement:
5 / 1005 / 100


MessageSujet: Re: Compteur pour vos objets   Ven 9 Oct - 13:42

demandé et c'est pesé !

Code:

global._compteur=min(999,valeur) //Une idée comme une autre ^^
for (i=0,i<3;i=i+1)
  {
  chiffre_rubis[i]=floor((global.compteur % 10^(i+1))/(10^i));
draw_sprite(Spr_compteur,chiffre_rubis[i],view_xview[0]+330-7*i,view_yview[0]+215);
  }


Je me suis callé sur le code de TDT Smile Mais je pense qu'il y a pas d'erreur pour la traduction en boucle Smile S'il y en a une bien l'idée est là au moins XD

_________________
[Démo du RPG (30 Juin 2009) = Aeris] ------------------ [Jeux Finis/Mon topic = Laguna]
Revenir en haut Aller en bas
 

Compteur pour vos objets

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Programmation :: Scripts GML-
Poster un nouveau sujet   Répondre au sujet