' Horloge V4 : un nouveau mécanisme.
' Réutilisation de la trotteuse V2
' mais pour chaque élément : heure, minute, seconds
' ...et millisecondes !
'
' Ce programme pourrait être bien mieux structuré
' pour éviter les répétitions.

color 5

' 4 trotteuses :
for 1 to 4 as ?type
	
	if ?type = 1'heures...
		color 8
		?rayon = 17
	else if ?type = 2' minutes...
		color 7
		?rayon = 18
	else if ?type = 3' secondes...
		color 6
		?rayon = 19
	else if ?type = 4' millisecondes
		color #444
		?rayon = 20
	end
	
	' Chacune composée de 60 points
	for 0 to 59 as ?point
		create sprite 1 as "?type-?point"
		add "?type-?point" dot 1, 1, 1
		
		?angle = ?point * 6
		move "?type-?point" to ?rayon * (sin ?angle), ?rayon * (cos ?angle), 0
		turn z "?type-?point" to -?angle
	next
next



do
	
	for 1 to 4 as ?type
		
		' Format 12 heures nécessaire ici
		?heure = mod (hours), 12
		
		if ?type = 1
			?cible = ?heure * 5
		else if ?type = 2
			?cible = (minutes)
		else if ?type = 3
			?cible = (seconds)
		else if ?type = 4
			' (now) est un temps avec des décimales
			' on ne garde que cette partie
			?ms = (now) - (floor (now))
			?cible = (floor ?ms * 60)
		end
		
		' on masque les "secondes"
		for 0 to 59 as ?point
			if ?point > ?cible
				hide "?type-?point"
			else
				show "?type-?point"
			end
		next
		
	next
	
	' petit traveling de la caméra
	?angle + 0.25
	move "camera" to 25 * (sin ?angle), 8 * (sin ?angle * 2), -40
	
	'
	clear screen
	color 1
	?debug = (hours) + " h " + (minutes) + " mn " + (seconds) + " s"
	trace text ?debug center 0, -90
	
	' cette fois ci on ne peut plus attendre 1 seconde entre
	' chaque image à cause des millisecondes
	update
	
loop
x