| Création sur une ligne | |
|
|
Auteur | Message |
---|
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Création sur une ligne Dim 21 Mai 2006 - 16:15 | |
| :p_hello: Je voudrais bien savoir comment créer un objet aléatoirement sur la longueur d'une ligne (entre 2 points). par exemple: Je voudrais que l'objet x de crée soit là: - Code:
-
A-------------------------x--B ou là. - Code:
-
A \ \ \ x \ \ \ \ \ B etc... Merci, @+ _________________ |
|
| |
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 16:42 | |
| Supposons que les coordonnées de A sont xa et ya. De même les coordonnées de B sont xb et yb. Nous allons créer un point C dont les coordonnées sont xc et yc. - Code:
-
xc = random(xb-xa) + xa; yc = random(yb-ya) + ya; Mais cela suppose que l'on a obligatoirement xb > xa et yb > ya. Dans le cas contraire, on peut adapter notre code quelque soit xa,xb,ya et yb. - Code:
-
xc = random(abs(xb-xa)) + min(xb,xa); yc = random(abs(yb-ya)) + min(yb,ya); CQFD _________________ Venez tester la beta de notre jeu de course Space Racer (conçu avec Unity 3D) |
|
| |
Gab666 Modérateur 'Zut'
Messages : 5340 Localisation : **I move away from the mic to breathe in
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 16:57 | |
| pour une ligne horizontale c'est assez facile : - Code:
-
x = point_a+random(pointb-pointa); pour une diagonale faut faire un peu de maths - Code:
-
point_ax = 0; point_bx = 100; point_ay = 0; point_by = 1000; x = point_ax; y = point_ay; posi = random(sqrt(sqr(point_bx+point_ax)+sqr(point_by+point_ay))); move_snap((point_bx-point_ax)/posi,(point_by-point_ay)/posi); x += posi; y += posi; ce code devrait fonctionner _________________ PIS MANIAC PREND DES BAINS !
Dernière édition par le Dim 21 Mai 2006 - 17:03, édité 2 fois |
|
| |
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 17:01 | |
| Ma solution est quand même beaucoup plus simple, non ? _________________ Venez tester la beta de notre jeu de course Space Racer (conçu avec Unity 3D) |
|
| |
Gab666 Modérateur 'Zut'
Messages : 5340 Localisation : **I move away from the mic to breathe in
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 17:01 | |
| en effet mais j'était en train de tester mon code quand tu as posté _________________ PIS MANIAC PREND DES BAINS !
|
|
| |
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 17:03 | |
| En plus tu te compliques la vie avec ta structure repeat. Elle est équivalente à - Code:
-
x += posi; y += posi; ce qui est quand même plus simple ! _________________ Venez tester la beta de notre jeu de course Space Racer (conçu avec Unity 3D) |
|
| |
Gab666 Modérateur 'Zut'
Messages : 5340 Localisation : **I move away from the mic to breathe in
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 17:04 | |
| Ah oui aussi voilà c'est ccorrigé :fier: _________________ PIS MANIAC PREND DES BAINS !
|
|
| |
OKSYD Utilisateur confirmé: Rang *****
Messages : 2302 Localisation : Pioneer 2 Projet Actuel : Hard Pac III
| Sujet: Re: Création sur une ligne Dim 21 Mai 2006 - 18:58 | |
| Kryptos, ta technique ne marchait pas. L'objet se créait comme si on avair mis: - Citation :
- xc = xa + random(xb)
yc = ya + random(yb) Mais c'est bon, j'ai réussi! Ma technique du debut marchait toujours mais mon objet avait pas de sprite car j'en avait loadé un qui n'exeistait pas Merci quand même! _________________ |
|
| |
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: Création sur une ligne Lun 22 Mai 2006 - 1:11 | |
| Je t'assure que ma technique fonctionne chez moi. Le calcul xb-xa permet de calculer la distance entre A et B, au niveau des abscisses. La fonction random() retourne une valeur entre 0 et cette distance. En supposant que xa est la plus petite abscisse, on l'ajoute pour se trouver à la bonne position : c'est un changement de repère. On procède de même pour l'ordonnée y.
edit: effectivement, mon code est incomplet puisque le random() effectué sur les abscisses et les ordonnées n'est pas le même. _________________ Venez tester la beta de notre jeu de course Space Racer (conçu avec Unity 3D) |
|
| |
Contenu sponsorisé
| Sujet: Re: Création sur une ligne | |
| |
|
| |
| Création sur une ligne | |
|