AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-24%
Le deal à ne pas rater :
PC Portable Gaming 15.6″ Medion Erazer Deputy P40 (FHD 144Hz, RTX ...
759.99 € 999.99 €
Voir le deal

 

 [Résolu] Etat Sprite ?

Aller en bas 
5 participants
AuteurMessage
Gumboy
Débutant
Gumboy


Messages : 10
Localisation : Dijon

[Résolu] Etat Sprite ? Empty
MessageSujet: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 17:28

Bonjour,
tout d'abord je ne savait pas si ce sujet allait dans cette section, messieurs les modos veuillez m'excusez si ce n'est le cas ^^.

Voila j'ai un problème assez énervant,
J'ai un personnage (plateforme gaming) qui a ces actions en plusieurs etat :

1er état (mode normal) : il cour droite/gauche, saute.
2eme état (mode perception) : il cour droite/gauche, saute et ces sprites changent.

Le problème est que je voudrait lors du passage de l'etat normal a l'état perception, le sprite change en fonction de ce qu'il fait.
Ex : il cour vers la gauche en mode normal (donc sprite perso_cour_gauche_normal) et j'appuis sur "espace" et le sprite change (donc sprite perso_cour_gauche_perception).
Ex 2 : il saute (donc sprite perso_saut_normal) j'appuie sur "espace" lors du saut et le sprite change (donc sprite perso_saut_perception).

Que me conseiller vous? gardez un objet pour le perso et jouer avec les sprites pour les états normal et perception?
ou bien carément faire des objets par état, un objet perso_normal et un objet perso_perception.

Sa a l'air simple comme sa, mais sachant que 2 touches doivent etre activer par moment me bloque.. (touche gauche + espace par exemple pour changer d'etat en courant)

Merci de m'éclairer je suis completement bloquer ><.
Cdlt.


Dernière édition par Gumboy le Lun 8 Oct 2012 - 12:09, édité 1 fois
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 18:08

Bonjour et soi le bienvenu sur le cbna Smile

Je te conseille de surtout tout faire en un seul objet, sinon tu risques de vraiment te compliquer la vie!
Je vais te proposer une solution :
À chaque endroit où tu prévois de faire un changement de sprite, fais une petite condition, en fonction d'une variable indiquant l'etat du personnage (normal ou perception, soit 0 ou 1):

Code:
//Changement de sprite quand on appuie sur la touche de saut:
if (modeNormal)
{
sprite_index = spriteSautNormal;
}
else
{
sprite_index = spriteSautPerception;
}
Bien sur, tu auras défini précédemment la variable 'modeNormal' (=0 si on est en perception, à 1 si on est en normal).
--------------------------------------------
Si tu cherches une solution plus propre, tu peux stocker l'id des différents sprites dans une ds_grid(2,n), du coup, pour appeller un sprite:
sprite_index = (modeNormal , indexDansLaGridDuSpriteDeSaut);

Je ne connais pas ton niveau, donc je ne sais pas trop quoi te dire, de plus!

_________________
[Résolu] Etat Sprite ? Control_commentTous les icones de gm utilisables sur le cbna ICI [Résolu] Etat Sprite ? Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Gumboy
Débutant
Gumboy


Messages : 10
Localisation : Dijon

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 18:29

Merci pour ta réponse,

mais quelque chose me chagrine xD.

Le probleme c'est que là, imaginons que je cours et que je change la variable du mode normal pour passer en mode perception, le mode perception changera le sprite seulement lorsque j'aurais arreté de courir et appuyé sur une touche.

Ce qui me bloque vraiment c'est, mon personnage cour (avec un sprite d'animation courir en mode normal) et j'appuie sur "espace" par exemple tout en restant appuyer sur la touche left (en course), et la j'aimerais une transition parfaite entre le sprite courrir en mode normal et mode perception (c'est les même sprite quasiment, le mode normal est le perso avec un oeil a moitier fermer, et le mode perception avec l'oeil grand ouvert).

Alors, en plus de la variable Modenormal, dans key_pressed(space), est-ce que je doit mettre genre :

Code:
if keyboard_pressed(left) && Modenormal=0
{
sprite_index = perso_cour_gauche_perception;
Modenormal=1;
}

if keyboard_pressed(right) && Modenormal=0
{
sprite_index = perso_cour_droite_perception;
Modenormal=1;
}

etc...?

Ou bien, est-ce qu'il y a un moyen de créer une condition a partir d'un sprite?
du genre :
Code:
 if "sprite_cour_gauche_modenormal" est utilisé
{
alors je change avec le sprite "sprite_cour_gauche_modeperception"
}
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 18:52

