JeuxOnLineForumsPlusCréer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > help : location aleatoire dans un perimètre réduit RSS
   
Répondre
Partager Outils Rechercher
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 

help : location aleatoire dans un perimètre réduit

bon, ben moi zé un pb.
je chercher à définir des locations aleatoires, dans un périmètre restreint. alors j'ai bien qq idée, mais je butte sur un truc :
les vecteurs.
j'envisageais un ruc du style :
Code PHP:
void main()
{
 
vector vCentre GetPositionFromLocation(GetItemActivatedTargetLocation());
 
float fCentrex// et la je recupere comment le x ??
 
float fCentrey// et la je recupere comment le y ??
 
if(Random(2))
 
fCentrex -= Random(5);
 else
 
fCentrex += Random(5);

 if(
Random(2))
 
fCentrey -= IntToFloat(Random(5)+1);
 else
 
fCentrey += IntToFloat(Random(5)+1);

 
fCentrey fabs(fCentrey);
 
fCentrex fabs(fCentrex);
 
vector vVec Vector(fCentrexfCentrey0.0);
 
location lPoint Location(GetArea(OBJECT_SELF), vVecIntToFloat(Random(360)+1)); //y a cb d'orientation possible ?


alors la, je me dis que ca devrait me les définir dans un carré de 10m de coté centré sur l'endroit ou que je clique ... mais ... comment je recupere les coordonnées
g pas trouvé dans les fonctions, donc si qq avait un truc
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
en fait, c'est juste en faisant


vector vCentre = GetPositionFromLocation(GetItemActivatedTargetLocation());
float fX = vCentre.x;
float fY = vCentre.y;
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
super, genial, merci, magnifique

c parti

(tiens, et tant qu'on y est, pour un cercle ?
c possible ? faut absolument que je me replonge dans mes cours de geométrie ou quelqu'un à un idée simple ?)
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Il suffit que la norme de ton vecteur centre_du_cercle->pj soit inférieure ou égale au rayon de ton cercle.
Quand à le scripter
Lien direct vers le message - Vieux
Avatar de Zunzun
Zunzun
Alpha & Oméga
 
Avatar de Zunzun
 
Me dites pas que vos profs de maths vous ont bourré le crane de sinus et de cosinus pendant des années pour rien ?

J'ai pas regardé les fonctions trigo dans nwn donc je peux pas te donner de bout de code, donc je te donne le principe

Tu sors 2 nombre aléatoires : une norme et un angle.

Tes coordonnées ce sera :
en x : norme*cos(angle)
en y : norme*sin(angle)

Avec ca ca te sort une position aleatoire dans un cercle ayant pour rayon la norme max que tu auras définie.
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
et le cercle l'est centré où ?
la y a qu'un quart de cercle d'exploitable je me trompe ?
ba oui, les vecteurs ils partent d'un coin de la zone ... nan ?

a moins qu'on puisse aditionner des vecteurs sous nwn ?
(surement)
alors je fais mon vecteur aleatoire plus le vecteur postion du centre que je veux
c ca ? ca marcherais ?
(et accesoirement, les angles sont en radian ou en degré sous aurora?)

edit : chuis idiot, suffit d'additionner les cordonnée (non ? dsl, la geometrie j'aime ca mais bon, ca rentre par un bout ... )
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
alors, ca ca marcherais ? (test t a l'heure de toute facon, mais bon )

Code PHP:
void main()
{
 
vector vCentre GetPositionFromLocation(GetItemActivatedTargetLocation());
float fCentrex vCentre.x;
float fCentrey vCentre.y;
 
float fNorme IntToFloat(Random(5)+1);
 
float fAngle IntToFloat(Random(361));
 
float fx fNorme*cos(fAngle);
 
float fy fNorme*sin(fAngle);

 
fCentrex += fx;
 
fCentrey += fy;
 if(
fCentrey 0.0fCentrey 0.0//si on sort de la zone on revient au bord
 
if(fCentrex 0.0fCentrex 0.0//si on sort de la zone on revient au bord
 
vector vVec Vector(fCentrexfCentrey0.0);
 
location lPoint Location(GetArea(OBJECT_SELF), vVecIntToFloat(Random(360)+1)); //y a cb d'orientation possible ?

Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > help : location aleatoire dans un perimètre réduit
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 01h30.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite