Floatsin
From SA-MP Wiki
(Difference between revisions)
Revision as of 22:51, 3 May 2014 Vince (Talk | contribs) ← Previous diff |
Current revision Vince (Talk | contribs) (replaced example with a more practical one) |
||
Line 16: | Line 16: | ||
{{Example}} | {{Example}} | ||
<pawn> | <pawn> | ||
- | public OnGameModeInit() | + | GetPosInFrontOfPlayer(playerid, Float:distance, &Float:x, &Float:y, &Float:z) |
{ | { | ||
- | printf("The sine from 90° is %f", floatsin(90.0, degrees)); | + | if(GetPlayerPos(playerid, x, y, z)) // this functions returns 0 if the player is not connected |
- | // Output: 1 | + | { |
- | return 1; | + | new Float:z_angle; |
+ | GetPlayerFacingAngle(playerid, z_angle); | ||
+ | |||
+ | x += distance * floatsin(-z_angle, degrees); // angles in GTA go counter-clockwise, so we need to reverse the retrieved angle | ||
+ | y += distance * floatcos(-z_angle, degrees); | ||
+ | |||
+ | return 1; // return 1 on success, the actual coordinates are returned by reference | ||
+ | } | ||
+ | return 0; // return 0 if the player isn't connected | ||
} | } | ||
</pawn> | </pawn> |
Current revision
[edit]
floatsin
Note: This function name starts with a lowercase letter. |
Description:
Get the sine from a given angle. The input angle may be in radians, degrees or grades.
(Float:value, anglemode:mode=radian)
Float:value | The angle from which to get the sine. |
anglemode | The angle mode to use, depending on the value entered. |
Return Values:
The sine of the value entered.
Important | GTA/SA-MP use degrees for angles in most circumstances, for example GetPlayerFacingAngle. Therefore, it is most likely you'll want to use the 'degrees' angle mode, not radians.
Also note that angles in GTA are counterclockwise; 270° is East and 90° is West. South is still 180° and North still 0°/360°. |
Example Usage:
GetPosInFrontOfPlayer(playerid, Float:distance, &Float:x, &Float:y, &Float:z) { if(GetPlayerPos(playerid, x, y, z)) // this functions returns 0 if the player is not connected { new Float:z_angle; GetPlayerFacingAngle(playerid, z_angle); x += distance * floatsin(-z_angle, degrees); // angles in GTA go counter-clockwise, so we need to reverse the retrieved angle y += distance * floatcos(-z_angle, degrees); return 1; // return 1 on success, the actual coordinates are returned by reference } return 0; // return 0 if the player isn't connected }
[edit]
Related Functions
The following functions may be useful, as they are related to this function in one way or another.
- floattan: Get the tangent from a specific angle.
- floatcos: Get the cosine from a specific angle.