AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Création d'une mitrailleuse pour voiture.

Aller en bas 
3 participants
AuteurMessage
Instinct-FR-
Nouveau
Instinct-FR-


Messages : 9
Projet Actuel : Death Race

Création d'une mitrailleuse pour voiture. Empty
MessageSujet: Création d'une mitrailleuse pour voiture.   Création d'une mitrailleuse pour voiture. EmptyVen 3 Juil 2009 - 10:54

Bonjour à tous,

Je me suis lancé dans la création d'un jeu de course inspiré du film Death Race et du jeu Death Rally. (Wikipédia)
Voici mon problème:

Les voitures ont la capacité de tirer 10 balles par secondes et par mitrailleuse. Les balles partent des deux cotés de la voiture comme sur l'image qui suit:

Création d'une mitrailleuse pour voiture. Tir_correct

Pour l'instant tout est correct. La premiere balle est tirée en (x=0 ; y=-9) et la deuxième (x=0 ; y=8 ). Sauf que lorsque l'on pivote la voiture, les deux tirs sont toujours parallèles mais plus distants de la même largeur :

Création d'une mitrailleuse pour voiture. Tir_moyen

Et encore pire quand on pivote à 90 degrés. Là, les tirs se superposent:

Création d'une mitrailleuse pour voiture. Tir_pourri

Alors ma question est: Comment faire pour que les deux tirs soient parallèles dans toutes les directions de la voiture ?
Revenir en haut Aller en bas
http://www.StickmanArt.0fees.net
Adamo
Utilisateur confirmé: Rang ***
Adamo


Messages : 681
Localisation : Quebec

Création d'une mitrailleuse pour voiture. Empty
MessageSujet: Re: Création d'une mitrailleuse pour voiture.   Création d'une mitrailleuse pour voiture. EmptyVen 3 Juil 2009 - 11:10

Code:
b2 = instance_create(x,y,object0)
b2.x=x+sin(degtorad(direction))*20
b2.y=y+cos(degtorad(direction))*20
instance_create(x,y,object0)

au moment de creer tes balle met ca (tu remplace biensur object0 par ton objet balle et ca devrai marcher Wink

la separation ce fait avec le *20 si tu veut quil sois plus separer tu met *30 ou plus sinon moin Wink bonne chance

Edit :
Je me suis tromper un peu la ya va avoir une balle centrer et lautre pas tien :

Code:
b1 = instance_create(x,y,object0)
b1.x=x-sin(degtorad(direction))*10
b1.y=y-cos(degtorad(direction))*10

b2 = instance_create(x,y,object0)
b2.x=x+sin(degtorad(direction))*10
b2.y=y+cos(degtorad(direction))*10
Revenir en haut Aller en bas
Bast
Administrateur
Bast


Messages : 20021
Localisation : Alsace

Création d'une mitrailleuse pour voiture. Empty
MessageSujet: Re: Création d'une mitrailleuse pour voiture.   Création d'une mitrailleuse pour voiture. EmptyVen 3 Juil 2009 - 11:19

Il faut passer par un peu de trigonométrie afin de prendre en compte l'angle de la voiture dans le calcul des coordonnées. Pour cela, il existe des fonctions toutes faites:

GameMaker Help a écrit:
lengthdir_x(len,dir) Returns the horizontal x-component of the vector determined by the indicated length and direction.
lengthdir_y(len,dir) Returns the vertical y-component of the vector determined by the indicated length and direction.
Elles permettent chacune de retourner les coordonnées d'un point situé au bout d'un vecteur de longueur (length) et d'angle (direction) donnés.

Dans ton cas, les coordonnées de création de tes projectiles seront donc celles-cis (en admettant qu'ils soient créés à partir de l'objet voiture, auquel correspondront donc les valeurs x et y):

Code:
x+lengthdir_x(8,90+image_angle),y+lengthdir_y(8,90+image_angle)

x+lengthdir_x(8,-90+image_angle),y+lengthdir_y(8,-90+image_angle)

On a donc deux vecteurs: un premier, long de 8 pixels et dirigé à 90° (donc vers le haut), et un autre également long de 8 pixels mais dirigé à -90° (vers le bas). A cela s'ajoute la variable image_angle afin que les angles indiqués changent en fonction de l'orientation de la voiture.

Edit: Pas vu le post d'Adamo. Mais c'est le même principe.

_________________
Création d'une mitrailleuse pour voiture. Sigico10
Revenir en haut Aller en bas
http://www.lecbna.org/
Instinct-FR-
Nouveau
Instinct-FR-


Messages : 9
Projet Actuel : Death Race

Création d'une mitrailleuse pour voiture. Empty
MessageSujet: Re: Création d'une mitrailleuse pour voiture.   Création d'une mitrailleuse pour voiture. EmptyVen 3 Juil 2009 - 11:33

Waa, merci les gars, des réponses complètes et rapides.
J'utilise le code de adamo et il marche presque à 100%. Le seul problème c'est quand la voiture ne bouge pas, et qu'on tourne, les tirs se superposent mais dès qu'elle roule ça se remet en place. Mais ça me convient. Merci encore !
Revenir en haut Aller en bas
http://www.StickmanArt.0fees.net
Contenu sponsorisé





Création d'une mitrailleuse pour voiture. Empty
MessageSujet: Re: Création d'une mitrailleuse pour voiture.   Création d'une mitrailleuse pour voiture. Empty

Revenir en haut Aller en bas
 
Création d'une mitrailleuse pour voiture.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Help] pour la création d'un pnj
» 1 objet pour 4 joueurs // Variables globales ou création constantes
» Logiciel pour creation de sons et musiques ?
» Recherche professeur pour création de jeu polyvalente
» [Shoot'em up] Aide utile pour creation d'un shmup!!

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: