'
'	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
x