'
' Rider : (M1)
'
' paramètres :
?position = 0' de la caméra
?distance = 0' murs créés
?horizon = 200' distance de vue
?bloc = 16' taille d'un bloc (route, mur...)
?index = 0' nombre de murs
?joueur = 0
?vitesse = 0.5
?vitesse_min = 0.5
?vitesse_max = 3.0
' scène
delete "light"
power "glow" to 120
show fog #000 to ?horizon
'
color #fff
create sprite 15 as "joueur"
add "joueur" frame 5, 1, 1 to 11, 2, 15
add "joueur" frame 1, 1, 2 to 15, 1, 6
zoom "joueur" to 0.15
'
goto "jeu"
label "creer mur"
param ?cote
?index + 1
?objet = "mur-?index"
create sprite ?bloc as ?objet
?hauteur = random ?bloc / 2 to ?bloc
?altern = random 1 to ?hauteur
color #020
add ?objet box 1, 1, 1 to 8, ?hauteur, ?bloc
color #8f0
add ?objet frame 1, 1, 1 to 8, ?hauteur, ?bloc
add ?objet frame 1, 1, 1 to 8, ?altern, ?altern
if ?cote = "gauche"
move ?objet to -?bloc / 2, 0, ?distance
turn z ?objet to 20
center ?objet to 8, 1, 1
else
move ?objet to ?bloc / 2, 0, ?distance
turn z ?objet to -20
center ?objet to 1, 1, 1
end
return
label "creer route"
?nom = "route-?index"
create sprite ?bloc as ?nom
'add ?nom frame 1, 1, 1 to ?bloc, 1, ?bloc
add ?nom line 1, 1, 1 to 1, 1, ?bloc
add ?nom line 6, 1, 1 to 6, 1, ?bloc
add ?nom line 11, 1, 1 to 11, 1, ?bloc
add ?nom line 16, 1, 1 to 16, 1, ?bloc
move ?nom to 0, 0, ?distance
if (dice 1 to 10) = 1
?nom = "toit-?index"
create sprite ?bloc as ?nom
add ?nom frame 1, 1, 1 to ?bloc, 1, ?bloc
move ?nom to 0, 8, ?distance
zoom ?nom to 2, 1, 1
end
return
label "creer ville"
goto "creer mur", "gauche"
goto "creer mur", "droite"
goto "creer route"
' ajouter les obstacles :
?mode = (dice -2 to 3)
if ?mode = -2
' rien...
else if ?mode < 1
' bonus : -1 et 0
color #ff8
?nom = "bonus-?index"
create sprite 4 as ?nom
add ?nom frame
zoom ?nom to 0.3
?pos = dice -1 to 1
move ?nom to ?pos * 4, 2, ?distance
else if ?mode > 0
' 1,2,3 = murs sur une des trois voies
color #8f0
?nom = "obstacle-?index"
create sprite ?bloc as ?nom
add ?nom frame 1, 1, 1 to ?bloc, 3, 8
zoom ?nom to 0.3
move ?nom to (?mode - 2) * 4, 2, ?distance
end
?distance + ?bloc
return
label "gameplay"
for 1 to ?index as ?i
?obstacle = "obstacle-?i"
if (is ?obstacle) = 1 and [hit, ?obstacle] = 0
if (hit ?obstacle to "joueur") = 1
[hit, ?obstacle] = 1
color #f00
fill ?obstacle
?vitesse / 2
end
end
?bonus = "bonus-?i"
if (is ?bonus) = 1 and [hit, ?bonus] = 0
if (hit ?bonus to "joueur") = 1
[hit, ?bonus] = 1
color #fff
fill ?bonus
?vitesse + 0.1
end
end
next
limit ?vitesse min ?vitesse_min max ?vitesse_max
return
label "jeu"
do
clear screen
color #fff
create text ?distance as "ui"
paint "ui" to "ui"
move "ui" to 0, 50, 100 + ?position
?position + ?vitesse
move "camera" to 0, 6, ?position
target "camera" to 0, 0, ?position + 100
update
if ?distance - ?position < ?horizon
goto "creer ville"
end
goto "gameplay"
if (press "left") = 1 and ?joueur > -1
?joueur - 1
else if (press "right") = 1 and ?joueur < 1
?joueur + 1
end
' interpolation
?joueur_a + (?joueur - ?joueur_a) / 5
move "joueur" to ?joueur_a * 4, 2, ?position + 10
loop
return