That way there are some things that change the velocity of the cards, frame rate, pixel steps, etc... You need to fix the frame rate to get same speed in all computers, if don't do this, somebody with a default monitor frame rate of 100, will see the game too fast.
With the frame rate, you will hace to adjust the pixel steps of the cards. I added a basic example of acceleration to see how works.
The best way would be to calculate time between frames and add the steps you need to get the best animation. I think there are many tutorials in internet about that to see here.
Code:
InitSprite()
InitKeyboard()
OpenWindow(0,100,100,800,600,"")
OpenWindowedScreen(WindowID(0),0,0,800,600)
SetFrameRate(60) ; <---- changing this to 30 or 15, change velocity
CreateSprite(1,90,50)
StartDrawing(SpriteOutput(1))
Box(0,0,90,50,RGB(128,90,45))
StopDrawing()
acceleration.f=0.1 ; <----- change acceleration to 0.2 to change speed
Repeat
While(WindowEvent())
Wend
ClearScreen(RGB(255,0,255))
acceleration+0.1
If (acceleration>10)
acceleration=10
EndIf
mc=mc+acceleration ; <----- changing this to a fix value: 1, 2, 5, 10..... change velocity
If mc>291
md=md+acceleration
DisplaySprite(1,482+md,15+mc)
mc=291
Else
DisplaySprite(1,482,15+mc)
EndIf
If 482+md>690
DisplaySprite(1,482+md,15+mc)
md=690
EndIf
If md=690
DisplaySprite(1,691,307)
EndIf
ExamineKeyboard()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)