| Next revisionBoth sides next revision |
new:inventory [2018/02/15 17:18] – created korshun | new:inventory [2018/02/15 17:19] – removed korshun |
---|
====== Unit conversion ====== | |
| |
**All** unit conversion function operate on ''fixed'' numbers, even if ZDoom only uses integers for some of these units. | |
| |
===== Angle units ===== | |
| |
* ZDoom ''fixed'' angles [0, 1] | |
* Degrees [0, 360] | |
* Radians [0, 6.28] | |
| |
ZDoom ''fixed'' angles are the recommended angle unit in ZDoom, used by almost all actor functions, and used by all ACSUtils functions. | |
| |
Angle units can be converted using the following functions (ang = ZDoom ''fixed'' angles, deg = Degrees, rad = Radians): | |
| |
* ''fixed deg2ang(fixed degrees)'' -- converts degrees to ZDoom angle | |
* ''fixed rad2ang(fixed radians)'' -- converts radians to ZDoom angle | |
* ''fixed ang2deg(fixed angle)'' -- converts ZDoom angle to degrees | |
* ''fixed ang2rad(fixed angle)'' -- converts ZDoom angle to radians | |
* ''fixed deg2rad(fixed degrees)'' -- converts degrees to radians | |
* ''fixed rad2deg(fixed radians)'' -- converts radians to degrees | |
| |
===== Gravity units ===== | |
| |
* acceleration (default gravity is 1.0) | |
* ''sv_gravity'' units (default gravity is 800) | |
| |
ZDoom uses ''sv_gravity'' units exclusively, but acceleration is the recommended unit, as it can be used in physical calculations without conversion. | |
| |
Gravity units can be converted using the following functions: | |
| |
* ''fixed grav2accel(fixed sv_gravity)'' -- converts ''sv_gravity'' units to acceleration | |
* ''fixed accel2grav(fixed acceleration)'' -- converts acceleration to ''sv_gravity'' units | |
| |
ACSUtils also provides utility functions for manipulating gravity: | |
| |
* ''fixed GetGravityG()'' -- reads the value of ''sv_gravity'', converts it to acceleration and returns the result. Supports both very small and HUGE values of ''sv_gravity''. | |
* ''void SetGravityG(fixed accel)'' -- a wrapper for [[zdoom>SetGravity]] that accepts acceleration instead of ''sv_gravity'' units. | |
| |
===== Jump height ===== | |
| |
* ''fixed jumpz2height(fixed jumpz)'' -- converts decorate JumpZ to actual resulting jump height | |
* ''fixed height2jumpz(fixed height)'' -- calculates JumpZ from actual jump height | |
| |