Pages vues depuis 25/07/2007 : 25 259 474
Index du forum »» Création-Développement »» Outrun Holly démo ;-)
@DISPLAY {width=640, height=480}
BeginDoubleBuffer
Dim ZMap[200]
;Initialize ZMap
For A = 1 To 200
ZMap[A] = 1/ (A - 240)
Next
; Normalize ZMap so the Line with the player on it is
;scale=1 (Or would be
; If we had a player sprite :))
Local b = 1 / ZMap[8]
Local b = b * 100 ;in percents because QBasic's MOD is lame
For Local A = 1 To 200
ZMap[A] = ZMap[A] * b
Next
; Draw the road
TexOffset = 100
SegY = 200
CreateBrush(1,320,1,#GRAY)
SelectBrush(1)
Line(0,0,20,0,#WHITE)
Line(300,0,320,0,#WHITE)
EndSelect
CreateBrush(2,320,1,#GRAY)
SelectBrush(2)
Line(0,0,20,0,#RED)
Line(300,0,320,0,#RED)
Line(158,0,162,0,#WHITE)
EndSelect
SetFillStyle(#FILLGRADIENT, #LINEAR, $002266, $00AAFF)
CreateBrush(3,640,280,#BLACK)
SelectBrush(3)
Box(0,0,640,280)
EndSelect
Repeat
StartTimer(1)
If IsKeyDown("UP")
scrollspeed=Min(scrollspeed+0.05,20)
Else
scrollspeed=Max(scrollspeed-0.2,0)
EndIf
; Set up the frame
Local X = 320
Local HalfWidth = 220
Local ScreenLine = 480
Local MX=(MouseX()-512)/512
For Local A = 0 To 200
X = X + MX
Local Calcule=(ZMap[A] + TexOffset) % 100
If Calcule> 50
GrassColor = #GREEN
RoadColor = #GRAY
br=1
Else
GrassColor = #OLIVE
RoadColor = #SILVER
br=2
EndIf
Local sx=((X + HalfWidth)-(X - HalfWidth))/320
DisplayBrush (br,X - HalfWidth, ScreenLine,{scalex=sx,smoothscale=False})
Line (0, ScreenLine, X - HalfWidth, ScreenLine,GrassColor)
Line (X + HalfWidth, ScreenLine, 639,ScreenLine, GrassColor)
HalfWidth = HalfWidth - 1
ScreenLine = ScreenLine - 1
Next
; Wrap positions (fractional):
TexOffset=Wrap(TexOffset + ScrollSpeed, 0, 100)
DisplayBrush (3,0,0)
; On récupère le temps du chrono
Local Temps=GetTimer(1)
; On affiche la vitesse en FPS
TextOut(0,0,Round((1/Temps)*1000))
TextOut(30,0,"Images par seconde")
TextOut(#CENTER,20,"APPUYER sur la touche Fleche HAUT pour accélérer")
TextOut(#CENTER,50,"--------------------------------------")
TextOut(#CENTER,60,"- Programme original de Lazar Zoltan -")
TextOut(#CENTER,70,"- Code source original en QBasic -")
TextOut(#CENTER,80,"- Modifié & optimiser par Artblink -")
TextOut(#CENTER,90,"--------------------------------------")
; On remet le chronomètre à zéro
ResetTimer(1)
Flip
Cls
Forever