Advertisement
Guest User

Crazycars F.L.

a guest
Nov 17th, 2012
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Basic4GL 34.92 KB | None | 0 0
  1. SCREEN 13
  2. _TITLE "CRAZY CARS FL"
  3. _ICON _LOADIMAGE("data/menu/icone.gif")
  4.  
  5. '********************************************************************
  6. '*                                                                  *
  7. '*                             CRAZY CARS                           *
  8. '*                                                                  *
  9. '*                             TITUS 1988                           *
  10. '*                                                                  *
  11. '*                remake of CPC version by FL in 2012               *
  12. '*                    http://crazycarscpc.free.fr                   *
  13. '*                                                                  *
  14. '*                      Road code by Lou Gorenfeld                  *
  15. '*                http://www.gorenfeld.net/lou/pseudo/              *
  16. '*                                                                  *
  17. '*                   run this BASIC prog only with QB64             *
  18. '*                          http://www.qb64.net                     *
  19. '*                                                                  *
  20. '*                                                                  *
  21. '********************************************************************
  22.  
  23.  
  24. pleinecran$ = "non"
  25. gameover$ = "non"
  26. credits$ = "non"
  27.  
  28. ' chargement des credits
  29.  
  30. DIM rank(16)
  31. DIM score(16)
  32. DIM nom$(16)
  33.  
  34. OPEN "hiscore.txt" FOR INPUT AS #1
  35.  
  36. FOR i = 1 TO 16
  37.     INPUT #1, rank(i), score(i), nom$(i)
  38. NEXT i
  39.  
  40. CLOSE #1
  41.  
  42. hiscore = score(1)
  43.  
  44.  
  45. '                              affichage du titre
  46. debut:
  47.  
  48. CLS
  49. decor = _LOADIMAGE("data/menu/titre.gif")
  50. _COPYPALETTE , decor
  51. _PUTIMAGE (0, 0), decor
  52.  
  53. _DISPLAY
  54.  
  55. SLEEP 4
  56.  
  57.  
  58. restart:
  59.  
  60. '                               ecran de fin
  61. IF gameover$ = "oui" THEN
  62.  
  63.     gameover$ = "non"
  64.     SCREEN 13
  65.     decor = _LOADIMAGE("data/menu/gameover.png")
  66.     _COPYPALETTE , decor
  67.     _PUTIMAGE (0, 0), decor
  68.     _DISPLAY
  69.  
  70.     DO: LOOP UNTIL _KEYDOWN(13)
  71.     SLEEP 3
  72.  
  73.     IF score < score(16) THEN GOTO menu
  74.  
  75.  
  76.     SCREEN 7: CLS , 7
  77.     PALETTE 15, 0: COLOR 15, 7
  78.  
  79.  
  80.  
  81.     IF score >= score(16) THEN
  82.  
  83.         LOCATE 3, 13: PRINT "congratulations"
  84.         LOCATE 6, 13: PRINT "you are one of"
  85.         LOCATE 7, 7: PRINT "the fastest man in the world !"
  86.  
  87.  
  88.         FOR i = 1 TO 16
  89.             IF score >= score(i) THEN LOCATE 11, 12: PRINT "your rank is"; i: GOTO suitescore
  90.  
  91.         NEXT i
  92.  
  93.         suitescore:
  94.  
  95.         IF i = 16 THEN score(16) = score
  96.  
  97.         IF i < 16 THEN score(16) = score(15): nom$(16) = nom$(15)
  98.         IF i < 15 THEN score(15) = score(14): nom$(15) = nom$(14)
  99.         IF i < 14 THEN score(14) = score(13): nom$(14) = nom$(13)
  100.         IF i < 13 THEN score(13) = score(12): nom$(13) = nom$(12)
  101.         IF i < 12 THEN score(12) = score(11): nom$(12) = nom$(11)
  102.         IF i < 11 THEN score(11) = score(10): nom$(11) = nom$(10)
  103.  
  104.  
  105.         IF i < 10 THEN score(10) = score(9): nom$(10) = nom$(9)
  106.         IF i < 9 THEN score(9) = score(8): nom$(9) = nom$(8)
  107.         IF i < 8 THEN score(8) = score(7): nom$(8) = nom$(7)
  108.         IF i < 7 THEN score(7) = score(6): nom$(7) = nom$(6)
  109.         IF i < 6 THEN score(6) = score(5): nom$(6) = nom$(5)
  110.         IF i < 5 THEN score(5) = score(4): nom$(5) = nom$(4)
  111.         IF i < 4 THEN score(4) = score(3): nom$(4) = nom$(3)
  112.         IF i < 3 THEN score(3) = score(2): nom$(3) = nom$(2)
  113.         IF i < 2 THEN score(2) = score(1): nom$(2) = nom$(1)
  114.  
  115.         score(i) = score
  116.  
  117.  
  118.  
  119.         LOCATE 13, 2: PRINT "please"
  120.         LOCATE 14, 2: PRINT "enter your name"
  121.  
  122.         DO: LOOP UNTIL INKEY$ = ""
  123.         LOCATE 14, 17: INPUT ; nom$(i)
  124.  
  125.  
  126.         _DISPLAY
  127.  
  128.  
  129.     END IF
  130.  
  131.     ' affichage des scores
  132.  
  133.     hiscore:
  134.     SCREEN 7: CLS , 7
  135.     PALETTE 15, 0: COLOR 15, 7
  136.  
  137.     LOCATE 3, 16: PRINT "hi score"
  138.  
  139.     FOR i = 1 TO 16
  140.         COLOR 15, 7: LOCATE 5 + i, 2: PRINT rank(i);
  141.         LOCATE 5 + i, 5: PRINT score(i);
  142.         LOCATE 5 + i, 15: PRINT nom$(i);
  143.         COLOR 7
  144.         FOR b = 6 + i TO 24: LOCATE b, 1: PRINT STRING$(40, 219);
  145.         NEXT b
  146.     NEXT i
  147.  
  148.  
  149.     ' sauvegarde des nouveaux scores
  150.     OPEN "hiscore.txt" FOR OUTPUT AS #1
  151.  
  152.     FOR i = 1 TO 16: PRINT #1, rank(i), score(i), nom$(i): NEXT i
  153.  
  154.     CLOSE #1
  155.  
  156.     _DISPLAY
  157.     SLEEP
  158.  
  159.  
  160.  
  161. END IF
  162.  
  163. '                                           MENU
  164.  
  165. menu:
  166.  
  167.  
  168. DO: LOOP UNTIL INKEY$ = ""
  169.  
  170. SCREEN 13: CLS
  171. decor = _LOADIMAGE("data/menu/logo.png")
  172. _COPYPALETTE , decor
  173. _PUTIMAGE (24, 46), decor
  174.  
  175. _DISPLAY
  176.  
  177. DO
  178.  
  179.     COLOR 15: _PRINTMODE _FILLBACKGROUND
  180.     LOCATE 17, 9: PRINT "       1- start          "
  181.     LOCATE 18, 9: PRINT "                         "
  182.     IF pleinecran$ = "non" THEN LOCATE 19, 9: PRINT "       2- fullscreen     "
  183.     IF pleinecran$ = "oui" THEN LOCATE 19, 9: PRINT "       2- fullscreen off "
  184.     LOCATE 20, 9: PRINT "       3- credits        "
  185.     LOCATE 21, 9: PRINT "       4- hiscore        "
  186.     LOCATE 23, 9: PRINT "       7- EXIT           "
  187.  
  188.     _DISPLAY
  189.     SLEEP
  190.  
  191.     IF _KEYDOWN(49) THEN GOTO variables
  192.     IF _KEYDOWN(50) THEN
  193.         IF pleinecran$ = "non" THEN _FULLSCREEN: pleinecran$ = "oui": GOTO debut
  194.         IF pleinecran$ = "oui" THEN _FULLSCREEN _OFF: pleinecran$ = "non": GOTO debut
  195.     END IF
  196.     IF _KEYDOWN(51) THEN GOTO credits
  197.     IF _KEYDOWN(52) THEN GOTO hiscore
  198.     IF _KEYDOWN(55) THEN END
  199.     IF _KEYDOWN(27) THEN END
  200.  
  201. LOOP
  202.  
  203.  
  204. credits:
  205.  
  206.  
  207. SCREEN 13: CLS
  208. decor = _LOADIMAGE("data/menu/mercedes.png")
  209. _PUTIMAGE (0, 0), decor
  210.  
  211. IF credits$ = "non" THEN _SNDPLAYFILE "data/sons/trantor.ogg":
  212.  
  213. COLOR 15
  214.  
  215. LOCATE 2, 24: PRINT "    CRAZY CARS   "
  216. LOCATE 3, 24: PRINT "    Titus 1988   "
  217. LOCATE 4, 24: PRINT "                 "
  218. LOCATE 5, 24: PRINT " by Eric Caen and"
  219. LOCATE 6, 24: PRINT " Olivier Corviole"
  220. LOCATE 7, 24: PRINT "                 "
  221. LOCATE 8, 24: PRINT "   CPC  version  "
  222. LOCATE 9, 24: PRINT "   JC MEYRIGNAC "
  223. LOCATE 10, 24: PRINT "   Gil  Espeche "
  224. LOCATE 11, 24: PRINT "                 "
  225. LOCATE 12, 24: PRINT "remake QB64 by FL"
  226. LOCATE 13, 24: PRINT "  road code by   "
  227. LOCATE 14, 24: PRINT "  Lou Gorenfeld  "
  228. LOCATE 15, 24: PRINT "                 "
  229. LOCATE 16, 24: PRINT " gameover picture"
  230. LOCATE 17, 24: PRINT "  Eric Cubizolle "
  231. LOCATE 18, 24: PRINT "                 "
  232. LOCATE 19, 24: PRINT "  Trantor theme  "
  233. LOCATE 20, 24: PRINT " David Whittaker "
  234. LOCATE 21, 24: PRINT "                 "
  235. LOCATE 22, 24: PRINT " special  thanks "
  236. LOCATE 23, 24: PRINT "Dr Floyd  GAMOPAT"
  237.  
  238. LOCATE 24, 7: PRINT "http://crazycarscpc.free.fr";
  239.  
  240.  
  241. _DISPLAY
  242.  
  243. SLEEP 5
  244. IF _KEYDOWN(27) THEN _SNDPLAYFILE "data/sound/nothing.ogg": credits$ = "non": GOTO menu
  245.  
  246.  
  247. decor = _LOADIMAGE("data/menu/porsche.png")
  248. _PUTIMAGE (0, 0), decor
  249.  
  250. _DISPLAY
  251. SLEEP 5
  252. IF _KEYDOWN(27) THEN _SNDPLAYFILE "data/sound/nothing.ogg": credits$ = "non": GOTO menu
  253.  
  254. decor = _LOADIMAGE("data/menu/lamborghini.png")
  255. _PUTIMAGE (0, 0), decor
  256.  
  257. _DISPLAY
  258. SLEEP 5
  259. IF _KEYDOWN(27) THEN _SNDPLAYFILE "data/sound/nothing.ogg": credits$ = "non": GOTO menu
  260.  
  261. decor = _LOADIMAGE("data/menu/ferrari.png")
  262. _PUTIMAGE (0, 0), decor
  263.  
  264. _DISPLAY
  265. SLEEP 5
  266.  
  267.  
  268.  
  269. IF _KEYDOWN(27) THEN
  270.     _SNDPLAYFILE "data/sound/nothing.ogg"
  271.     credits$ = "non"
  272.     GOTO menu
  273. ELSE credits$ = "oui": GOTO credits
  274. END IF
  275.  
  276.  
  277.  
  278.  
  279.  
  280. '                       ******************************************
  281. '                       ********        VARIABLES    ************
  282. '                       ******************************************
  283. variables:
  284.  
  285.  
  286. ombre = _LOADIMAGE("data/sprites/ombre.gif")
  287. objet = _LOADIMAGE("data/sprites/plot.bmp")
  288. ville = _LOADIMAGE("data/sprites/decor.gif")
  289. lambo = _LOADIMAGE("data/sprites/lambo.gif")
  290.  
  291. ScreenLine = 169
  292. RoadLines = 42
  293. DIM X AS SINGLE
  294. DIM DX AS SINGLE
  295. DIM DDX AS SINGLE
  296. DIM HalfWidth AS SINGLE
  297. DIM SegY AS SINGLE
  298. SegY = RoadLines
  299. DX = 0
  300. DDX = 0.3 ' angle du virage
  301.  
  302. temps = 0
  303. reftemps = 0
  304. chrono = 0
  305. chronometre = 65
  306. KMS = 0
  307. Xcar = 32
  308. Ycar = 160
  309. Yombre = 161
  310. Yplots = 140
  311. vitesse = 0
  312. vitessecompteur = 0
  313. vitesseplots = 0
  314. vitessecar = 0
  315. volant$ = "milieu"
  316. Xdecor1 = -95 ' -127+32
  317. Xdecor2 = 161 ' 129+32
  318. deport = 1
  319. sonoccupe$ = "non"
  320. refson = 0
  321. montee$ = "non"
  322. descente$ = "non"
  323. vmax$ = "non"
  324. touche$ = "non"
  325. level = 1
  326. stage = 1
  327. score = 0
  328. YlamboH = 130
  329. YlamboB = 132
  330. lambo$ = "non"
  331. transition$ = "non"
  332. decalage = 0
  333. transitionvoiture$ = "non"
  334. ferrari$ = "non"
  335. saut$ = "non"
  336. Ysaut = 130
  337. voituresaute$ = "non"
  338. refsaut = 0
  339. soncrash$ = "non"
  340. accident$ = "non"
  341. gameover$ = "non"
  342.  
  343. bosses$ = "non"
  344. bande1$ = "oui"
  345. bande2$ = "non"
  346. bande3$ = "non"
  347. bande4$ = "non"
  348. horizon = 134
  349. Ybande1 = 134 '190
  350. Ybande2 = 134 '172
  351. Ybande3 = 134 '154
  352. Ybande4 = 134 '136
  353.  
  354. hauteurdebut$ = "oui"
  355. voiturebosse$ = "non"
  356.  
  357.  
  358.  
  359. '                                   pr‚-affichage
  360.  
  361. LINE (32, 0)-(288, 129), 11, BF ' ciel bleu
  362.  
  363. '                                       son moteur
  364. _SNDPLAYFILE "data/sons/ralenti.ogg": sonoccupe$ = "oui"
  365.  
  366.  
  367.  
  368. '                       ******************************************
  369. '                       ******** boucle principale    ************
  370. '                       ******************************************
  371. DO
  372.  
  373.     temps = temps + 1
  374.  
  375.     accelere$ = "non"
  376.     volant$ = "milieu"
  377.  
  378.  
  379.     IF level = 1 THEN voiture = _LOADIMAGE("data/sprites/mercedes.gif")
  380.     IF level = 2 THEN voiture = _LOADIMAGE("data/sprites/porsche.gif")
  381.     IF level = 3 THEN voiture = _LOADIMAGE("data/sprites/ferrari.gif")
  382.  
  383.  
  384.  
  385.     ' affichages primaires
  386.  
  387.     ' herbe
  388.  
  389.     LINE (32, 130)-(288, 169), 10, BF
  390.  
  391.     ' bas de la route
  392.     LINE (32, 167)-(288, 200), 8, BF ' ciel bleu
  393.  
  394.  
  395.  
  396.  
  397.     HalfWidth = 140 '  largueur de la route
  398.     WidthStep = 3.2 '  inclinaison de la route
  399.  
  400.  
  401.     ' entr‚es clavier
  402.  
  403.     IF _KEYDOWN(19712) OR STICK(0) > 190 THEN volant$ = "gauche"
  404.  
  405.  
  406.     IF _KEYDOWN(19200) OR STICK(0) < 65 THEN volant$ = "droite"
  407.  
  408.  
  409.     IF _KEYDOWN(18432) OR STICK(1) < 65 THEN
  410.         IF touche$ = "non" AND accident$ = "non" THEN accelere$ = "oui"
  411.     END IF
  412.  
  413.  
  414.  
  415.     '                       ******************************************
  416.     '                       ********       ACTIONS        ************
  417.     '                       ******************************************
  418.  
  419.     'vitesse du jeu et son du moteur
  420.  
  421.     IF accelere$ = "oui" THEN
  422.         vitesse = vitesse + .225
  423.         IF level = 1 THEN vitessecompteur = vitessecompteur + .450
  424.         IF level = 2 THEN vitessecompteur = vitessecompteur + .5
  425.         IF level = 3 THEN vitessecompteur = vitessecompteur + .55
  426.         IF vmax$ = "non" THEN sonoccupe$ = "non"
  427.         descente$ = "non"
  428.  
  429.         IF vitesse < 100 THEN
  430.             IF montee$ = "non" THEN _SNDPLAYFILE "data/sons/montee.ogg": montee$ = "oui"
  431.         END IF
  432.  
  433.     END IF
  434.  
  435.  
  436.  
  437.  
  438.     IF accelere$ = "non" THEN
  439.         vitesse = vitesse - 0.5
  440.         IF level = 1 THEN vitessecompteur = vitessecompteur - 1.25
  441.         IF level = 2 THEN vitessecompteur = vitessecompteur - 1.3
  442.         IF level = 3 THEN vitessecompteur = vitessecompteur - 1.5
  443.         montee$ = "non": vmax$ = "non"
  444.  
  445.         IF vitesse > 0 THEN
  446.             IF descente$ = "non" THEN _SNDPLAYFILE "data/sons/descente.ogg": descente$ = "oui"
  447.         END IF
  448.  
  449.     END IF
  450.  
  451.     IF level = 3 THEN IF vitessecompteur > 250 THEN vitessecompteur = 250
  452.     IF level = 2 THEN IF vitessecompteur > 220 THEN vitessecompteur = 220
  453.     IF level = 1 THEN IF vitessecompteur > 200 THEN vitessecompteur = 200
  454.     IF vitessecompteur < 0 THEN vitessecompteur = 0
  455.  
  456.     IF vitesse > 100 THEN vitesse = 100
  457.     IF vitesse < 0 THEN vitesse = 0
  458.  
  459.  
  460.  
  461.  
  462.  
  463.     '                   vitesse de direction de la voiture
  464.  
  465.     vitessecar = 0
  466.     IF vitesse > 1 THEN vitessecar = 1
  467.     IF vitesse > 25 THEN vitessecar = 2
  468.     IF vitesse > 50 THEN vitessecar = 3
  469.     IF vitesse > 75 THEN vitessecar = 4
  470.  
  471.     IF vitessecar > 0 THEN
  472.  
  473.         IF volant$ = "gauche" THEN
  474.             IF voiturebosse$ = "non" THEN Xcar = Xcar + vitessecar
  475.             IF voiturebosse$ = "oui" THEN Xcar = Xcar - vitessecar
  476.  
  477.  
  478.             IF level = 1 THEN voiture = _LOADIMAGE("data/sprites/mercedesD.gif")
  479.             IF level = 2 THEN voiture = _LOADIMAGE("data/sprites/porscheD.gif")
  480.             IF level = 3 THEN voiture = _LOADIMAGE("data/sprites/ferrariD.gif")
  481.         END IF
  482.  
  483.         IF volant$ = "droite" THEN
  484.             IF voiturebosse$ = "non" THEN Xcar = Xcar - vitessecar
  485.             IF voiturebosse$ = "oui" THEN Xcar = Xcar + vitessecar
  486.  
  487.  
  488.             IF level = 1 THEN voiture = _LOADIMAGE("data/sprites/mercedesG.gif")
  489.             IF level = 2 THEN voiture = _LOADIMAGE("data/sprites/porscheG.gif")
  490.             IF level = 3 THEN voiture = _LOADIMAGE("data/sprites/ferrariG.gif")
  491.         END IF
  492.  
  493.         IF SegY < RoadLines THEN
  494.  
  495.             'decor qui bouge
  496.             IF DDX > 0 THEN
  497.                 Xdecor1 = Xdecor1 - 1: Xdecor2 = Xdecor2 - 1
  498.             END IF
  499.  
  500.             IF DDX < 0 THEN
  501.                 Xdecor1 = Xdecor1 + 1: Xdecor2 = Xdecor2 + 1
  502.             END IF
  503.  
  504.  
  505.             ' deport de la voiture
  506.  
  507.             deport = 1
  508.  
  509.             IF vitessecar > 3 THEN
  510.                 IF DDX = 0.2 OR DDX = -0.2 THEN deport = 0.5
  511.  
  512.                 IF DDX = 0.3 OR DDX = -0.3 THEN deport = -0.5
  513.  
  514.                 IF DDX = 0.4 OR DDX = -0.4 THEN deport = -0.5
  515.             END IF
  516.  
  517.             IF DDX > 0 THEN
  518.                 Xcar = Xcar - vitessecar + deport
  519.             END IF
  520.  
  521.             IF DDX < 0 THEN
  522.                 Xcar = Xcar + vitessecar - deport
  523.             END IF
  524.  
  525.         END IF
  526.  
  527.     END IF
  528.  
  529.     '                ralentissement de la voiture dans les virages exterieurs
  530.  
  531.     touche$ = "non"
  532.     IF DDX > 0 AND SegY < RoadLines THEN
  533.         IF Xcar <= 32 AND vitesse >= 11 THEN
  534.             touche$ = "oui"
  535.         END IF
  536.  
  537.     END IF
  538.  
  539.     IF DDX < 0 AND SegY < RoadLines THEN
  540.         IF Xcar >= 250 AND vitesse >= 11 THEN
  541.             touche$ = "oui"
  542.         END IF
  543.     END IF
  544.  
  545.  
  546.     '                           avancement de la bande des plots
  547.     vitesseplots = 0
  548.     IF vitesse > 1 THEN vitesseplots = 1
  549.     IF vitesse > 30 THEN vitesseplots = 3
  550.     IF vitesse > 60 THEN vitesseplots = 5
  551.  
  552.     IF vitesseplots > 0 THEN
  553.         Yplots = Yplots + (vitesseplots / 2)
  554.     END IF
  555.  
  556.     '                               passage de la lamborghini
  557.  
  558.  
  559.     IF vitesse = 0 AND accident$ = "non" THEN lambo$ = "non"
  560.  
  561.     IF lambo$ = "oui" THEN
  562.  
  563.         IF accelere$ = "oui" THEN
  564.             vitesselambo = 1
  565.         END IF
  566.  
  567.         IF accelere$ = "non" THEN
  568.             vitesselambo = -1
  569.         END IF
  570.  
  571.         YlamboH = YlamboH + (vitesselambo / 2)
  572.  
  573.  
  574.     END IF
  575.  
  576.  
  577.     '                           accident avec la lamborghini
  578.  
  579.     IF saut$ = "non" THEN
  580.         IF YlamboH > 150 AND Xcar > 61 AND Xcar < 188 THEN
  581.             accident$ = "oui": refsaut = temps
  582.             sonoccupe$ = "non":
  583.             IF soncrash$ = "non" THEN _SNDPLAYFILE "data/sons/crash.ogg": soncrash$ = "oui"
  584.         END IF
  585.     END IF
  586.  
  587.  
  588.     '                            avancement de la ligne de saut
  589.  
  590.     IF saut$ = "oui" THEN
  591.         IF vitesse > 8 THEN Ysaut = Ysaut + 1
  592.  
  593.         IF Ysaut = Ycar THEN voituresaute$ = "oui": refsaut = temps
  594.     END IF
  595.  
  596.     '                           saut de la voiture
  597.  
  598.     IF voituresaute$ = "oui" THEN
  599.         IF temps > refsaut + 60 THEN voituresaute$ = "non": Ycar = 160: GOTO limites
  600.         IF temps > refsaut + 20 THEN Ycar = Ycar + 6: GOTO limites
  601.         IF saut$ = "oui" THEN Ycar = Ycar - 5
  602.     END IF
  603.  
  604.     IF accident$ = "oui" THEN
  605.         accelere$ = "non": vitesse = 0: vitessecompteur = 0: sonoccupe$ = "non"
  606.         IF temps > refsaut + 60 THEN
  607.             accident$ = "non": Ycar = 160: soncrash$ = "non": lambo$ = "non"
  608.             _SNDPLAYFILE "data/sons/ralenti.ogg": sonoccupe$ = "oui": refson = temps:
  609.             GOTO limites
  610.         END IF
  611.         IF temps > refsaut + 20 THEN Ycar = Ycar + 6: GOTO limites
  612.         Ycar = Ycar - 5
  613.     END IF
  614.  
  615.  
  616.     '                     bandes des bosses
  617.     IF bosses$ = "oui" THEN
  618.  
  619.         vitessebande = 0
  620.         IF vitesse > 1 THEN vitessebande = 1
  621.         IF vitesse > 30 THEN vitessebande = 2
  622.  
  623.  
  624.         IF vitesse > 0 THEN
  625.  
  626.             IF bande1$ = "oui" THEN Ybande1 = Ybande1 + vitessebande
  627.             IF bande2$ = "oui" THEN Ybande2 = Ybande2 + vitessebande
  628.             IF bande3$ = "oui" THEN Ybande3 = Ybande3 + vitessebande
  629.             IF bande4$ = "oui" THEN Ybande4 = Ybande4 + vitessebande
  630.  
  631.  
  632.  
  633.             IF Ybande1 > horizon + 16 THEN bande2$ = "oui"
  634.             IF Ybande2 > horizon + 16 THEN bande3$ = "oui"
  635.             IF Ybande3 > horizon + 16 THEN bande4$ = "oui"
  636.             IF Ybande4 > horizon + 16 THEN bande1$ = "oui"
  637.  
  638.         END IF
  639.  
  640.     END IF
  641.     '                           saut sur les bosses
  642.     IF bosses$ = "non" THEN
  643.         Ybande1 = 134
  644.         Ybande2 = 134
  645.         Ybande3 = 134
  646.         Ybande4 = 134
  647.         bande1$ = "oui"
  648.         bande2$ = "non"
  649.         bande3$ = "non"
  650.         bande4$ = "non"
  651.  
  652.     END IF
  653.  
  654.     IF bosses$ = "oui" THEN
  655.         IF Ybande1 > Ycar AND Ybande1 < Ycar + 5 THEN voiturebosse$ = "oui": GOTO suite
  656.  
  657.         IF Ybande2 > Ycar AND Ybande2 < Ycar + 5 THEN voiturebosse$ = "oui": GOTO suite
  658.  
  659.         IF Ybande3 > Ycar AND Ybande3 < Ycar + 5 THEN voiturebosse$ = "oui": GOTO suite
  660.  
  661.         IF Ybande4 > Ycar AND Ybande4 < Ycar + 5 THEN
  662.             voiturebosse$ = "oui": GOTO suite
  663.         ELSE voiturebosse$ = "non"
  664.         END IF
  665.  
  666.         suite:
  667.  
  668.  
  669.     END IF
  670.  
  671.  
  672.     '                       ******************************************
  673.     '                       ********    LIMITES DES VARIABLES ********
  674.     '                       ******************************************
  675.     limites:
  676.  
  677.     IF SegY < 18 THEN SegY = 18
  678.     IF SegY > RoadLines THEN SegY = RoadLines
  679.  
  680.     IF Xdecor1 > 32 THEN Xdecor1 = -223: Xdecor2 = 33
  681.     IF Xdecor2 < 33 THEN Xdecor1 = 32: Xdecor2 = 288
  682.  
  683.     IF Xcar < 0 THEN Xcar = 0
  684.     IF Xcar > 250 THEN Xcar = 250
  685.  
  686.  
  687.  
  688.     '                           sortie de la bande des plots
  689.     IF Yplots > 170 THEN Yplots = 130
  690.  
  691.  
  692.  
  693.  
  694.     '                           sortie de la lamborghini
  695.  
  696.  
  697.     'lambo:
  698.     IF YlamboH < 130 THEN YlamboH = 130
  699.     IF YlamboB < 132 THEN YlamboB = 132
  700.  
  701.     IF YlamboH > 160 THEN lambo$ = "non"
  702.     IF YlamboB > 190 THEN lambo$ = "non"
  703.  
  704.  
  705.     IF lambo$ = "non" THEN YlamboB = 132: YlamboH = 130
  706.  
  707.  
  708.     '                            sortie de la ligne de saut
  709.  
  710.     IF Ysaut > 200 THEN Ysaut = 130: saut$ = "non"
  711.  
  712.  
  713.     '                           sortie des bandes
  714.  
  715.     IF bosses$ = "oui" THEN
  716.         IF Ybande1 > 199 THEN Ybande1 = horizon: bande1$ = "non"
  717.  
  718.         IF Ybande2 > 199 THEN Ybande2 = horizon: bande2$ = "non"
  719.  
  720.         IF Ybande3 > 199 THEN Ybande3 = horizon: bande3$ = "non"
  721.  
  722.         IF Ybande4 > 199 THEN Ybande4 = horizon: bande4$ = "non"
  723.     END IF
  724.  
  725.  
  726.     '                            hauteur de la voiture et son ombre
  727.  
  728.  
  729.     IF voiturebosse$ = "oui" THEN Ycar = Ycar - 3
  730.  
  731.     IF voiturebosse$ = "non" AND voituresaute$ = "non" AND accident$ = "non" THEN Ycar = Ycar + 5
  732.  
  733.  
  734.     IF hauteurdebut$ = "oui" THEN IF Ycar >= 160 THEN Ycar = 160
  735.  
  736.     IF hauteurdebut$ = "non" THEN IF Ycar >= 155 THEN Ycar = 155
  737.  
  738.  
  739.  
  740.  
  741.  
  742.     IF Ycar < 50 THEN Ycar = 50
  743.  
  744.  
  745.     IF voituresaute$ = "oui" THEN Yombre = 156
  746.     IF accident$ = "oui" THEN Yombre = 156
  747.     IF bosses$ = "oui" THEN Yombre = 156
  748.  
  749.     IF voituresaute$ = "non" AND accident$ = "non" AND bosses$ = "non" THEN Yombre = Ycar + 1
  750.  
  751.  
  752.  
  753.     '                       ******************************************
  754.     '                       ******** gestion de la route  ************
  755.     '                       ******************************************
  756.  
  757.     IF vitesse > 0 THEN
  758.  
  759.         KMS = KMS + 1
  760.         score = score + 10
  761.         'IF score > hiscore THEN hiscore = score
  762.  
  763.         IF KMS > 4400 THEN
  764.             transition$ = "non"
  765.             IF level < 3 THEN stage = 1
  766.             IF level = 3 THEN stage = stage + 1
  767.             level = level + 1: KMS = 0
  768.             chronometre = chronometre + 30: score = score + 100
  769.             IF ferrari$ = "non" THEN transitionvoiture$ = "oui": reftemps = temps
  770.             GOTO transition
  771.         END IF
  772.  
  773.         IF KMS > 4301 THEN GOTO transition
  774.  
  775.         IF KMS > 4300 THEN saut$ = "oui": GOTO transition
  776.  
  777.         IF KMS > 4200 THEN SegY = SegY + 1: transition$ = "oui": GOTO transition
  778.  
  779.         IF KMS > 4000 THEN DDX = -0.4: SegY = SegY - 1: GOTO transition
  780.  
  781.         IF KMS > 3901 THEN GOTO transition
  782.  
  783.         IF KMS > 3900 THEN saut$ = "oui": GOTO transition
  784.  
  785.         IF KMS > 3850 THEN bosses$ = "non": GOTO transition
  786.  
  787.         IF KMS > 3800 THEN SegY = SegY + 1: GOTO transition
  788.  
  789.         IF KMS > 3600 THEN bosses$ = "oui": DDX = 0.4: SegY = SegY - 1: GOTO transition
  790.  
  791.         IF KMS > 3504 THEN GOTO transition
  792.  
  793.         IF KMS > 3503 THEN saut$ = "oui": GOTO transition
  794.  
  795.         IF KMS > 3500 THEN RoadLines = RoadLines + 1: decalage = decalage - 1
  796.  
  797.         IF KMS > 3400 THEN bosses$ = "non": SegY = SegY + 1: GOTO transition
  798.  
  799.         IF KMS > 3200 THEN DDX = -0.3: SegY = SegY - 1: GOTO transition
  800.  
  801.         IF KMS > 3001 THEN GOTO transition
  802.  
  803.         IF KMS > 3000 THEN
  804.             stage = stage + 1: chronometre = chronometre + 25
  805.             score = score + 100: transition$ = "non"
  806.             GOTO transition
  807.         END IF
  808.  
  809.         IF KMS > 2800 THEN transition$ = "oui": GOTO transition
  810.  
  811.         IF KMS > 2704 THEN GOTO transition
  812.  
  813.         IF KMS > 2703 THEN lambo$ = "oui": GOTO transition
  814.  
  815.         IF KMS > 2700 THEN RoadLines = RoadLines - 1: decalage = decalage + 1
  816.  
  817.         IF KMS > 2600 THEN SegY = SegY + 1: GOTO transition
  818.  
  819.         IF KMS > 2400 THEN bosses$ = "non": DDX = 0.2: SegY = SegY - 1: GOTO transition
  820.  
  821.         IF KMS > 2300 THEN bosses$ = "oui": GOTO transition
  822.  
  823.         IF KMS > 2200 THEN SegY = SegY + 1: GOTO transition
  824.  
  825.         IF KMS > 2106 THEN GOTO transition
  826.  
  827.         IF KMS > 2105 THEN lambo$ = "oui": GOTO transition
  828.  
  829.         IF KMS > 2100 THEN Ycar = Ycar - 1: GOTO transition
  830.  
  831.         IF KMS > 2000 THEN bosses$ = "non": DDX = -0.2: SegY = SegY - 1: GOTO transition
  832.  
  833.         IF KMS > 1900 THEN bosses$ = "oui": GOTO transition
  834.  
  835.         IF KMS > 1800 THEN SegY = SegY + 1: GOTO transition
  836.  
  837.         IF KMS > 1704 THEN GOTO transition
  838.  
  839.         IF KMS > 1703 THEN lambo$ = "oui": GOTO transition
  840.  
  841.         IF KMS > 1700 THEN RoadLines = RoadLines + 1: decalage = decalage - 1
  842.  
  843.         IF KMS > 1600 THEN DDX = -0.2: SegY = SegY - 1: GOTO transition
  844.  
  845.         IF KMS > 1501 THEN GOTO transition
  846.  
  847.         IF KMS > 1500 THEN
  848.             stage = stage + 1: chronometre = chronometre + 25
  849.             score = score + 100: transition$ = "non"
  850.             GOTO transition
  851.         END IF
  852.  
  853.         IF KMS > 1301 THEN transition$ = "oui": GOTO transition
  854.  
  855.         IF KMS > 1300 THEN lambo$ = "oui": GOTO transition
  856.  
  857.         IF KMS > 1258 THEN GOTO transition
  858.  
  859.         IF KMS > 1253 THEN Ycar = Ycar + 1: GOTO transition
  860.  
  861.         IF KMS > 1200 THEN SegY = SegY + 1: GOTO transition
  862.  
  863.         IF KMS > 1000 THEN bosses$ = "non": DDX = 0.2: SegY = SegY - 1: GOTO transition
  864.  
  865.         IF KMS > 903 THEN GOTO transition
  866.  
  867.         IF KMS > 900 THEN RoadLines = RoadLines - 1: decalage = decalage + 1: bosses$ = "oui":
  868.  
  869.         IF KMS > 800 THEN SegY = SegY + 1: GOTO transition
  870.  
  871.         IF KMS > 703 THEN GOTO transition
  872.  
  873.         IF KMS > 700 THEN RoadLines = RoadLines + 1: decalage = decalage - 1
  874.  
  875.         IF KMS > 600 THEN bosses$ = "non": DDX = -0.1: SegY = SegY - 1: GOTO transition
  876.  
  877.         IF KMS > 502 THEN GOTO transition
  878.  
  879.         IF KMS > 500 THEN RoadLines = RoadLines + 1: decalage = decalage - 1: bosses$ = "oui":
  880.  
  881.         IF KMS > 400 THEN SegY = SegY + 1: GOTO transition
  882.  
  883.         IF KMS > 350 THEN
  884.             transitionvoiture$ = "non"
  885.             IF level = 3 THEN ferrari$ = "oui"
  886.             GOTO transition
  887.         END IF
  888.         IF KMS > 308 THEN GOTO transition
  889.  
  890.         IF KMS > 303 THEN Ycar = Ycar - 1: hauteurdebut$ = "non": GOTO transition
  891.  
  892.         IF KMS > 300 THEN RoadLines = RoadLines - 1: decalage = decalage + 1: Ycar = Ycar - 1
  893.  
  894.         IF KMS > 200 THEN DDX = 0.1: SegY = SegY - 1: GOTO transition
  895.         ScreenLine = 169: decalage = 0
  896.     END IF
  897.  
  898.  
  899.  
  900.  
  901.     ' ***************************************************************************
  902.     ' **********************       TRANSITIONS ENTRE LES STAGES  ****************
  903.     ' ***************************************************************************
  904.  
  905.     transition:
  906.  
  907.  
  908.     IF level > 3 THEN level = 3
  909.     IF level < 3 THEN IF stage > 3 THEN stage = 3
  910.  
  911.  
  912.     ' transitions entre les autos
  913.  
  914.     IF transitionvoiture$ = "oui" THEN
  915.  
  916.         IF level = 2 THEN
  917.             IF temps > reftemps + 20 THEN reftemps = temps: GOTO affichage
  918.             IF temps > reftemps + 15 THEN voiture = _LOADIMAGE("data/sprites/mercedes.gif"): GOTO affichage
  919.             IF temps > reftemps + 10 THEN voiture = _LOADIMAGE("data/sprites/porsche.gif"): GOTO affichage
  920.             IF temps > reftemps + 5 THEN voiture = _LOADIMAGE("data/sprites/mercedes.gif"): GOTO affichage
  921.         END IF
  922.  
  923.         IF level = 3 THEN
  924.             IF temps > reftemps + 20 THEN reftemps = temps: GOTO affichage
  925.             IF temps > reftemps + 15 THEN voiture = _LOADIMAGE("data/sprites/porsche.gif"): GOTO affichage
  926.             IF temps > reftemps + 10 THEN voiture = _LOADIMAGE("data/sprites/ferrari.gif"): GOTO affichage
  927.             IF temps > reftemps + 5 THEN voiture = _LOADIMAGE("data/sprites/porsche.gif"): GOTO affichage
  928.         END IF
  929.  
  930.     END IF
  931.  
  932.  
  933.  
  934.  
  935.  
  936.     ' ***************************************************************************
  937.     ' **********************       AFFICHAGE            *************************
  938.     ' ***************************************************************************
  939.  
  940.     affichage:
  941.  
  942.     ' affichage des lignes de route
  943.  
  944.     X = 160 ' recentre la route
  945.  
  946.     DX = 0
  947.  
  948.  
  949.     ScreenLine = 169 - decalage
  950.  
  951.     FOR A = 1 TO RoadLines
  952.  
  953.         LINE (X - HalfWidth, ScreenLine)-(X + HalfWidth, ScreenLine), 8
  954.  
  955.         IF saut$ = "oui" THEN
  956.             IF ScreenLine = Ysaut THEN
  957.                 LINE (X - (HalfWidth + (HalfWidth \ 2.5)), ScreenLine)-(X + (HalfWidth + (HalfWidth \ 2.5)), ScreenLine + 15), 8, BF
  958.             END IF
  959.         END IF
  960.  
  961.  
  962.         IF bosses$ = "oui" THEN
  963.             IF ScreenLine = (Ybande1 + 5) THEN LINE (X - HalfWidth - (HalfWidth \ 18), ScreenLine)-(X + HalfWidth + (HalfWidth \ 18), ScreenLine), 8
  964.             IF ScreenLine = (Ybande1 + 4) THEN LINE (X - HalfWidth - (HalfWidth \ 16), ScreenLine)-(X + HalfWidth + (HalfWidth \ 16), ScreenLine), 8
  965.             IF ScreenLine = (Ybande1 + 3) THEN LINE (X - HalfWidth - (HalfWidth \ 14), ScreenLine)-(X + HalfWidth + (HalfWidth \ 14), ScreenLine), 8
  966.             IF ScreenLine = (Ybande1 + 2) THEN LINE (X - HalfWidth - (HalfWidth \ 12), ScreenLine)-(X + HalfWidth + (HalfWidth \ 12), ScreenLine), 8
  967.             IF ScreenLine = (Ybande1 + 1) THEN LINE (X - HalfWidth - (HalfWidth \ 10), ScreenLine)-(X + HalfWidth + (HalfWidth \ 10), ScreenLine), 8
  968.             IF ScreenLine = Ybande1 THEN LINE (X - HalfWidth - (HalfWidth \ 8), ScreenLine)-(X + HalfWidth + (HalfWidth \ 8), ScreenLine), 8
  969.  
  970.             IF ScreenLine = (Ybande2 + 5) THEN LINE (X - HalfWidth - (HalfWidth \ 18), ScreenLine)-(X + HalfWidth + (HalfWidth \ 18), ScreenLine), 8
  971.             IF ScreenLine = (Ybande2 + 4) THEN LINE (X - HalfWidth - (HalfWidth \ 16), ScreenLine)-(X + HalfWidth + (HalfWidth \ 16), ScreenLine), 8
  972.             IF ScreenLine = (Ybande2 + 3) THEN LINE (X - HalfWidth - (HalfWidth \ 14), ScreenLine)-(X + HalfWidth + (HalfWidth \ 14), ScreenLine), 8
  973.             IF ScreenLine = (Ybande2 + 2) THEN LINE (X - HalfWidth - (HalfWidth \ 12), ScreenLine)-(X + HalfWidth + (HalfWidth \ 12), ScreenLine), 8
  974.             IF ScreenLine = (Ybande2 + 1) THEN LINE (X - HalfWidth - (HalfWidth \ 10), ScreenLine)-(X + HalfWidth + (HalfWidth \ 10), ScreenLine), 8
  975.             IF ScreenLine = Ybande2 THEN LINE (X - HalfWidth - (HalfWidth \ 8), ScreenLine)-(X + HalfWidth + (HalfWidth \ 8), ScreenLine), 8
  976.  
  977.  
  978.             IF ScreenLine = (Ybande3 + 5) THEN LINE (X - HalfWidth - (HalfWidth \ 18), ScreenLine)-(X + HalfWidth + (HalfWidth \ 18), ScreenLine), 8
  979.             IF ScreenLine = (Ybande3 + 4) THEN LINE (X - HalfWidth - (HalfWidth \ 16), ScreenLine)-(X + HalfWidth + (HalfWidth \ 16), ScreenLine), 8
  980.             IF ScreenLine = (Ybande3 + 3) THEN LINE (X - HalfWidth - (HalfWidth \ 14), ScreenLine)-(X + HalfWidth + (HalfWidth \ 14), ScreenLine), 8
  981.             IF ScreenLine = (Ybande3 + 2) THEN LINE (X - HalfWidth - (HalfWidth \ 12), ScreenLine)-(X + HalfWidth + (HalfWidth \ 12), ScreenLine), 8
  982.             IF ScreenLine = (Ybande3 + 1) THEN LINE (X - HalfWidth - (HalfWidth \ 10), ScreenLine)-(X + HalfWidth + (HalfWidth \ 10), ScreenLine), 8
  983.             IF ScreenLine = Ybande3 THEN LINE (X - HalfWidth - (HalfWidth \ 8), ScreenLine)-(X + HalfWidth + (HalfWidth \ 8), ScreenLine), 8
  984.  
  985.  
  986.             IF ScreenLine = (Ybande4 + 5) THEN LINE (X - HalfWidth - (HalfWidth \ 18), ScreenLine)-(X + HalfWidth + (HalfWidth \ 18), ScreenLine), 8
  987.             IF ScreenLine = (Ybande4 + 4) THEN LINE (X - HalfWidth - (HalfWidth \ 16), ScreenLine)-(X + HalfWidth + (HalfWidth \ 16), ScreenLine), 8
  988.             IF ScreenLine = (Ybande4 + 3) THEN LINE (X - HalfWidth - (HalfWidth \ 14), ScreenLine)-(X + HalfWidth + (HalfWidth \ 14), ScreenLine), 8
  989.             IF ScreenLine = (Ybande4 + 2) THEN LINE (X - HalfWidth - (HalfWidth \ 12), ScreenLine)-(X + HalfWidth + (HalfWidth \ 12), ScreenLine), 8
  990.             IF ScreenLine = (Ybande4 + 1) THEN LINE (X - HalfWidth - (HalfWidth \ 10), ScreenLine)-(X + HalfWidth + (HalfWidth \ 10), ScreenLine), 8
  991.             IF ScreenLine = Ybande4 THEN LINE (X - HalfWidth - (HalfWidth \ 8), ScreenLine)-(X + HalfWidth + (HalfWidth \ 8), ScreenLine), 8
  992.  
  993.  
  994.         END IF
  995.  
  996.  
  997.         '           *************info pour les plots*********
  998.         IF ScreenLine = Yplots THEN inforoute = HalfWidth: infoX = X
  999.         IF ScreenLine = YlamboH THEN infolambo = HalfWidth: Xlambo = X
  1000.         '           *****************************************
  1001.  
  1002.  
  1003.         HalfWidth = HalfWidth - WidthStep
  1004.         ScreenLine = ScreenLine - 1
  1005.  
  1006.         IF A > SegY THEN
  1007.             DX = DX + DDX
  1008.         END IF
  1009.  
  1010.         X = X + DX
  1011.  
  1012.     NEXT A
  1013.  
  1014.  
  1015.  
  1016.     '                                       affichage des plots
  1017.  
  1018.     IF Yplots > 131 AND Yplots < 169 THEN
  1019.         'LINE (0, Yplots)-(320, Yplots), 4
  1020.         _PUTIMAGE (infoX + inforoute, Yplots - 8), objet
  1021.         _PUTIMAGE (infoX - inforoute - 5, Yplots - 8), objet
  1022.     END IF
  1023.  
  1024.  
  1025.  
  1026.  
  1027.     '                                affichage de la lamborghini
  1028.  
  1029.  
  1030.     IF lambo$ = "oui" THEN
  1031.  
  1032.         YlamboB = YlamboH + (infolambo / 4)
  1033.  
  1034.         _CLEARCOLOR _RGB(99, 97, 99), lambo
  1035.         _PUTIMAGE (Xlambo - ((infolambo / 2.25) / 2), YlamboH)-(Xlambo + ((infolambo / 2.25) / 2), YlamboB), lambo
  1036.     END IF
  1037.  
  1038.  
  1039.     '                                        ciel bleu
  1040.     LINE (32, 0)-(288, 129), 11, BF
  1041.  
  1042.  
  1043.     '                                          decor
  1044.  
  1045.     _PUTIMAGE (Xdecor1, 101), ville
  1046.     _PUTIMAGE (Xdecor2, 101), ville
  1047.  
  1048.  
  1049.     '                               affichage du score
  1050.  
  1051.     COLOR 0: _PRINTMODE _KEEPBACKGROUND
  1052.     LOCATE 1, 6: PRINT "SCORE": LOCATE 2, 6: PRINT score
  1053.     LOCATE 1, 15: PRINT "HI": LOCATE 2, 15: PRINT score(1)
  1054.  
  1055.  
  1056.     '                               affichage de la vitesse
  1057.  
  1058.     LOCATE 1, 31: PRINT "SPEED":
  1059.     LOCATE 2, 31: PRINT vitessecompteur
  1060.     _PRINTMODE _FILLBACKGROUND
  1061.     COLOR 11: LOCATE 2, 37: PRINT STRING$(2, 219)
  1062.     IF vitessecompteur > 199 THEN LOCATE 2, 36: PRINT STRING$(2, 219)
  1063.  
  1064.  
  1065.     '                               affichage des stages
  1066.     COLOR 4: _PRINTMODE _KEEPBACKGROUND
  1067.     LOCATE 5, 18: PRINT "LEVEL": LOCATE 6, 19: PRINT level
  1068.     IF transition$ = "non" THEN LOCATE 8, 18: PRINT "STAGE": LOCATE 9, 19: PRINT stage
  1069.     _PRINTMODE _FILLBACKGROUND
  1070.  
  1071.     IF transition$ = "oui" THEN
  1072.         IF chronometre >= 10 THEN
  1073.             COLOR 4: _PRINTMODE _KEEPBACKGROUND
  1074.  
  1075.             IF temps > reftemps + 20 THEN
  1076.                 COLOR 11: LOCATE 8, 13: PRINT STRING$(15, 219): reftemps = temps: GOTO temps
  1077.             END IF
  1078.             IF temps > reftemps + 15 THEN LOCATE 8, 13: PRINT "SOON TIME BONUS": GOTO temps
  1079.             IF temps > reftemps + 10 THEN COLOR 11: LOCATE 8, 13: PRINT STRING$(15, 219): GOTO temps
  1080.             IF temps > reftemps + 5 THEN LOCATE 8, 13: PRINT "SOON TIME BONUS": GOTO temps
  1081.             COLOR 11: LOCATE 8, 13: PRINT STRING$(15, 219)
  1082.         END IF
  1083.  
  1084.         IF chronometre < 10 THEN
  1085.             COLOR 4: _PRINTMODE _KEEPBACKGROUND
  1086.  
  1087.             IF temps > reftemps + 20 THEN
  1088.                 COLOR 11: LOCATE 8, 16: PRINT STRING$(15, 219): reftemps = temps: GOTO temps
  1089.             END IF
  1090.             IF temps > reftemps + 15 THEN LOCATE 8, 16: PRINT "HURRY UP": GOTO temps
  1091.             IF temps > reftemps + 10 THEN COLOR 11: LOCATE 8, 16: PRINT STRING$(15, 219): GOTO temps
  1092.             IF temps > reftemps + 5 THEN LOCATE 8, 16: PRINT "HURRY UP": GOTO temps
  1093.             COLOR 11: LOCATE 8, 16: PRINT STRING$(15, 219)
  1094.         END IF
  1095.  
  1096.     END IF
  1097.     temps:
  1098.  
  1099.     '                               affichage du temps
  1100.  
  1101.     IF temps > chrono + 50 THEN
  1102.         chronometre = chronometre - 1
  1103.         chrono = temps
  1104.     END IF
  1105.  
  1106.     IF chronometre < 10 THEN transition$ = "oui"
  1107.  
  1108.     IF chronometre < 0 THEN chronometre = 0: gameover$ = "oui": _SNDPLAYFILE "nothing.ogg"
  1109.  
  1110.     COLOR 0: _PRINTMODE _KEEPBACKGROUND
  1111.     LOCATE 1, 25: PRINT "TIME": LOCATE 2, 27: PRINT chronometre
  1112.     _PRINTMODE _FILLBACKGROUND
  1113.  
  1114.  
  1115.     '                                   affichage de la voiture
  1116.     _CLEARCOLOR _RGB(99, 97, 99), voiture
  1117.     _PUTIMAGE (Xcar, Yombre), ombre
  1118.     _PUTIMAGE (Xcar, Ycar), voiture
  1119.  
  1120.     ' bords noirs
  1121.     LINE (0, 0)-(31, 200), 0, BF
  1122.     LINE (289, 0)-(320, 200), 0, BF
  1123.  
  1124.  
  1125.     '                                   sons du moteur
  1126.  
  1127.     IF soncrash$ = "non" THEN
  1128.         IF sonoccupe$ = "oui" THEN
  1129.             IF temps > refson + 100 THEN sonoccupe$ = "non": vmax$ = "non"
  1130.         END IF
  1131.  
  1132.         IF sonoccupe$ = "non" THEN
  1133.             IF vitesse = 0 THEN _SNDPLAYFILE "data/sons/ralenti.ogg": sonoccupe$ = "oui": refson = temps: GOTO zapralenti
  1134.             IF vitesse < 30 AND descente$ = "oui" THEN _SNDPLAYFILE "data/sons/ralenti.ogg": sonoccupe$ = "oui": refson = temps
  1135.  
  1136.             zapralenti:
  1137.             IF vitesse = 100 AND vmax$ = "non" THEN
  1138.                 _SNDPLAYFILE "data/sons/afond.ogg":
  1139.                 montee$ = "non": sonoccupe$ = "oui": vmax$ = "oui": refson = temps
  1140.             END IF
  1141.  
  1142.         END IF
  1143.     END IF
  1144.  
  1145.  
  1146.  
  1147.     _DISPLAY
  1148.  
  1149.     _LIMIT 50
  1150.  
  1151.  
  1152.     IF _KEYDOWN(27) THEN
  1153.         _SNDPLAYFILE "data/sons/nothing.ogg": GOTO restart
  1154.     END IF
  1155.  
  1156.  
  1157.     IF gameover$ = "oui" THEN
  1158.         _PRINTMODE _FILLBACKGROUND
  1159.         COLOR 11: LOCATE 8, 16: PRINT STRING$(15, 219)
  1160.         _PRINTMODE _KEEPBACKGROUND
  1161.         COLOR 4: LOCATE 8, 16: PRINT "GAME OVER"
  1162.         _DISPLAY
  1163.         SLEEP 4:
  1164.         DO: LOOP UNTIL INKEY$ = ""
  1165.         GOTO restart
  1166.     END IF
  1167.  
  1168. LOOP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement