;ATTENTION écrit pour OFP non Testé Arma version française ;========================================================================== ; Fais tourner la camera autour de la position de "cible" version 1.0 ; ; [getmarkerpos "cible",getpos soldat1, 0, 50, 10, 50, 0.1] exec "Cam_rotation.sqs" ; [getpos patrouille,getpos espionintro,-30,0,10,5,0.1] exec "Cam_rotation.sqs" ; paramètre 1: origine ; paramètre 2: point concerné ; paramètre 3: angle de départ ; paramètre 4: angle d'arrivée (la caméra parcourt les angles entre celui de depart et d'arrivée) ; paramètre 5: placement par rapport au point (devant derriere) ; paramètre 6: placement par rapport au point (hauteur) ; paramètre 7: frequence ;
_coordOrigine = _this select 0 _coordPoint = _this select 1 _Theta1 = _this select 2 _Theta2 = _this select 3 _recul = _this select 4 _hauteur = _this select 5 _freq = _this select 6
_inc = 1 ? _theta1 > _theta2 : _inc = -1
_coordx = _coordOrigine select 0 _coordy = _coordOrigine select 1 _coordz = _coordOrigine select 2
;On calcule les distances algébriques pour chaque coordonnées.
_PosX = ((_coordPoint select 0) - (_coordOrigine select 0)) _PosY = ((_coordPoint select 1) - (_coordOrigine select 1)) _PosZ = ((_coordPoint select 2) - (_coordOrigine select 2))
;On détermine la distance entre les deux points
_distance = sqrt ((_PosX * _PosX) + (_PosY * _PosY) + (_PosZ * _PosZ)) _sin = _PosY / _distance _cos = _PosX / _distance
;On regarde sur quelle partie du cercle trigo on est pour déterminer l'angle.
? _sin >= 0 and _cos >= 0: _angle = acos _cos ? _sin >= 0 and _cos < 0: _angle = acos _cos ? _sin < 0 and _cos >= 0: _angle = - acos _cos ? _sin < 0 and _cos < 0: _angle = - acos _cos
;TitleText [format["dist: %1 ; cos: %2 ; sin: %3 ; angle: %4",_distance,_cos,_sin,_angle],"PLAIN DOWN",1]
_distance= _distance + _recul _rot = _angle + _theta1 ;_rot = _angle
_camera = "CAMERA" camCreate [_coordx + (_distance * (cos _rot)),_coordy + (_distance * (sin _rot)),_hauteur] _camera cameraEffect ["internal","front"] _camera camCommand "inertia off"
_camera camsetTarget _coordOrigine _camera camCommit 0 @camCommitted _camera
#boucleprincipale _camera camSetPos [_coordx + (_distance * (cos _rot)),_coordy + (_distance * (sin _rot)),_hauteur] _camera camCommit _freq @camcommitted _camera _rot = _rot + _inc ;?_rot < 360 : goto "boucleprincipale" ?_inc == 1 and _rot < _angle + _theta2 : goto "boucleprincipale" ?_inc == -1 and _rot >= _angle + _theta2 : goto "boucleprincipale" camdestroy _camera
 |