Thank you! 

That make sense. Will integrate this into my code ( now looking at my camera 
class ) …  
This is quite important, as if there is any frame lag, physics and other 
objects go out of sync. 

Karim Beyrouti

t: +44 (0) 7977 997 629
e: ka...@kurst.co.uk
w: http://kurst.co.uk
skype: karimbeyrouti

109 Timber Yard, Drysdale Street, Hoxton, London, N1 6ND

On 26 Oct 2012, at 17:07, Hans Wichman wrote:

> Hi Karim,
> 
> i put them both in there, the one you are referring to is simpler:
> ofcourse this value can be kept out of the enterframe loop, i have a utility 
> class for it (although it is a bit overkill;))
> 
>      private function enterFrame( event : Event ) : void {
>           sp.x += speed * spDir;
>           if ( 0 > sp.x|| ( sp.x + sp.width ) > stage.stageWidth ) spDir = 
> -spDir;
> 
>           var lSpeedPerSecond:Number = 300;
>           var lSpeedPerFrameConstant:Number = lSpeedPerSecond / 
> stage.frameRate;
> 
>           spc.x += lSpeedPerFrameConstant* spcDir;
> 
>           if ( 0 > spc.x|| ( spc.x + spc.width ) > stage.stageWidth ) spcDir 
> = -spcDir;
> 
>           t0 = getTimer();
>       }
> 
> Anyway, basically frameindependent value is simply 
> SPEED_PER_SECOND/FRAMES_PER_SECOND.
> 
> regards
> Hans
> 
> 
> On 26-10-2012 16:58, Karim Beyrouti wrote:
>>> are you trying to do frame rate independent animation based on a fixed 
>>> frame rate (eg you switch from 30 to 60 and everything should move at the 
>>> same pace but more fluid
>> Yep - that is the one… all my game physics is independent of framerate (time 
>> based)… however, I am trying to get other non-physics based animated 
>> objects/code
>> to work the same way (i.e. the camera), and I am finding it a little 
>> difficult.
>> 
>> Will try your solution - although it looks like it's for the other option 
>> (variable framerate)….
>> 
>> Thank you for helping….
>> 
>> 
>> 
>> Karim Beyrouti
>> 
>> t: +44 (0) 7977 997 629
>> e: ka...@kurst.co.uk
>> w: http://kurst.co.uk
>> skype: karimbeyrouti
>> 
>> 109 Timber Yard, Drysdale Street, Hoxton, London, N1 6ND
>> 
>> On 26 Oct 2012, at 15:21, Hans Wichman wrote:
>> 
>>> Hi,
>>> 
>>> are you trying to do frame rate independent animation based on a fixed 
>>> frame rate (eg you switch from 30 to 60 and everything should move at the 
>>> same pace but more fluid), or trying to make up a variable framerate due to 
>>> running code?
>>> 
>>> Anyway since you are keeping y constant I compressed the code a bit, is 
>>> this what you are looking for?
>>> 
>>>        private function enterFrame( event : Event ) : void {
>>>            sp.x += speed * spDir;
>>>            if ( 0 > sp.x|| ( sp.x + sp.width ) > stage.stageWidth ) spDir = 
>>> -spDir;
>>> 
>>>            var lSpeedPerSecond:Number = 300;
>>>            var lSpeedPerFrameConstant:Number = lSpeedPerSecond / 
>>> stage.frameRate;
>>>            var lSpeedPerFrameVariable:Number = lSpeedPerSecond * 
>>> (getTimer()-t0)/1000;
>>> 
>>>            spc.x += lSpeedPerFrameConstant* spcDir;
>>>            //spc.x += lSpeedPerFrameVariable * spcDir;
>>> 
>>>            if ( 0 > spc.x|| ( spc.x + spc.width ) > stage.stageWidth ) 
>>> spcDir = -spcDir;
>>> 
>>>            t0 = getTimer();
>>>        }
>>> 
>>> hth
>>> jc
>>> 
>>> 
>>> On 26-10-2012 15:29, Karim Beyrouti wrote:
>>>> Hello Flash coders,
>>>> 
>>>> It's been a little quite here of late… So, hope it's good with with you 
>>>> all. … I have been trying to figure this out for a day or so, and 
>>>> wondering if you can help. I am trying to time correct my animation to be 
>>>> independent of framerate, which is a little easier when dealing with 
>>>> physics (scaling velocity / position) than non physics animation… In my 
>>>> app physics is time corrected, however I have some code that is not 
>>>> physics based an am trying to have that running independently of framerate 
>>>> (and not really succeding).
>>>> 
>>>> In the following demo: 
>>>> http://kurst.co.uk/transfer/timecorrection/TimeCorrection.swf
>>>> 
>>>> I have two rects ( green and red ). The green one is being time corrected, 
>>>> and I would expect it to follow the red one ( as there is no lag in 
>>>> framerate )… however as you can see - it's not
>>>> really working.
>>>> 
>>>> Using the following formula to correct it:
>>>> 
>>>> var spcTargetPosition : Point = new Point()
>>>> spcTargetPosition.x = ( spc.x + ( spc.x + 10 ) ) * speed * spcDir;
>>>> spcTargetPosition.y = spc.y;
>>>> 
>>>> dt                 = 0.001 * (getTimer() - t0);
>>>> time       += dt;
>>>> t0                 = getTimer();
>>>> 
>>>> spc.x = spc.x + ( dt * spcTargetPosition.x );
>>>> 
>>>> 
>>>> Here is the full code: 
>>>> http://kurst.co.uk/transfer/timecorrection/TimeCorrection.as
>>>> I would love it if you can point out where I am going wrong...
>>>> 
>>>> 
>>>> Best regards
>>>> 
>>>> 
>>>> Karim Beyrouti
>>>> 
>>>> t: +44 (0) 7977 997 629
>>>> e: ka...@kurst.co.uk
>>>> w: http://kurst.co.uk
>>>> skype: karimbeyrouti
>>>> 
>>>> 109 Timber Yard, Drysdale Street, Hoxton, London, N1 6ND
>>>> 
>>>> 
>>>> Karim Beyrouti
>>>> 
>>>> t: +44 (0) 7977 997 629
>>>> e: ka...@kurst.co.uk
>>>> w: http://kurst.co.uk
>>>> skype: karimbeyrouti
>>>> 
>>>> 109 Timber Yard, Drysdale Street, Hoxton, London, N1 6ND
>>>> 
>>>> _______________________________________________
>>>> Flashcoders mailing list
>>>> Flashcoders@chattyfig.figleaf.com
>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>> _______________________________________________
>>> Flashcoders mailing list
>>> Flashcoders@chattyfig.figleaf.com
>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>> _______________________________________________
>> Flashcoders mailing list
>> Flashcoders@chattyfig.figleaf.com
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> 
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to