Velocity

From Valve Developer Community
Revision as of 11:30, 26 June 2009 by TomEdwards (talk | contribs) (Created page with ''''Velocity''' is a measure of speed and direction. In Source, it is a <code>Vector</code> that an entity will try to move the length of once per second: a velocity of <code>…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Velocity is a measure of speed and direction. In Source, it is a Vector that an entity will try to move the length of once per second: a velocity of (0,0,-200) means that you are falling at 200 units per second.

Abs, local and base

There are actually three different velocity vectors:

  1. Local velocity: generated by the entity
  2. Base velocity: applied to the entity from other sources
  3. Absolute velocity: the sum of the local and base velocities; the actual value used to move

Having separate local and base velocities allows for the proper handling of inertia. If an NPC is standing on a fast-moving train, the motion of the carriage is stored in its base velocity while the motion the NPC creates itself when walking up and down is stored in its local velocity. There is no danger of either value overwriting the other, or of the NPC thinking it's walking at 150MPH.

Warning.pngWarning:Don't try to change another entity's local or absolute velocity: it will likely overwrite both values when it next tries to move. Instead add your value, unless you really do want to overwrite, using SetBaseVelocity().

Functions

  • GetLocalVelocity(), SetLocalVelocity()
  • GetBaseVelocity(), SetBaseVelocity()
  • GetAbsVelocity(), SetAbsVelocity()

See also