| Balle | |
|
|
Auteur | Message |
---|
Dino Pas mal
Messages : 32 Projet Actuel : Plusieurs choses...
| Sujet: Balle Dim 17 Jan 2016 - 10:57 | |
| Bonjour, j'ai cherché, mais je n'ai pas trouvé, comment faire pour que quand j'appuie sur une touche (T par exemple) une balle parte dans la direction de l'orientation du personnage? Et que pour tirer un second coup, il faille relâcher puis ré-appuyer sur cette touche.
Si quelqu'un à une idée, même en GML, je suis preneur, Merci d'avance et bonne journée! |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Balle Dim 17 Jan 2016 - 11:35 | |
| Il te faut utiliser une variable: #Create shoot = true #step - Code:
-
if(shoot && keyboard_check(ord('T'))) // si on peut tirer (car shoot == true) et qu'on appuie sur la touche T { shoot = false len = 16 // rayon depart tir dir = direction // angle depart tir qui depend de l'angle du personnage //dir = point_direction(x, y, mouse_x, mouse_y) // angle depart tir via la souris ii = instance_create(x + lengthdir_x(len, dir), x + lengthdir_y(len, dir), Bullet) ii.direction = dir ii.speed = 6 } if(keyboard_check_released(ord('T'))) // si on relache la touche on peut tirer shoot = true
Dernière édition par onilink_ le Dim 17 Jan 2016 - 16:30, édité 1 fois |
|
| |
Dino Pas mal
Messages : 32 Projet Actuel : Plusieurs choses...
| Sujet: Re: Balle Dim 17 Jan 2016 - 14:25 | |
| Merci beaucoup, mais lors du lancement du test, j'ai une "fatale erreur" qui dit:"FATAL ERROR in action number 3 of Step Event0 for object Perso:
Push :: Execution error - Variable Get 100001.T(100001, -2147483648) at gml_Object_Mouche_1_StepNormalEvent_3 (line 1) - if(shoot=true && keyboard_check(ord(T))) // si on peut tirer (car shoot == true) et qu'on appuie sur la touche T
Si quelqu'un pouvait me dire comment régler ça, ce serait top! Merci d'avance |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Balle Dim 17 Jan 2016 - 16:31 | |
| ord('T') et non pas ord(T) Y avait quelques erreurs de frappes que j'ai corrigé aussi |
|
| |
Dino Pas mal
Messages : 32 Projet Actuel : Plusieurs choses...
| Sujet: Re: Balle Dim 17 Jan 2016 - 17:44 | |
| Merci beaucoup! |
|
| |
Dino Pas mal
Messages : 32 Projet Actuel : Plusieurs choses...
| Sujet: Re: Balle Dim 17 Jan 2016 - 22:00 | |
| Désolé du double poste, mais je viens de me rendre compte d'une chose, lors mon objet marche, la balle part bien dans la direction voulue, mais si l'objet est à l'arrêt, la balle part systématiquement à droite, même si mon perso pointe à droite. Est-ce que quelqu’un pourrait m'aider? Merci d'avance! |
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Balle Dim 17 Jan 2016 - 22:20 | |
| Vérifie la variable direction de l'objet du perso, elle est surement remise à 0 lorsqu'il ne se déplace pas _________________ Cliquez pour accéder aux topics dédiés ! |
|
| |
Dino Pas mal
Messages : 32 Projet Actuel : Plusieurs choses...
| Sujet: Re: Balle Mer 20 Jan 2016 - 19:09 | |
| if(shoot && keyboard_check(ord('T'))) // si on peut tirer (car shoot == true) et qu'on appuie sur la touche T { shoot = false len = 16 // rayon depart tir dir = direction // angle depart tir qui depend de l'angle du personnage //dir = point_direction(x, y, mouse_x, mouse_y) // angle depart tir via la souris ii = instance_create(x+ lengthdir_x(len, dir),y + lengthdir_y(len, dir), Balle_1) ii.direction = dir ii.speed = 6 } if(keyboard_check_released(ord('T'))) // si on relache la touche on peut tirer shoot = true
Voila le code, vu que j'suis une bille, quelqu'un peut m'aider? |
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Balle Mer 20 Jan 2016 - 19:22 | |
| Comment fais-tu le déplacement de ton personnage ? _________________ Cliquez pour accéder aux topics dédiés ! |
|
| |
Dino Pas mal
Messages : 32 Projet Actuel : Plusieurs choses...
| Sujet: Re: Balle Mer 20 Jan 2016 - 20:08 | |
| if (keyboard_check(ord("D")) && keyboard_check(ord("Z"))){sprite_index=Bugs_1 motion_set(45 ,5)}; else if (keyboard_check(ord("Q")) && keyboard_check(ord("Z"))){sprite_index=Bugs_2 motion_set(135,5)}; else if (keyboard_check(ord("S")) && keyboard_check(ord("Q"))){sprite_index=Bugs_2 motion_set(225,5)}; else if (keyboard_check(ord("S")) && keyboard_check(ord("D"))){sprite_index=Bugs_1 motion_set(315,5)}; else if (keyboard_check(ord("Q"))){sprite_index=Bugs_2 motion_set(180, 5)}; else if (keyboard_check(ord("S"))) motion_set(270, 5); else if (keyboard_check(ord("D"))){sprite_index=Bugs_1 motion_set(0, 5)}; else if (keyboard_check(ord("Z"))) motion_set(90, 5); else if (keyboard_check(vk_nokey)) motion_set(0,0);
Avec ce code |
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Balle Mer 20 Jan 2016 - 22:27 | |
| Voilà la réponse : lorsque tu n'as aucune touche appuyée sur le clavier, tu fais motion_set(0,0), tu mets donc la direction de ton personnage à 0. Donc, quand tu créé ta balle, tu utilise notamment ce code : - Code:
-
dir = direction //...// ii.direction = dir Donc la direction de ton tir est automatiquement mise à 0 si tu es à l'arrêt. Je te conseillerai de remplacer motion_set(0,0) par {speed=0} : ton personnage s'arrêtera mais il gardera la direction qu'il avait avant de s'arrêter _________________ Cliquez pour accéder aux topics dédiés ! |
|
| |
diditigrou Pas mal
Messages : 34
| Sujet: Re: Balle Sam 30 Jan 2016 - 16:25 | |
| edit : J'ai repris ce que j'avais fait et voici : - Code:
-
//attaque à distance if (heros_object.arme_courante = 2) { var inst; inst = instance_create(heros_object.x, heros_object.y, arrow); with (inst) { speed = 6; direction = point_direction(heros_object.x, heros_object.y, mouse_x, mouse_y); } } La flèche part bien dans la bonne direction, la seule chose qui ne va pas, c'est la flèche est toujours orientée vers le haut... |
|
| |
Victor000.1 Débutant
Messages : 23 Localisation : Picardie Projet Actuel : Little Lost Soul
| Sujet: Re: Balle Sam 30 Jan 2016 - 18:35 | |
| Essaye un truc du genre:
image_angle = direction ; |
|
| |
diditigrou Pas mal
Messages : 34
| Sujet: Re: Balle Sam 30 Jan 2016 - 19:01 | |
| J'ai trouvé entre temps, mais merci. D'ailleurs juste direction ça ne fonctionne pas, j'avais un décalage de 90°. |
|
| |
hyper Utilisateur confirmé: Rang ****
Messages : 1455
| Sujet: Re: Balle Sam 30 Jan 2016 - 19:05 | |
| - diditigrou a écrit:
- D'ailleurs juste direction ça ne fonctionne pas, j'avais un décalage de 90°.
Soit tu fais direction - 90, soit tu orientes le sprite de la flèche vers la droite _________________ côt.
|
|
| |
diditigrou Pas mal
Messages : 34
| Sujet: Re: Balle Sam 30 Jan 2016 - 21:03 | |
| C'est ce que j'ai fait. ^^ |
|
| |
Contenu sponsorisé
| Sujet: Re: Balle | |
| |
|
| |
| Balle | |
|