GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: 3klips le 13 Mars 2008, 17:43:18

Titre: Faire tourner un objet?
Posté par: 3klips le 13 Mars 2008, 17:43:18
Voila je me demandai, comment il font?


http://www.youtube.com/v/LDanPrfIIoI

Merci de vos réponses.
Titre: Re : Faire tourner un objet?
Posté par: MultiGamers le 14 Mars 2008, 17:29:49
Prend la fonction de Rotation des Objects. Pour ceux qui ne savent pas. Pawno a un petit truc très utile  :happy Vous cliquer sur la fonction que vous voulez et en bas de pawno (Proche de démarrer) vous verrez les variables a mettre pour bien le configuer.  ;)

J'espère que sa aidera du monde cette petite astuce si vous n'avez jamais découvrie sa...  ;)
Titre: Re : Faire tourner un objet?
Posté par: Asphalt le 14 Mars 2008, 18:02:10
Une rotation de x degrés se fait instantanément, on ne voit pas la progression (contrairement au MoveObject).

Il doit sûrement utiliser un timer qui fait tourner l'objet toutes les x ms de x degrés.

Voili voilou.
Titre: Re : Faire tourner un objet?
Posté par: Nip le 14 Mars 2008, 18:51:37
Houa c'est sur psyco sa  :D
je pence que ce serait ieux d'allez demander sur leurs forum!
il son tsympa et assez bon scripteur !!!

+
Titre: Re : Faire tourner un objet?
Posté par: 3klips le 14 Mars 2008, 22:08:18
Bein ouai, le probleme quand je leur ai demandé in-game il m'on répondu très gentilment,
on fait sa à l'aide d'un script. :dry
Puis j'ai pas su en savoir plus. :wall
Donc voilà.
Titre: Re : Faire tourner un objet?
Posté par: Asphalt le 15 Mars 2008, 22:28:07
Essaye un timer toutes les 100 ms par exemple qui fais tourner ton objet de 10°. Ensuite tu adaptes les degrés en fonction de la vitesse ;)
Titre: Re : Faire tourner un objet?
Posté par: Syg le 16 Mars 2008, 21:31:34
Voici un exemple que je m'étais amusé à faire pour tester les fonctions sur le objets.
C'est tout à fait en accord avec ce qu'a dit Asphalt (même si mon timer est plus court pour éviter les mouvements sacadés).

En haut du script :
/* Le baril qui tourne */
new Baril;
forward TourneBaril ();
new Float:Ax=0.0, Float:Ay=0.0, Float:Az=0.0;
new Float:BX=0.0, Float:BY=0.0, Float:BZ=0.0;
new Float:T;

Dans OnGameModeInit :
/* Le baril qui tourne au skate park de Los Santos */
Baril = CreateObject (1225, 1912.0, -1390.0, 15.5, 0.000000, 0.000000, 0.000000);

/* On demarre un timer pour les mouvements du baril */
SetTimer ("TourneBaril", 20, true);

La fonction du timer :
/*************************
* FAIRE TOURNER LE BARIL *
*************************/
public TourneBaril ()
{
Ax += 1.0;
Ay += 1.5;
Az += 2.0;
if (Ax == 360.0) Ax = 0.0;
if (Ay == 360.0) Ay = 0.0;
if (Az == 360.0) Az = 0.0;
SetObjectRot (Baril, Ax, Ay, Az);
T += 2.0;
if (T > 360.0) T=T-360.0;
BX = 1912.0 + 2.0 * floatcos (2.0*T, degrees);
BY = -1390.0 + 2.0 * floatsin (3.0*T, degrees);
BZ = 15.5;
SetObjectPos (Baril, BX, BY, BZ);
}

NB:  Cette fonction fait tourner l'objet sur tous les axes et le déplace (dans un plan parallèle au plan (XY)) le long d'un courbe définie par :
x = 2*cos(2*T)
y= 2*sin(3*T)


Un petit jeu marrant consiste à essayer de toucher le baril en moto ou en voiture (le baril explose). La difficulté réside dans le fait que le baril a un mouvement assez rapide.
NB : Le baril étant au dessus de la fosse, il faut utiliser une rampe pour pouvoir le toucher.

++
Syg
Titre: Re : Faire tourner un objet?
Posté par: 3klips le 17 Mars 2008, 17:04:10
Ha merci bien SYG pour ce bout de code  :)
Titre: Re : Faire tourner un objet?
Posté par: jonjon le 17 Mars 2008, 21:53:18
Woow pas mal  :laugh , ça donne des idées..

++