movtar
| Member Function | Parameter | Return | Explain |
| getID | None | number | |
| getName | None | string | |
| setName | string | None | |
| getPosition | None | vec | |
| setPosition | vec | None | |
| getVelocity | None | vec | |
| setVelocity | vec | None | |
| getLastPosition | None | vec | |
| getLastVelocity | None | vec | |
| getMass | None | number | |
| setMass | number | None | |
| getResistance | None | number | get the coefficient of resistance (default is 0) |
| setResistance | number | None | |
| getAccel | None | vec | |
| setAccel | vec | None | |
| getBoundingBox | None | bbox | |
| setBoundingBox | bbox | None | |
| getGravityScale | None | number | 1 = 980 / S (default is 1) |
| setGravityScale | number | None | |
| getStrideHeight | None | number | stairstep height (default is 21) |
| setStrideHeight | number | None | |
| getGradientLimit | None | number | limit walk on too gradient bevel face. value range is 0 ~ 1 ( horizontal to vertical, default is 0.7) |
| setGradientLimit | number | None | |
| getOverBounce | None | number | affect bounce direction. value range is 1 ~ 2, 1 means bounce direction parallel with collision plane; 2 means complete bounce, incidence angle equals reflection angle. (default is 1.01) |
| setOverBounce | number | None | |
| getBounceAtten | None | number | velocity attenuation on bounce. value range is 0~1, 0 means complete attenuation, velocity is set to zero after bounce; 1 means no attenuation. (default is 1) |
| setBounceAtten | number | None | |
| isFreezing | None | boolean | |
| freezing | boolean | None | |
| isPoint | None | boolean | |
| pointed | boolean | None | |
| getRadius | None | number | |
| setRadius | number | None | |
| isStrideBlock | None | boolean | whether enable stride block (like upstairs) (default is false) |
| setStrideBlock | boolean | None | |
| isRebound | None | boolean | whether enable bounce velocity against original velocity ( angle > 90 ) (default is false) |
| setRebound | boolean | None | |
| isNoBounce | None | boolean | whether disable bounce (default is false) |
| setNoBounce | boolean | None | |
| getNoClipMask | None | dword | Retrieves the noclip mask. See remark. |
| setNoClipMask | dword | None | Set the noclip mask. |
| getStyle | None | dword | Retrieves the style. See style list. |
| setStyle | dword | None | Set the style. |
| Callback Function | Parameter | Return | Explain |
| OnCollide | trace handle | None | be executed when collision happened Example codes: m.OnCollide = function(ptrace) local t=trace.new(ptrace) PlaySound('\\hit.wav') end |
The NoClipMask is a dword for disable clipping between particular objects. It works like Lighting Channel, assume ObjectA has Mask1, ObjectB has Mask2; If ( Mask1 bitwise-AND Mask2 ), then no clipping between ObjectA and ObjectB. For root object, it's default value is 0x40000000; for movtar, it's default value is 0x00000000; so you can let a movtar free through any objects by below code:
movtar.setNoClipMask( orDWORD( movtar.getNoClipMask(), toDWORD('40000000') ) )
The most significant 8 bits of NoClipMask is system field, so except the highest 2 bits, do not change other 6 bits.
MOVS_NOCLIP -- not affect collision detection
MOVS_HOLLOW -- for collision detection, movtar can
get out from inner of a hollow movtar.