| [Résolu] Déplacement objet animé : problème sprite :'( | |
|
|
Auteur | Message |
---|
chefgeorges Pas mal
Messages : 30
| Sujet: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 11:16 | |
| Bonjour, Je suis novice sur GM. Je l'ai découvert récemment car je cherche à créer un jeu type mario-like. J'utilise jusqu'à présent les icônes de GM 8.1 Lite. Sur ce forum j'ai trouvé ce code pour des déplacements standards (https://cbna.forumactif.com/t8902-tutorial-faire-un-jeu-de-plateforme), mais rien qui résout mon problème En effet, j'ai essayé avant plusieurs combinaisons qui marchaient toutes : mon perso se déplace vers la gauche et la droite en s'animant. Tout le problème est quand je veux qu'à l'arrêt il m'affiche le sprite du perso statique. J'ai utilisé les icônes Key Release. Ça marche sauf que... si j'ai le malheur d'appuyer par exemple à gauche tout en relâchant à droite (en même temps en fait), mon perso va en reculant avec le sprite statique. C'est très frustrant, car ça oblige à relâcher la touche droite ou gauche avant de re-appuyer sur une direction J'ai parcouru google et le forum sans résultat. Je n'arrive pas à comprendre comment résoudre ce problème :/ |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 12:15 | |
| Dans step : - Code:
-
if !keyboard_check(vk_left) && !keyboard_check(vk_right) { sprite_index=nom_de_ton_sprite_statique }
C'est a mettre dans une action execute a piece of code. |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 12:41 | |
| Merci de me répondre aussi rapidement Ça a presque résolu mon problème L'utilisation des flèches du clavier ne bug presque plus avec les sprites d'animation (un coup de temps en temps, il fait du moonwalk, lol). Par contre, j'aimerai que la direction du sprite statique soit déterminé par la direction des flèches (je vais à droite, je m'arrêtes, le perso regarde vers la droite, et inversement) |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 12:48 | |
| Tu fais une variable last_arrow qui vaut gauche quand tu appuis sur la fleche gauche et droite quand t'appuis sur le fleche droite et dans l'event step tu fais if last_arrow="gauche" sprite_index=sprite_gauche et pareil pour la droite.
Si t'arrive pas dis le moi je te ferais une exemple. |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 13:07 | |
| J'ai essayé mais j'ai une erreur de code à l’exécution du jeu :/ J'ai bien créé la "set variable" dans les Event "press key" left et right (avec variable=last_arrox, value=gauche pour left, etc.) Puis j'ai ajouté à la fin du code de l'évent Step les lignes : - Code:
-
if last_arrow="gauche" sprite_index=nom de mon sprite
if last_arrow="droite" sprite_index=nom de mon sprite |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 13:40 | |
| As tu vérifié qu'il n'y a pas d'espaces dans le nom de ton sprite ? Si il y en a, c'est ca qui fait buguer le jeu ; remplace les par des underscore(_) |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 13:50 | |
| Oui j'ai bien vérifié. Par contre il y a des Majuscule (je ne sais pas si c'est important).
J'ai l'erreur suivante :
Error in code at line 20: if last_arrow="gauche" sprite_index=JDG_s_g ^ at position 5: Unknown variable last_arrow |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 14:07 | |
| Les majuscules c'est pas grave. Pour l'erreur, il trouve pas ta variable ; donc c'est que tu l'as mal déclarée ; vérifie si t'as pas fait de fautes d'orthographe quelque part |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 14:08 | |
| last_arrow n'a pas été déclarée Dans create met last_arrow = "gauche" par exemple. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 14:10 | |
| Ah ouais pas bête j'avais pas pensé |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 15:25 | |
| Alors j'ai commencé par suivre le conseil de onilink_ (merci au passage)
Le jeu se lance, mais dès que j'appuie sur le flèche gauche ou droite du clavier, j'ai bug :
ERROR in action number 2 of Key Press Event for <Right> Key for object JDG:
Error in code at line 1: last_arrow = droite ^ at position 14: Unknown variable droite
En suivant les conseils de Térence68, je suis retourner dans les Set Variable des Press Key, j'ai modifié value=gauche en value="gauche", de même à droite. Là le jeu se lance, je peux déplacer le personnage, à l'arrêt j'ai le bon sprite, sauf que je n'ai plus les animations du personnage. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 15:32 | |
| Donne nous ton code entier stp. |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 15:35 | |
| Information about object: JDG Sprite: JDG_s_d Solid: false Visible: true Depth: 0 Persistent: false Parent: Mask:
Create Event:
execute code:
gravitySpeed=1 //Vitesse de la gravité movespeed=6 //Vitesse de mouvement jumpSpeed=14 //Puissance de saut last_arrow="gauche"
Step Event:
execute code:
d = 0; d = keyboard_check (vk_right) - keyboard_check(vk_left) ; if d != 0 and place_free(x+d*movespeed,y) then {x += d*movespeed}
if place_free(x,y+1) then { if place_free(x,y+3) gravity = gravitySpeed; gravity_direction = 270; } else { gravity = 0; if keyboard_check(vk_up) and place_free(x,y-4) then { vspeed = -jumpSpeed; } }
if last_arrow="gauche" sprite_index=JDG_s_g
if last_arrow="droite" sprite_index=JDG_s_d
Collision Event with object bloc:
execute code:
move_contact_solid(direction,speed-1); vspeed = 0;
Key Press Event for Key:
set the sprite to JDG_w_g with subimage 0 and speed 1 set variable last_arrow to "gauche" Key Press Event for Key:
set the sprite to JDG_w_d with subimage 0 and speed 1 set variable last_arrow to "droite" ______________________________________________________
Information about object: bloc Sprite: bloc Solid: true Visible: true Depth: 0 Persistent: false Parent: Mask: |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 15:39 | |
| Dans les event keys vire les set the sprites.... : ca fait doublon puisque la variable last_arrow est censée faire la même chose. |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 15:59 | |
| Je l'ai fait mais ça ne change rien. Mais en plus j'ai du mal à comprendre, car si j'enlève ces derniers je n'ai plus aucune référence à mes sprites d'animation (qui sont différent des sprites statiques) comment alors apparaitront-ils ? (ça me pose d'autant plus question qu'après il me faudra aussi inclure un srpite "saut" pour mon personnage) |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:07 | |
| Il affiche tout seul a chaque step le sprite_index donc, si tu modifie cette variable c'est bon.
if keyboard_check(vk_left) sprite_index=sprite_gauche Else if keyboard_check(vk_right) sprite_index=sprite_droite Else sprite_index=sprite_immobile |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:16 | |
| Ok, mais comment procéder, je colle ton code à la fin du code Step ? Ou je dois remplacer la ligne "d = keyboard_check (vk_right) - keyboard_check(vk_left" ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:18 | |
| a la fin (mais j'ai pas compris ce bout de code donc...) Mais essaie et tu verra bien si ca marche |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:22 | |
| Désolé mais ça ne marche pas, il doit y avoir un problème de syntaxe car la ligne "Else if keyboard_check(vk_right) sprite_index=sprite_droite" affiche un rectangle rouge dans l'éditeur de code. Et j'ai ce bug : COMPILATION ERROR in code action Error in code at line 25: Else if keyboard_check(vk_right) sprite_index=JDG_w_d ^ at position 7: Assignment operator expected. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:24 | |
| else s'écrit en minuscule x) |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:25 | |
| correction : j'ai mis un "e" minuscule à "else" et ça passe. Par contre, toujours aucune animation des sprites. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:27 | |
| Oui désolé c'est Android qui me met des majuscules a chaque début de ligne... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:29 | |
| T'es sur que t'as mis les bons noms de sprites ? Et ils sont animés tes sprites ?? Parce que sinon je vois vraiment pas ou est le problème.... |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:33 | |
| Oui j'ai mis les bons noms et ils sont animés D'ailleurs si je me contente du code dans Step, des Event Press Key avec la fonction Change Sprite ça fonctionne (sauf bien sûr qu'à l'arrêt il court sur place, lol) |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 16:38 | |
| Après j'avais testé aussi cette solution un peu "batarde" en utilisant l'Event keys>not-key :
Information about object: JDG Sprite: JDG_s_d Solid: false Visible: true Depth: 0 Persistent: false Parent: Mask:
Create Event:
execute code:
gravitySpeed=1 //Vitesse de la gravité movespeed=6 //Vitesse de mouvement jumpSpeed=14 //Puissance de saut
Step Event:
execute code:
d = 0; d = keyboard_check (vk_right) - keyboard_check(vk_left) ; if d != 0 and place_free(x+d*movespeed,y) then {x += d*movespeed}
if place_free(x,y+1) then { if place_free(x,y+3) gravity = gravitySpeed; gravity_direction = 270; } else { gravity = 0; if keyboard_check(vk_up) and place_free(x,y-4) then { vspeed = -jumpSpeed; } }
Collision Event with object bloc:
execute code:
move_contact_solid(direction,speed-1); vspeed = 0;
Keyboard Event for Key:
set the sprite to JDG_s_d with subimage 0 and speed 0 Key Press Event for Key:
set the sprite to JDG_w_g with subimage 0 and speed 1 Key Press Event for Key:
set the sprite to JDG_w_d with subimage 0 and speed 1
Ça marche si ce n'est que lorsqu'il va vers la gauche et s'arrête il se retrouve vers la droite. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 19:15 | |
| Ben alors dans ton event key_press(no_key) tu fais : - Code:
-
If direction>90 && direction<270 sprite_index=sprite_gauche_immobile else sprite_index=sprite_droite_immobile
|
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 22:16 | |
| J'ai essayé, mais apparemment il y a un problème aussi de syntaxe du code et donc ça bug en lançant le test du jeu. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 22:29 | |
| enlève la majuscule au if |
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 22:48 | |
| Effectivement ça ne bug plus, mais le résultat n'est pas concluant, ça ne change rien.
|
|
| |
chefgeorges Pas mal
Messages : 30
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( Mar 7 Aoû 2012 - 23:05 | |
| J'AI TROUVE LA SOLUTION ! Dans l'évent <no_key> j'ai mis le code suivant : - Code:
-
if keyboard_check_released(vk_right) sprite_index=JDG_s_d if keyboard_check_released(vk_left) sprite_index=JDG_s_g Et là tout marche parfaitement Merci beaucoup pour ton aide précieuse, en quelques heures j'en ai déjà appris beaucoup ^^ |
|
| |
Contenu sponsorisé
| Sujet: Re: [Résolu] Déplacement objet animé : problème sprite :'( | |
| |
|
| |
| [Résolu] Déplacement objet animé : problème sprite :'( | |
|