public override void update()
{
//lifespan behavior
if(lifespan <= 0)
return;
lifespan -= FlxG.elapsed;
if(lifespan <= 0)
kill();
//simpler bounce/spin behavior for now
if(Convert.ToBoolean(touching))
{
if(angularVelocity != 0)
angularVelocity = -angularVelocity;
}
if(acceleration.y > 0) //special behavior for particles with gravity
{
if(Convert.ToBoolean(touching) & Convert.ToBoolean(FLOOR))
{
drag.x = friction;
if(!(Convert.ToBoolean(wasTouching) & Convert.ToBoolean(FLOOR)))
{
if(velocity.y < -elasticity*10)
{
if(angularVelocity != 0)
angularVelocity *= -elasticity;
}
else
{
velocity.y = 0;
angularVelocity = 0;
}
}
}
else
drag.x = 0;
}
angle += rotateBy;
}