Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public var physStepCounter:int = 0;//number of physics steps per frame.
- private var _prevTime:Number = 0;
- private var _currTime:Number;
- private var _elapsedTime:Number;
- private var _accumulator:Number = 0;
- public var interations:int = 10;
- public var physScale:Number = 30;//3d units to 1 b2d unit!
- public var accMult:Number = 1;//This is what we use to speed up or slow down time in the engine. Changes physics steps and Entity Thinking per frame!!! CAREFUL.
- public var loopFPS:Number = 30.0;//this uses 33ms for timestep, also equals about 30fps.
- //TODO: Perhaps use target FPS?
- public var timeStep:Number = accMult / loopFPS;//this uses 33ms for timestep, also equals about 30fps.
- /**
- * Game loop
- */
- private function gameLoop(e:Event):void
- {
- //FIXME: Combine this crap?
- // update loop
- if (C2D.accumulator)
- {
- _currTime = getTimer();
- _elapsedTime = (_currTime - _prevTime) * 0.001;
- _prevTime = _currTime;
- if (_elapsedTime > 0.25)
- {
- _elapsedTime = 0.25;
- }
- _accumulator += _elapsedTime * accMult;
- timeStep = accMult / loopFPS;
- Tweener.setTimeScale(accMult);
- while (_accumulator >= timeStep)
- {
- update();
- physStepCounter++;
- _accumulator -= timeStep;
- }
- //trace('update function fire! ' + physStepCounter);
- physStepCounter = 0;
- }
- else
- {
- update();
- }
- // render loop
- render();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement