AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -20%
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, ...
Voir le deal
399 €

 

 Faire tourner le bras selon le curseur

Aller en bas 
5 participants
AuteurMessage
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyJeu 7 Juin 2012 - 20:09

Salut !
Je voudrais faire un jeu avec un gars qui tient un pistolet, et avec la souris, on vise les ennemis et on tire. Seulement, j'aimerais que le bras se "tourne" vers le curseur pour donner un effet de réalisme. Seulement, je ne connais aucune fonction de rotation, je suis pourtant sûr qu'il y en a une !!
Si quelqu'un pourrait m'aider, ce serait sympa gnii

Merci d'avance !
Revenir en haut Aller en bas
Invité
Invité




Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyJeu 7 Juin 2012 - 20:54

à mettre dans l'event draw (n'oublies pas d'initialiser les variable dans l'event create)

Code:
gun_angle=point_direction(x,y,mouse_x,mouse_y);
xx=lengthdir_x(dist,gun_angle);
yy=lengthdir_y(dist,gun_angle);

orientation=sign(mouse_x-x);

draw_sprite_ext(spr_main,0,x,y,orientation,1,0,c_white,1);
draw_sprite_ext(spr_gun,0,x+xx,y+yy,1,orientation,gun_angle,c_white,1);

ce qu'il faut changer pour adapter le code à ton jeu

dist= distance entre l'arme et le personnage
spr_main= corps du personnage
spr_gun = arme du personnage
Revenir en haut Aller en bas
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 9:44

Merci, ça marche, mais mon personnage a une animation quand il avance, comment faire pour lancer cette animation sans annuler le script ?
(Il peut aller à gauche et à droite)
Sinon, l'arme se décolle du personnage quand je vise en haut et en bas sweat

Attends, je te passe les screens...

Là, c'est quand je regarde à droite (ou à gauche), ça marche super !

Faire tourner le bras selon le curseur 1339142074002624400

Là, c'est quand je regarde en haut :

Faire tourner le bras selon le curseur 1339142075010520100

Et là en bas :

Faire tourner le bras selon le curseur 1339142076029757100

En fait, je voudrais, si possible, que le centre du cercle dans lequel le bras tourne soit sur le bleu du bras, comme si le cercle faisait 0 de diamètre, je sais pas si je me fais comprendre triste2

Et une dernière chose (désolé si je suis embêtant zip ), quand ma souris est pile sur le pixel au dessus du joueur, il disparaît ainsi que le bras.
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 17:07

Tu dois mettre l'origine du sprite sur l'épaule du sprite du bras dans l'éditeur de sprite de gm, c'est ça le point de rotation de la fonction image_angle et des fonctions de dessin de sprite Wink

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 17:18

Merci, le bras tourne exactement comme je le voulais !

Faire tourner le bras selon le curseur 1339168615049827300

Mais maintenant, il n'est plus au bon endroit sur le personnage, et si je modifie l'origine du personnage, les collisions ne marchent plus normalement...
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 17:25

Changes la valeur xx et yy du code de shm par la distance entre l'origine du sprite du personnage et l'origine du sprite du bras

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 17:35

Je dois remplacer le "xx" et le "yy" de
Code:
xx=lengthdir_x(dist,gun_angle);
yy=lengthdir_y(dist,gun_angle);

ou de

Code:
draw_sprite_ext(spr_gun,0,x+xx,y+yy,1,orientation,gun_angle,c_white,1);

?
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 17:39

Non j'ai dit une bêtise, je parlais du "dist" ^^' Sorry.

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 18:24

Bon, ça avance, le bras est maintenant pile au dessus de la tête, mais comment gérer la distance verticalement ? ^^'
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 18:45

pif-o-mètre, sachant que tu peux mettre des valeurs négatives Smile

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 20:59

Ouais, mais c'est que pour gérer la distance horizontale, je sais pas comment modifier celle verticale sweat

EDIT : C'est bon, j'ai trouvé, il fallait faire ça :
Code:
draw_sprite_ext(pistolet_d,0,x+20,y+20,1,orientation,gun_angle,c_white,1);

Maintenant, nouveau défaut : quand le personnage se retourne à gauche, il se décale complètement :/

Faire tourner le bras selon le curseur 1339182367017629600

Comment faire pour qu'il se retourne juste horizontalement, sans modifier son origine (si je touche à son origine toutes les collisions se mettent à foirer xD) ?
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 21:52

xx=lengthdir_x(dist,gun_angle); dist = distance horizontale
yy=lengthdir_y(dist,gun_angle); dist = distance verticale

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 21:57

Je crois que je me suis fait mal comprendre, j'ai réussi à gérer la distance du pistolet, mais quand je place ma souris à gauche, le personnage se décale, je pense qu'il se retourne sur son origine (je suis pas sûr du tout), mais si je modifie son origine, je ne peux plus avancer sans que le personnage tombe dans le sol ou des trucs du genre :/
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyVen 8 Juin 2012 - 23:24

Alors c'est qu'il y a un gros problème avec ton moteur physique, en général on place l'offset sur le centre géométrique ou massique de l'objet, et tout se passe bien.

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptySam 9 Juin 2012 - 0:10

Comprends un truc.

L'origine de ton Perso et en haut à gauche.

Donc, si tu fait un miroir horizontal, c'est normal qu'elle se retrouve en haut à droite.

