Difference between revisions of "Ball Friction"
From ASSS Wiki
m (oops, fixed mistake when I was tidying up the code) |
m (renamed a variable to make it more obvious) |
||
| Line 2: | Line 2: | ||
fireball() | fireball() | ||
{ | { | ||
| − | ball. | + | ball.frictiontimer = 1000000; |
} | } | ||
| Line 10: | Line 10: | ||
if (ball.xspeed && ball.yspeed) | if (ball.xspeed && ball.yspeed) | ||
{ | { | ||
| − | int workfriction = ball. | + | int workfriction = ball.frictiontimer / 1000; |
ball.xspeed = ball.xspeed * workfriction / 1000; | ball.xspeed = ball.xspeed * workfriction / 1000; | ||
ball.yspeed = ball.yspeed * workfriction / 1000; | ball.yspeed = ball.yspeed * workfriction / 1000; | ||
| − | ball. | + | ball.frictiontimer -= cfg_friction; |
| − | if (ball. | + | if (ball.frictiontimer < 0) |
| − | ball. | + | ball.frictiontimer = 0; |
} | } | ||
} | } | ||
</pre> | </pre> | ||
Revision as of 12:00, 9 March 2008
fireball()
{
ball.frictiontimer = 1000000;
}
// call this per tick
updateball()
{
if (ball.xspeed && ball.yspeed)
{
int workfriction = ball.frictiontimer / 1000;
ball.xspeed = ball.xspeed * workfriction / 1000;
ball.yspeed = ball.yspeed * workfriction / 1000;
ball.frictiontimer -= cfg_friction;
if (ball.frictiontimer < 0)
ball.frictiontimer = 0;
}
}