Ball Friction: Difference between revisions

From ASSS Wiki
Jump to navigationJump to search
initial page
 
m fixed another code tidying typo (good job no one has seems to have seen this yet)
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
fireball()
fireball()
{
{
   ball.workfriction = 1000000;
   ball.frictiontimer = 1000000;
}
}


Line 8: Line 8:
updateball()
updateball()
{
{
   if (ball.xspeed && ball.yspeed)
   if (ball.xspeed || ball.yspeed)
   {
   {
       int workfriction = ball.workfriction / 1000;
       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.workfriction--;
       ball.frictiontimer -= cfg_friction;
       if (ball.workfriction < 0)
       if (ball.frictiontimer < 0)
         ball.workfriction = 0;
         ball.frictiontimer = 0;
   }
   }
}
}
</pre>
</pre>
[[Category:Game Intricacies]]

Latest revision as of 13:17, 10 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;
   }
}