| [RESOLU] stopper une animation à la derniere frame | |
|
|
Auteur | Message |
---|
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: [RESOLU] stopper une animation à la derniere frame Jeu 20 Déc 2012 - 19:32 | |
| Bonjour à tous, J'ai un petit souci sur une action de mon perso. Lorsque je veux le faire attaquer (boule de feu en l'occurence) j'aimerais que l'anim se lance et qu'elle s'arrete à la derniere image, jusqu'à ce que la touche soit en "release". Voici mon script: if (fireball = 1) { sprite_index = player_fire_spr; image_speed= 0.3; if (image_index >= 9) image_index= image_number-1; image_speed=0; } Pour le moment, l'animation ne se lance pas. Elle affiche juste une frame au hasard. Et évidement si je retire "image_speed=0;" elle se joue en boucle. Bref, si l'un d'entre vous connais ce problème, une aide serait bienvenue!
Dernière édition par mardoch le Ven 4 Jan 2013 - 21:15, édité 1 fois |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 0:40 | |
| Bonsoir, - Code:
-
if fireball==1 { sprite_index=player_fire_spr image_speed=0.3 if image_index>=image_number { image_speed=0 image_index=image_number-1 } }
_________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 14:23 | |
| Salut, ça ne marche toujours pas. L'anim se lit bien mais pas d’arrêt à la fin. Elle tourne juste en boucle. Est-ce que ça peut venir du clavier? voilà mon code dans le step de mon player:
if keyboard_check_pressed(vk_shift) { fireball=1; } |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 16:52 | |
| euh, pourquoi n'utilise tu pas : - Code:
-
if keyboard_check(vk_space) { sprite_index=player_fire_spr image_speed=0.3 with instance_create(x,y,fireball) { image_speed=0.3 if image_index>=image_number { image_speed=0 image_index=image_number-1 } } }
_________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 17:31 | |
| non plus. L'anim se joue proprement mais en boucle. Existe t-il un bout de ligne de code pour revenir à l’état précédent du "sprite_index"? |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 17:54 | |
| Hum. Étrange, je regarde cela a mon retour des courses. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 19:14 | |
| tu remplace ton perso existant par un perso "fire" mais l'index de l'objet lui reste le même. (il me semble en tout cas !)
en D&D je crée un nouvel objet (avec son nouveaux sprite cqfd)et j'ajoute à animation end image_index= (l'index de la dernière image du srite)
mais bon c'est du D&D!
|
|
| |
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 22:34 | |
| Bien sûr tu n'a pas mit ce code en Create? Sinon ça serait Sinon tu crée un nouveau sprite avec la dernière frame de ton animation et tu la dessine à la fin de ton animation. Même si ça rend un peu plus bordelique ton gml |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Ven 21 Déc 2012 - 22:43 | |
| Re bonsoir, Dans ton objet joueur en step : - Code:
-
If keyboard_check(vk_space) { instance_create(x,y,fireball) sprite_index=player_fire_spr image_speed=0.3 }
Dans ton objet fireball en step toujours : - Code:
-
if image_index>=image_number-1 { image_index=image_number-1 image_speed=0 }
Voilà. Ps : évidemment en create de ton fireball n'oublie pas de mettre image_speed=... La vitesse de l'animation. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 22 Déc 2012 - 16:50 | |
| Salut En fait mon problème n'est pas sur l'animation du projectile (pas tt de suite en fait) mais sur l'animation du personnage. Pour le moment j'ai dans mon objet joueur en step //dans step if keyboard_check_pressed(vk_shift) { fireball=1; bullet_id = instance_create(x+15,y-150,firebullet); bullet_id.direction = -180; bullet_id.image_xscale = -1; bullet_id.speed = 10; } Et dans un fichier script qui est appelé dans le end step de mon objet joueur // dans script if (fireball = 1) { sprite_index = player_fire_spr; image_speed= 0.3; if image_index>=image_number-1 { //image_index=image_number-1 image_speed=0 } merci |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 22 Déc 2012 - 17:01 | |
| Je ne voie pas le problème... Si tu peux m'envoyer le .gm8 par mail je pourrais mieux voir le soucis. A : gregoire-kevin@hotmail.fr_________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 22 Déc 2012 - 17:18 | |
| je suis sous game maker studio. je sais pas si tu peux lire les gmx... Mais trouvé un semblant de solution en ajoutant ça dans mon script: if (fireball = 1) { sprite_index = player_fire_spr; image_speed= 0.3; if image_index>=image_number<9 { image_speed=0; sprite_index = player_fire_idle_spr; } J'ai créé un sprite de la dernière image de l'anim que j’appelle à la fin du code. ça marche pas trop mal mais j'aimerais comprendre pk ton code ne fonctionnait pas |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 22 Déc 2012 - 17:20 | |
| Car en faire tu modifie les propriétés de l'objet joueur et non de l'objet fireball. Ce qui fais que ton objet fireball ne reçois pas d'instruction. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 22 Déc 2012 - 17:23 | |
| c'est ça j'ai créé un script uniquement pour gérer les anims de mon perso et une autre pour l'environnement Du coup toutes les actions sont dans step, y compris les tirs. |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 22 Déc 2012 - 17:28 | |
| Ce qui n'est pas bien. Je ne vais pas te gronder hein Mais pour que tu saisisse mieux : Dans step de ton joueur tu fais l'animation du joueur qui lance la boule de feu, après ou en même temps tu peux créer la boule de feu. Maintenant dans le step de la boule de fe, tu met une condition, qui lui fais faire qu'à sa dernière image elle stop son animation. Et voilà. Essaye de ne pas modifier les choses à partir d'un autre objets, ça porte vite à confusion, et l'on se perd vite. Par la suite tu trouveras ça tellement simple que tu n'y pensera même plus. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 29 Déc 2012 - 2:45 | |
| Est-ce par exemple ça n'influencerait pas également sur les alarmes ce script des anims à part? Je m'explique, j'essaie en vain de mettre une alarme lors de la creation de mon tir afin qu'on ne puisse tirer que 2 fois par seconde: - Code:
-
if keyboard_check_pressed(vk_shift) && (status = "r") { fireball=1; bullet_id = instance_create(x+15,y-150,firebullet);; alarm[0]= 30; // je suis en 60fps bullet_id.direction = 0; bullet_id.speed = 10; }
if keyboard_check_released(vk_shift) { fireball=0; }
Alors là, je peux appuyer 50 fois pas seconde sur la touche il ne prend pas du tout en compte mon alarme c'est deprimant... |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 29 Déc 2012 - 8:36 | |
| Bonjour, Cours de l'utilisation des alarmes à revoir mon ti bonhomme . - Code:
-
if keyboard_check_pressed(vk_shift) && (status = "r") && step_entre_deux_tir=30 { step_entre_deux_tir=0 fireball=1; bullet_id = instance_create(x+15,y-150,firebullet);; bullet_id.direction = 0; bullet_id.speed = 10; } else { step_entre_deux_tir=0 }
if keyboard_check_released(vk_shift) { step_entre_deux_tir=0 fireball=0; }
Je vais t'expliquer le fonctionnement, Dans le if keyboard pressed, on a ajouter une condition, step_entre_deux_tir=30 : il vérifiera toute les steps si la variable vaut 30 (comme ton jeux est en 60, la condition sera vrai 2 fois par seconde, met la condition à 60, et elle sera vrai 1 fois par seconde, et met le à 15, elle sera vrai 4 fois par seconde... Enfin je pense que tua compris le principe non?) Dans le else il ne faut pas oublier d'incrémenté, tu peux aussi changer sa valeur (si elle vaux 1, et que dans la condition plus haut elle vérifie 30, la condition sera vrai toute les 30 steps, si tu met 2, la condition sera vrai toute les 15 step, et si tu met 0,5, elle sera vrai toute les 60 steps) je pense qu'eut as aussi compris la. Et le dernier step_entre_deux_tir=0 dans le keyboard release sert à remettre à 0 la variable, comme ça, si le joueur appuis de nouveau sur shift, il devra attendre 30 step avant que sont tir ne soit effectuer. PS: c'est ce que l'on appel un compteur. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 29 Déc 2012 - 12:40 | |
| Ah oui visiblement j'ai encore des cours à prendre Donc pas d'alarm dans ton code mais est-ce que je dois placer un "step_entre_deux_tir = 0;" dans mon event create pour que ça marche? (parce que là, il ne tir pas) |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Sam 29 Déc 2012 - 14:36 | |
| Oups oui, oublier de le signaler... _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Lun 31 Déc 2012 - 22:03 | |
| Bon bah non, ça ne marche toujours pas. Il ne fait rien du tout (pas de création d'instance de tir ni d'animation du perso qui tir). Pourtant mon code doit être bon: - Code:
-
if keyboard_check_pressed(vk_shift) && (status = "r") && step_entre_deux_tir= 30 { fireball=1; step_entre_deux_tir=0; bullet_id = instance_create(x+15,y-150,firebullet); bullet_id.direction = 0; bullet_id.speed = 10; } else { step_entre_deux_tir =0; } Ce que je ne comprends pas c'est comment il reconnait que c'est une variable en relation avec les steps? je pensais (peut-être à tort) que c'était justement la fonction alarm qui permettait de faire ça. |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Mar 1 Jan 2013 - 0:10 | |
| Ah mais *****! Dans le else remplace : - Code:
-
Step_entre_deux_tir=0
Par - Code:
-
Step_entre_deux_tir+=1
Erreur de ma part pardon... _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Mar 1 Jan 2013 - 20:49 | |
| et...... non. ça ne change rien du tout. Y a t il un autre moyen pour faire ça ou juste vérifier qu'il n'y a pas de bidule étrange dans mon code? |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Mar 1 Jan 2013 - 23:33 | |
| Bien, c'est très simple, sais-tu comment uploader un fichier? (le stocker sur le net). Mediafire par exemple.
Tu le fais et tu m'envois le lien par MP pour éviter que tout le monde y ai accès. Je regarde des que je peux (soir souvent).
Parce que là franchement je ne voie pas du tout ce qui cloche... _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Mer 2 Jan 2013 - 14:59 | |
| if keyboard_check_pressed(vk_shift) && (status = "r") && step_entre_deux_tir>= 30
Game Maker n'est jamais precis, ca m'arrivais souvent qu'il saute la condition |
|
| |
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Mer 2 Jan 2013 - 16:03 | |
| Ah oui... Je n'avais pas fais attention... j'avais pour habitude de stopper l'incrémentation...
Désoler pour l'erreur. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
|
| |
mardoch Débutant
Messages : 19 Localisation : Paris
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame Jeu 3 Jan 2013 - 0:13 | |
| oh joie! ça marche!!! - Code:
-
if keyboard_check_pressed(vk_shift) && (status = "r") && Step_entre_deux_tir>=30 { Step_entre_deux_tir=0; fireball=1; bullet_id = instance_create(x+15,y-150,firebullet); bullet_id.direction = 0; bullet_id.speed = 10; } else { Step_entre_deux_tir+=1; } Merci 100000000 de fois, vous m'avez sauvé la vie!!!! |
|
| |
Contenu sponsorisé
| Sujet: Re: [RESOLU] stopper une animation à la derniere frame | |
| |
|
| |
| [RESOLU] stopper une animation à la derniere frame | |
|