Tout simplement if sprite_index=nom_de_ton_sprite mrgreen2
Sinon bienvenue sur le cbna !
Revenir en haut Aller en bas
Gumboy
Débutant
Gumboy


Messages : 10
Localisation : Dijon

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 19:24

Ah oui je suis bête xD c'est bon le script marche niquel même si c'est un peu le bordel ^^.

Code:
if keyboard_check(vk_left)
{
if Mode=0
{
sprite_index = perso_court_gauche_activ;
Mode = 1;
}
else
{
sprite_index = perso_court_gauche_none;
Mode=0;
}}



if keyboard_check(vk_right)
{
if Mode=0
{
sprite_index = perso_court_droite_activ;
Mode = 1;
}
else
{
sprite_index = perso_court_droite_none;
Mode=0;
}}


if Mode=0
{
if sprite_index=perso_stop_droite_none
{
sprite_index=perso_stop_droite_activ
Mode=1
}}
else
{
if sprite_index=perso_stop_droite_activ
{
sprite_index=perso_stop_droite_none
Mode=0
}}

if Mode=0
{
if sprite_index=perso_stop_gauche_none
{
sprite_index=perso_stop_gauche_activ
Mode=1
}}
else
{
if sprite_index=perso_stop_gauche_activ
{
sprite_index=perso_stop_gauche_none
Mode=0
}}


Merci bien ^^
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 19:29

Si tu veux un bon conseil, indente ton code, t'y verra beaucoup plus clair happy1
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 20:05

Pour faire plus simple, essaye ça :

Tu crées une variable 'state', pour définir ce que fais ton perso (se tenir, courir, marcher, etc.)
Tu crées une variable 'mode' pour définir le mode.

Quand tu appuies sur une touche, ça change le state.

´Les conditions, elles se mettent alors avec le draw event :
Citation :

if (mode == NORMAL)
{
if (state == RUNNING)
{
draw_sprite(spriteRunningNormal,-1,x,y);
}
if (state == STANDING)
{
draw_sprite(spriteStandingNormal,-1,x,y);
}
}
else
{
if (state == RUNNING)
{
draw_sprite(spriteRunningPerception,-1,x,y);
}
if (state == STANDING)
{
draw_sprite(spriteStandingPerception,-1,x,y);
}
}

_________________
[Résolu] Etat Sprite ? Control_commentTous les icones de gm utilisables sur le cbna ICI [Résolu] Etat Sprite ? Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyDim 7 Oct 2012 - 20:51

Bienvenue Gumboy.

Citation :
même si c'est un peu le bordel ^^.
Prend le temps d'indenter, commenter et organiser proprement ton code. C'est très important. Si tu replonge dedans dans deux mois tu ne comprendras plus ce que tu as fait et tu abandonnera le tout.

Voici ce que peut donner ton code avec quelques minutes de réorganisation:

Spoiler:

(Je n'ai strictement rien changé à ton code, j'ai juste mis au propre et placé des commentaire à des endroits clef.)
Nb: Jolie M@d Smile


Revenir en haut Aller en bas
Gumboy
Débutant
Gumboy


Messages : 10
Localisation : Dijon

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyLun 8 Oct 2012 - 11:33

Merci bien, cela fait longtemps que j'ai plus toucher a GM, c'est fou comment on oublie vite certaine fonction ou même de bien organiser ces scripts et pourtant je sait que sa m'avais porté préjudice ><.

J'ai encore une minime question, pour éviter le surplus de sprites, y-a t-il une fonction mirror sprite en gml? car bon en passant par l'editeur de sprite sa me rajoute facile 15 frame par coté sachant que j'anime tout, pose de standing, course, saut, tombe etc.. sa me serait bien plus économique d'utiliser une fonction mirror gml plutot que de doubler mon nombre de sprite..
Je crois que sa n'existait pas à l'époque des anciens GM, mais vu les MAJ d'aujourd'hui je demande on ne sait jamais ^^.

Merci encore pour votre aide Smile
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyLun 8 Oct 2012 - 12:02

image_xscale a -1, ou draw_sprite_ext avec xscale a -1 Wink

_________________
[Résolu] Etat Sprite ? Runningpotato1[Résolu] Etat Sprite ? TvF6GED [Résolu] Etat Sprite ? MdetltS
Revenir en haut Aller en bas
Gumboy
Débutant
Gumboy


Messages : 10
Localisation : Dijon

[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? EmptyLun 8 Oct 2012 - 12:09

Encore merci =D mes sauveurs (a) xD
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu] Etat Sprite ? Empty
MessageSujet: Re: [Résolu] Etat Sprite ?   [Résolu] Etat Sprite ? Empty

Revenir en haut Aller en bas
 
[Résolu] Etat Sprite ?
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 :: Développement :: Entraide confirmés-
Sauter vers: