Indiepath: Yeah that's cool but I was just really making the point that they are different, which I found odd. Dreamora's explanation makes sense as you can clearly see they are handled differently.
One Eyed Jack: I've improved the "retro64" timing method, which was Fixed Rate Logic, to avoid slight "stuttering" movement on sprites cause by sometimes moving one pixel and then other times 2 etc because of rounding errors (well the moire effect in motion). Now after the logic loop has run for a certain number of whole iterations, the final iteration uses a Delta value from 0 to 1 which ensures all objects can be moved by a fraction of their nomal logical amount. This means much smoother anim. I needed the double because of this code segment:
All the variables were floats, now they are doubles. MS=5.0 btw. With floats NumTicks always ended in .0 or .5 which isn't right. With doubles it ends in .2 or .4 or .6 or .8 or .0 which is correct. My PC has been on all day so Millisecs() is quite high.
Standard Delta timing can be too "coarse" for certain games esp. with fast moving objects and collisions and poss frame rate drops. The fixed rate logic never cocks up collisions and is perfectly smooth now I've improved it, whereas before it could suffer from very slight judders every so often due to the logic sometimes looping say twice and other times three times in a frame thus the objects didn't move the same amount each frame and your eye picked this up.
One Eyed Jack: I've improved the "retro64" timing method, which was Fixed Rate Logic, to avoid slight "stuttering" movement on sprites cause by sometimes moving one pixel and then other times 2 etc because of rounding errors (well the moire effect in motion). Now after the logic loop has run for a certain number of whole iterations, the final iteration uses a Delta value from 0 to 1 which ensures all objects can be moved by a fraction of their nomal logical amount. This means much smoother anim. I needed the double because of this code segment:
Local TmpMS:Double 'float isn't accurate enough because Millisecs is such a big number Repeat TmpMS = MilliSecs()/MS 'little sanity check here in Case the timer flips back To 0 :) If TmpMS < LastTime Then LastTime = TmpMS - LastNumTicks NumTicks = TmpMS - LastTime Until NumTicks > 0 LastTime = TmpMS LastNumTicks = NumTicks
All the variables were floats, now they are doubles. MS=5.0 btw. With floats NumTicks always ended in .0 or .5 which isn't right. With doubles it ends in .2 or .4 or .6 or .8 or .0 which is correct. My PC has been on all day so Millisecs() is quite high.
Standard Delta timing can be too "coarse" for certain games esp. with fast moving objects and collisions and poss frame rate drops. The fixed rate logic never cocks up collisions and is perfectly smooth now I've improved it, whereas before it could suffer from very slight judders every so often due to the logic sometimes looping say twice and other times three times in a frame thus the objects didn't move the same amount each frame and your eye picked this up.