AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Balle

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Dino
Pas mal


Messages : 32
Projet Actuel : Plusieurs choses...

MessageSujet: Balle   Dim 17 Jan 2016 - 9: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!
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Balle   Dim 17 Jan 2016 - 10: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 - 15:30, édité 1 fois
Revenir en haut Aller en bas
Dino
Pas mal


Messages : 32
Projet Actuel : Plusieurs choses...

MessageSujet: Re: Balle   Dim 17 Jan 2016 - 13: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
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Balle   Dim 17 Jan 2016 - 15:31

ord('T') et non pas ord(T)
Y avait quelques erreurs de frappes que j'ai corrigé aussi Smile

_________________
                 
Revenir en haut Aller en bas
Dino
Pas mal


Messages : 32
Projet Actuel : Plusieurs choses...

MessageSujet: Re: Balle   Dim 17 Jan 2016 - 16:44

Merci beaucoup! bneige
Revenir en haut Aller en bas
Dino
Pas mal


Messages : 32
Projet Actuel : Plusieurs choses...

MessageSujet: Re: Balle   Dim 17 Jan 2016 - 21: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!
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
avatar

Messages : 2612
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

MessageSujet: Re: Balle   Dim 17 Jan 2016 - 21:20

Vérifie la variable direction de l'objet du perso, elle est surement remise à 0 lorsqu'il ne se déplace pas Smile

_________________
Cliquez pour accéder aux topics dédiés !
   
Revenir en haut Aller en bas
Dino
Pas mal


Messages : 32
Projet Actuel : Plusieurs choses...

MessageSujet: Re: Balle   Mer 20 Jan 2016 - 18: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?
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
avatar

Messages : 2612
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

MessageSujet: Re: Balle   Mer 20 Jan 2016 - 18:22

Comment fais-tu le déplacement de ton personnage ?

_________________
Cliquez pour accéder aux topics dédiés !
   
Revenir en haut Aller en bas
Dino
Pas mal


Messages : 32
Projet Actuel : Plusieurs choses...

MessageSujet: Re: Balle   Mer 20 Jan 2016 - 19: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
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
avatar

Messages : 2612
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

MessageSujet: Re: Balle   Mer 20 Jan 2016 - 21: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 Smile

_________________
Cliquez pour accéder aux topics dédiés !
   
Revenir en haut Aller en bas
diditigrou
Pas mal


Messages : 34

MessageSujet: Re: Balle   Sam 30 Jan 2016 - 15: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...  horror
Revenir en haut Aller en bas
Victor000.1
Débutant
avatar

Messages : 23
Localisation : Picardie
Projet Actuel : Little Lost Soul

MessageSujet: Re: Balle   Sam 30 Jan 2016 - 17:35

Essaye un truc du genre:

image_angle = direction ;
Revenir en haut Aller en bas
diditigrou
Pas mal


Messages : 34

MessageSujet: Re: Balle   Sam 30 Jan 2016 - 18:01

J'ai trouvé entre temps, mais merci. happy1
D'ailleurs juste direction ça ne fonctionne pas, j'avais un décalage de 90°.
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
avatar

Messages : 1432

MessageSujet: Re: Balle   Sam 30 Jan 2016 - 18: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 Smile

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
diditigrou
Pas mal


Messages : 34

MessageSujet: Re: Balle   Sam 30 Jan 2016 - 20:03

C'est ce que j'ai fait. ^^
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Balle   

Revenir en haut Aller en bas
 
Balle
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» la balle folle qui rend fou !!
» pour que la balle change de couleur
» Les Américains ont mis au point une balle auto-guidée
» première balle
» tente a balle

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: