AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-20%
Le deal à ne pas rater :
(Adhérents Fnac) Enceinte Bluetooth Marshall Stanmore II Noir
199.99 € 249.99 €
Voir le deal

 

 Balle

Aller en bas 
+2
onilink_
Dino
6 participants
AuteurMessage
Dino
Pas mal



Messages : 32
Projet Actuel : Plusieurs choses...

Balle Empty
MessageSujet: Balle   Balle EmptyDim 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!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Balle Empty
MessageSujet: Re: Balle   Balle EmptyDim 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

_________________
Balle Runningpotato1Balle TvF6GED Balle MdetltS


Dernière édition par onilink_ le Dim 17 Jan 2016 - 16:30, édité 1 fois
Revenir en haut Aller en bas
Dino
Pas mal



Messages : 32
Projet Actuel : Plusieurs choses...

Balle Empty
MessageSujet: Re: Balle   Balle EmptyDim 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
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Balle Empty
MessageSujet: Re: Balle   Balle EmptyDim 17 Jan 2016 - 16:31

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

_________________
Balle Runningpotato1Balle TvF6GED Balle MdetltS
Revenir en haut Aller en bas
Dino
Pas mal



Messages : 32
Projet Actuel : Plusieurs choses...

Balle Empty
MessageSujet: Re: Balle   Balle EmptyDim 17 Jan 2016 - 17:44

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



Messages : 32
Projet Actuel : Plusieurs choses...

Balle Empty
MessageSujet: Re: Balle   Balle EmptyDim 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!
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
Linky439


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

Balle Empty
MessageSujet: Re: Balle   Balle EmptyDim 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 Smile

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



Messages : 32
Projet Actuel : Plusieurs choses...

Balle Empty
MessageSujet: Re: Balle   Balle EmptyMer 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?
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
Linky439


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

Balle Empty
MessageSujet: Re: Balle   Balle EmptyMer 20 Jan 2016 - 19:22

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

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



Messages : 32
Projet Actuel : Plusieurs choses...

Balle Empty
MessageSujet: Re: Balle   Balle EmptyMer 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
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
Linky439


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

Balle Empty
MessageSujet: Re: Balle   Balle EmptyMer 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 Smile

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



Messages : 34

Balle Empty
MessageSujet: Re: Balle   Balle EmptySam 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...  horror
Revenir en haut Aller en bas
Victor000.1
Débutant
Victor000.1


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

Balle Empty
MessageSujet: Re: Balle   Balle EmptySam 30 Jan 2016 - 18:35

Essaye un truc du genre:

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



Messages : 34

Balle Empty
MessageSujet: Re: Balle   Balle EmptySam 30 Jan 2016 - 19: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 ****



Messages : 1455

Balle Empty
MessageSujet: Re: Balle   Balle EmptySam 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 Smile

_________________
côt.
Revenir en haut Aller en bas
https://cagibi.itch.io/
diditigrou
Pas mal



Messages : 34

Balle Empty
MessageSujet: Re: Balle   Balle EmptySam 30 Jan 2016 - 21:03

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





Balle Empty
MessageSujet: Re: Balle   Balle Empty

Revenir en haut Aller en bas
 
Balle
Revenir en haut 
Page 1 sur 1

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: