Problème de raisonnement!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Problème de raisonnement!

Message par Fortix »

Bonsoirs :D

je n'arrive pas (pour le cas d'un ptit jeux) à faire partir un "plot" d'un poin de départ (x1,y1) à un point d'arrivé (x2,y2) qui n'est autre que le pointeur de la sourie (viseur);

le raisonnement me suffit amplement;

comme quoi les choses donnent l'impression d'être simple et pourtant :lol:

merci d'avance :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Problème de raisonnement!

Message par djes »

Le point doit-il se déplacer dans le temps, ou tracer une ligne? L'arrivée est-elle fixe?
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Problème de raisonnement!

Message par Fortix »

le point en question doit simuler un tir simple, donc il doit se déplacer dans le temps et l'arrivé doit être fixe;
si il doit faire un tracé heuu, porquoi pas :wink:
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Problème de raisonnement!

Message par djes »

On en a (re)parlé il n'y a pas longtemps : http://www.purebasic.fr/french/viewtopi ... =1&t=11592
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème de raisonnement!

Message par G-Rom »

révise les vecteurs , ca peut t'aider.
Dans ton cas , il te faut connaitre la direction.
elle s'obtient ainsi :

Direction = Point d'arrivé - Point de départ
Direction /= longueur de direction


en pb il te faut ce genre de fonction :

Code : Tout sélectionner

Structure vector2
  x.f
  y.f
EndStructure

Procedure.f Vector_Length(X.f, Y.f)
  ProcedureReturn Sqr(X * X + Y * Y)
EndProcedure

Procedure Vector_Normalize(*NormVector.vector2)
  length.f = Vector_Length(*NormVector\X, *NormVector\Y)
 
  *NormVector\X = *NormVector\X / length
  *NormVector\Y = *NormVector\Y / length
EndProcedure
Et la facon de te déplacer :

Code : Tout sélectionner

A.vector2
A\x=100
A\y=100


B.vector2
B\x=500
B\y=800


Direction.vector2
Direction\x = B\x - A\x
Direction\y = B\y - A\y


Vector_Normalize(@Direction)

Debug "Direction :"
Debug Direction\x
Debug Direction\y
Debug ""

Debug "Deplacement de A vers B (nouvelle position de A)"
Vitesse.f = 1 
Debug A\x + Direction\x * Vitesse
Debug A\y + Direction\y * Vitesse
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Problème de raisonnement!

Message par Fortix »

merci :lol:

effectivement quelques révisions s'imposent :lol:
maintenant, voyons ça de plus près....
Répondre