Game Movement with Delta Timing

👉 BlitzCoder will be building a new platform and other plans to preserve and continue the Blitz legacy.

To be able to achieve this goal, we need your support by becoming a Patreon Paid Member 👈


Tweet blitz3d blitzplus code-archives miscellaneous tutorials

A quick example with 2D game movement using delta timing. This should apply on 3D as well.

Game Movement with Delta Timing

xspd#=.5 ; speed
x# = 0

Graphics 640,480,0,2
SetBuffer BackBuffer()

count = 100

While Not KeyHit(1)
    ;get time elapsed since last frame

    thistime# = MilliSecs()
    ;graphics with timing

    If KeyHit(57) enable = Not enable 
    If KeyHit(78) count = count + 200
    If KeyHit(74) count = count - 200

    If count <= 100 Then count = 100

    If enable 
        x=x + deltatime*xspd   ; this is movement by time elapsed.
        x = x + xspd
    End If

    If x>640 Then x=0
    Color 255,255,255
    Rect x,y,16,16,1

    ;uncomment for testing. movement will reach a to b in the same time despite how much is on screen
    For i=0 To count
        Color Rand(0,255),Rand(0,255),Rand(0,255)
        Rect Rand(0,600),Rand(90,440),40,40

    Color 255,255,255
    Text 0,30, "<space> Toggle Delta Timing Movement: " + enable + "  [+/-] Add/Remove 200 Rectangles"
    Text 0,50, "Movement Increment Speed: " + xspd
    Text 0,70, "Rectangle Count: " + count

    Flip 0


Reply To Topic (minimum 10 characters)

Please log in to reply