Donc, si tu avait réglé ton code pour que l'épaule soir en :
(x+gnagnagna, y+trololo)
, alors, si tu fait un miroir, ton épaule devra être en :
(x-gnagnagna, y+trololo)

C'est logique non ?
De même, ton arme sera à l'envers, il faut elle aussi la dessiner en miroir.
Enfin, une petite recherche dans le forum t'aurais évité bien des encombre, on à déjà répondu à cette question plusieurs fois.

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Faire tourner le bras selon le curseur U3dfr2Faire tourner le bras selon le curseur Sign l'antique
Bienvenue au 2629eme utilisateur : Mike Jones !
Revenir en haut Aller en bas
http://www.tdms.fr
Invité
Invité




Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptySam 9 Juin 2012 - 2:18

ceci étant dit, je crois qu'il fallait que j'expliquait le fonctionnement du code dans le post précédent.
lengthdir_x et lengthdir_y : pour éviter toute définition mathématique en relation avec la trigonométrie et les vecteurs, (bien qu'il te faudra les apprendre plus tard, enfin si tu les connais pas encore.)

fin bref, utilisées successivement, elle permettront au sprite du bras d'orbiter autour du corps du joueur selon une distance (length en pixels) et une direction (dir en dégrées (de 0 à 359) ) spécifique.

sign : fonction qui permet de retourner 1 en cas d'un chiffre positif et -1 en cas d'un chiffre négatif

draw_sprite_ext : fonction de dessin avancée, elle permet de dessiner un sprite avec les parametres suivants :

sprite_index : nom du sprite
image_index : sous-image du sprite, les frames quoi...
x,y : coordonnées horizontales et verticales du sprites
image_xscale : mise en échelle horizontale (1=échelle normale 0.5=échelle 1/2 2=taille double -1=mirroir horizontal...etc)
image_yscale : mise en échelle vérticale
image_angle : angle de rotation (l'axe de rotation est défini par les origines du sprite (modifiable dans l'éditeur de sprites) )
image_color : couleur du sprite
image_alpha : degrée de transparence (1= opaque 0.5=moitié visible 0=invisible)

pour le reste réfère toi à l’excellent tutoriel d'onilink :
https://cbna.forumactif.com/t10919-tutoriels-apprendre-le-gml
Revenir en haut Aller en bas
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptySam 9 Juin 2012 - 7:08

Merci pour ces explications, je vais voir ce que je peux faire gnii

EDIT : Toujours le même problème, le personnage ne se retourne pas, même si je change l'origine...
Revenir en haut Aller en bas
PsycKho
Très bonne participation
PsycKho


Messages : 154
Projet Actuel : http://www.sharedojo.netai.net/

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyMar 12 Juin 2012 - 11:36

J'adore sachem qui essayes de noyer le gars.
Retires le reste si t'arrives toujours pas et met juste ça

Code:

draw_sprite_ext(SPR_PLAYER,image_index,x,y,image_xscale,image_yscale,0,c_white,image_alpha)
draw_sprite_ext(SPR_BRAS,0,x,YY,1,1,point_direction(x,y,mouse_x,mouse_y),c_white,image_alpha)

Remplaces SPR_PLAYER et SPR_BRAS par les sprites respectifs et YY par la hauteur à laquelle le bras doit se trouver.
Centres le sprite du personnage où tu veux, tant que c'est centré sur l'axe x.
Centre le bras sur l'épaule, sur l'axe de rotation.

En bidouillant un peu, t'auras facilement ce que tu veux.

Si tu utilises le bras dans un objet séparé (même si je te recommandes de ne pas le faire) tu peux placer la partie du bras dans le code du bras, ça devrait marcher tel quel.

_________________
DOJO
Revenir en haut Aller en bas
http://www.sharedojo.netai.net/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyMer 13 Juin 2012 - 21:27

Merci, mais y'a un problème : le bras suit bien le personnage en X, mais j'ai beau changer le YY, le bras reste toujours en haut de l'écran sweat
Revenir en haut Aller en bas
PsycKho
Très bonne participation
PsycKho


Messages : 154
Projet Actuel : http://www.sharedojo.netai.net/

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyLun 25 Juin 2012 - 23:44

Pardon, la hauteur à laquelle il doit se trouver plus la position du player. Donc player.y-10 par exemple.

_________________
DOJO
Revenir en haut Aller en bas
http://www.sharedojo.netai.net/
loic01222
Plutôt bien
loic01222


Messages : 49

Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur EmptyMar 26 Juin 2012 - 19:57

Ça marche, mais le bras reste à la même hauteur quand le personnage saute...
Et comment faire pour que le perso se retourne quand le curseur est à gauche ?

Merci d'avance !
Revenir en haut Aller en bas
Contenu sponsorisé





Faire tourner le bras selon le curseur Empty
MessageSujet: Re: Faire tourner le bras selon le curseur   Faire tourner le bras selon le curseur Empty

Revenir en haut Aller en bas
 
Faire tourner le bras selon le curseur
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Faire tourner un sprite sur lui même ? [Résolu]
» Faire tourner le jeu plus rapidement ( Optimisation )
» [Résolu] Faire tourner le mask
» Faire disparaitre le curseur
» Faire tourner des objets autour d'un autre

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: