bon je me suis amusé aussi a faire ma route
par contre comme je triche un poil, j'aimerai savoir si chez vous l'animation
se passe bien
un appuis sur la barre d'espace lance l'animation
un appuis prolongé met la vitesse "a fond"
les touches flechées bougent la route droite-gauche, haut,bas
j'utilise des sprites pour faire cette route,
et une grosse arnaque pour l'animation 
, qui du coup ne prend aucun temps processeur important !!
on peu avoir un truc fluide qui prends tout l'ecran sans soucis (en principe)
bref tout pour reserver le processeur a d'autre fin utile pour un jeu

laissez la resolution de 1024*768 !! c'est important !
; by Dobro
; sur une idee de Mytic
posy=700
posx=0
vitess.f=0
Structure bande_clair
x.l
Y.l
pos.l
EndStructure
;Global Dim bande_clair.bande_clair(nb_bandes) ; nombre de bande
Global NewList bande_clair.bande_clair()
Structure bande_fonce
x.l
Y.l
pos.l
EndStructure
Global NewList bande_fonce.bande_fonce()
Enumeration
#spr_clair
#spr_fonce
#spr_clair3D
#spr_fonce3D
EndEnumeration
InitSprite ()
InitSprite3D ()
InitMouse ()
InitKeyboard ()
Global mx.d,my.d
my=50 ; 25 a 89 (50=plat)
mx=0
OpenWindow (0,0,0,1024,768, "test" , #PB_Window_SystemMenu )
OpenWindowedScreen ( WindowID (0),0,0,1024,768,0,0,0)
;************ creation de la bande clair 1****************
CreateSprite ( #spr_clair ,1024,10, #PB_Sprite_Texture )
; gauche=1024/2.6
; droite=1024/28
; bande=gauche+30
StartDrawing ( SpriteOutput ( #spr_clair ))
Box (0,0,1024,10, RGB ($0,$84,$42)) ; l'herbe
Box (300,0,400,10, RGB ($A4,$A4,$A4)) ; la bande
Box (300,0,30,10, RGB ($C7,$C7,$C7)) ; le bord gauche
Box (700,0,30,10, RGB ($C7,$C7,$C7)) ; le bord droit
StopDrawing ()
CreateSprite3D ( #spr_clair3D , #spr_clair )
; ***************************************************
; *********** creation de la bande fonce 1**************
CreateSprite ( #spr_fonce ,1024,10, #PB_Sprite_Texture )
StartDrawing ( SpriteOutput ( #spr_fonce ))
Box (0,0,1024,10, RGB ($0,$84,$42)) ; l'herbe
Box (300,0,400,10, RGB ($79,$79,$79)) ; la bande
Box (300,0,30,10, RGB ($F1,$1F,$1)) ; le bord gauche
Box (700,0,30,10, RGB ($F1,$1F,$1)) ; le bord droit
StopDrawing ()
CreateSprite3D ( #spr_fonce3D , #spr_fonce )
; **************************************************
Global largeur=1024
For i=0 To 40
cc=cc+1
AddElement (bande_clair())
bande_clair()\x=posx+(mx/20)*cc*(i-ttt)
bande_clair()\Y=posy+bande_clair()\Y+10*i
AddElement (bande_fonce())
bande_fonce()\x=posx+(mx/20)*cc*(i-ttt)
bande_fonce()\Y=posy+bande_fonce()\Y+10*i
Next i
Repeat
ClearScreen (0)
ExamineKeyboard ()
ExamineMouse ()
If KeyboardPushed ( #PB_Key_Up )
my = my + 1
If my>=89
my=89
EndIf
EndIf
If KeyboardPushed ( #PB_Key_Down )
my = my - 1
If my<=25
my=25
EndIf
EndIf
If KeyboardPushed ( #PB_Key_Left )
mx = mx - 1
If mx<=-18
mx=-18
EndIf
EndIf
If KeyboardPushed ( #PB_Key_Right )
mx = mx + 1
If mx>=18
mx=18
EndIf
EndIf
If KeyboardPushed ( #PB_Key_Space )
vitess.f = vitess.f + 0.5
lpas.f=0.5
If vitess>3
vitess=3
EndIf
EndIf
If KeyboardReleased ( #PB_Key_Space )
vitess.f = vitess.f -1
EndIf
If MouseButton ( #PB_MouseButton_Right )
End
EndIf
; *****************************************************
largeur=1024
Debug my
cc=40
i=0
taux=50 ; joue sur la vitesse d'étroitisation de la piste chiffre plus grand= plus large
ResetList ( bande_clair())
ResetList ( bande_fonce())
ForEach bande_clair()
largeur=largeur+taux
ZoomSprite3D( #spr_clair3D ,largeur-900,10)
ZoomSprite3D( #spr_fonce3D ,largeur-900,10)
cc=cc-1
bande_clair()\x=posx+(mx/50)*cc*cc-((taux/2)*i)+400 ; le 500 recentre
bande_clair()\Y=posy-(my/10)*cc+i
Start3D ()
DisplaySprite3D ( #spr_clair3D ,bande_clair()\x,bande_clair()\Y,255)
SelectElement (bande_fonce(),40)
DeleteElement (bande_fonce())
AddElement (bande_fonce())
bande_fonce()\x=bande_clair()\x
bande_fonce()\Y=bande_clair()\Y
bande_fonce()\pos=bande_clair()\pos
If vitess<0.5
vitess=0.5
lpas=0.5
EndIf
dd.f=dd.f+lpas
If dd=20
dd=-vitess
EndIf
bande_fonce()\Y=bande_fonce()\Y+dd
DisplaySprite3D ( #spr_fonce3D ,bande_clair()\x,bande_fonce()\Y,255)
Stop3D ()
i=i+1 : If i=(41):i=0: EndIf
Next
FlipBuffers ()
ClearScreen ( RGB (0,0,0))
Event = WindowEvent ()
Delay (5)
Until Event = #PB_Event_CloseWindow
ReleaseMouse (1)
ShowCursor_ (1)
End