Ton code
Code : Tout sélectionner
Procedure Jeux()
;Création des terrain avec les datas :)
StartDrawing(ScreenOutput())
Restore Terrain1
For ligne = 0 To 600
For colonne = 0 To 1
Read sprite
If sprite:Box(102 + ligne , 150 + colonne , 10 , 10 , RGB($A0,$E2,$DF)):EndIf
Next
Next
StopDrawing()
EndProcedure
a une boucle de 2 et une autre de 601 valeurs donc tu auras 2 * 601 = 1202 appels à tes datas avec Read
Code : Tout sélectionner
If sprite:Box(102 + ligne , 150 + colonne , 10 , 10 , RGB($A0,$E2,$DF)):EndIf
tu as
If sprite ce qui veut dire que
Code : Tout sélectionner
Box(102 + ligne , 150 + colonne , 10 , 10 , RGB($A0,$E2,$DF))
ne sera effectué que si sprite est différent de 0 et si on regarde tes datas quesqu'on voit ?
Code : Tout sélectionner
DataSection
Terrain1 :
Data.f 0 , 1 , 2 , 3 , 4 , 5 , 6
EndDataSection
la première valeur vaut 0. En clair, même si tu lit cette première valeur, elle ne sera pas interpretée pour dessiner la box
A quoi sert ce if sprite ?
La solution de Dobro est "élégante" pour restaurer las valeurs dans une boucle dont les itérations ne sont pas égales aux nombres de datas.
et puis je rabache
Sprite est un long et tes datas des Float alors fait en sorte que ta variable soit du même type les datas si tu veux récupérer les bonnes valeurs. Ca non plus ca ne semble pas compris
essaye ce code pour te rendre compte et tu verras que ta variable ne récupère pas la valeur correcte des datas sauf le 0
Code : Tout sélectionner
For i = 0 To 5
Read sprite
Debug sprite
Next
DataSection
Data.f 0, 1, 2, 3, 4, 5
EndDataSection