| Perso immobile après un changement de sprite | |
|
|
Auteur | Message |
---|
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 17:00 | |
| Salut à tous, J'essaie depuis quelques jours le GML et j'ai décidé de me faire un petit projet assez simple pour commencer, un plateformer. Pour le moment j'arrive plus ou moins bien à trouver ce que je cherche, mon personnage se déplace de droite à gauche et saute. Néanmoins, je suis confronté à un problème assez étrange lorsque je veux changer les sprite de saut et de chute: dès que le perso retombe sur le sol, il reste avec son sprite de chute et ne peux plus se déplacer! J'ai cherché pendant pas mal de temps sur le forum mais je n'ai pas trouvé de post avec un problème similaire. Alors si un expert ici veux bien me donner un coup de main et m'expliquer là où j'ai foiré, ce serait super! merci! Voici un lien vers mon fichier gmx icimerci!!!! |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 18:02 | |
| salut,
As-tu essayer de faire sprite_index="ton_sprite" lorsque tu touche le sol ? |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 19:14 | |
| Salut, oui j'ai essayé mais le problème c'et que le perso ne peut plus bouger ni vers la gauche ni vers la droite, seulement vers le haut. Les anims de sprites s'activent bien des que je veux aller dans les directions mais il rest sur place (il patine quoi…) |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 19:26 | |
| salut,
à mon avis lorsque ton "perso" tombe et change de sprite au contact du sol, un (ou plusieurs pixels) reste(nt) bloquer dans le sol et donc ne fait pas avancer ton "perso"
essaye de régler les origines de tes sprite.
sinon je ne peut pas lire ton fichier car j'utilise game maker 6 |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 19:42 | |
| Je viens d'essayer et effectivement il semblerait que le problème vienne de là. Y a t-il une fonction GML pour l'empêcher de se coincer comme ça? |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 19:52 | |
| Il faut rendre constant le masque de collision de ton perso, soit en le spécifiant dans le menu "Mask" de l'éditeur d'objet, soit en donnant à tous tes sprites un mask custom (dans les propriétés des sprites) avec les mêmes paramètres :) |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 20:05 | |
| Youpi!!! ça marche super!! merci beaucoup les gars!! En revanche quand je touche le sol et lui redemande de jouer l'anim idle, il ne joue plus aucune anims et reste sur la premiere image tt le temps (pareil sur l'anim ou il marche). Voilà le code que je lui donne:
if vspeed = 0 { sprite_index = player_idle image_index = 0; image_speed = 0.5; }
même en change l'image_index en -1, ça ne change rien. Plus aucune anims du tout |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 20:18 | |
| comment as-tu codé les déplacement de ton perso ? met les codes stp, comme ça je ne peut pas t'aider j'y vais. salut |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 20:23 | |
| merci. voilà donc le code pour aller à gauche:
if (place_free(x-7,y) ) { hspeed=-5; } else {hspeed=0} if sprite_index != player_walk { sprite_index = player_walk image_index = 0; image_speed = 0.5;
}
et celui là pour la droite:
if (place_free(x+7,y) ) { hspeed=5; } else {hspeed=0} if sprite_index != player_walk { sprite_index = player_walk image_index = 0; image_speed = 0.5;
} |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 20:35 | |
| Faut pas mettre ton code dans le if, puisque vspeed=0 a chaque fois que tu n'es pas en l'air ; donc il met toujours le sprite_index à 0. |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: Perso immobile après un changement de sprite Lun 3 Déc 2012 - 21:17 | |
| Merci Térence68 (et merci de vouloir me manger) mais je le met comment alors? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Perso immobile après un changement de sprite Mar 4 Déc 2012 - 7:03 | |
| Essaie de supprimer image_index=0, et si elle est vraiment indispensable, enregistre à chaque step la valeur vspeed dans old_vspeed ; comme ca tu fais if vspeed=0 && old_vspeed>0 Le code ne s'executera ainsi que si t'était encore en l'air au step précédent. (Et je veux pas te manger toi spécialement, c'est la variable USERNAME ) |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: Perso immobile après un changement de sprite Jeu 6 Déc 2012 - 17:02 | |
| Alors, après plusieurs essais, je suis arrivé à ce bout de code qui marche plutôt bien:
if vspeed < 0 { sprite_index = player_jump image_speed = 0.5; } if vspeed > 0 { sprite_index = player_fall image_speed = 0.5; }
if vspeed=0 && hspeed=0 { sprite_index = player_idle image_speed = 0.5; }
Evidemment, je pense qu'il y a des solutions plus simples pour revenir sur la position idle, voir même de lancer une petite anim pour l’atterrissage lors de la collision. Encore merci pour vos coup de main à tous! |
|
| |
Contenu sponsorisé
| Sujet: Re: Perso immobile après un changement de sprite | |
| |
|
| |
| Perso immobile après un changement de sprite | |
|