Probleme de data

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Heu je vais peut - etres paraitre imbecile mais je croyais avoir compris et non j'ai toujours pas comprie ( la le garzul il et fausser il attaque un truc qu'il a jamais vu les data salopri de data :mad: ) enfin bon voila j'ai toujour pas compri ( va t-on arriver a lui expliquer :P ) :lol:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

bon les data sont lu les uns apres les autre a la suite !!

moi j'ai pour habitude de rajouter a la fin des data un chiffre qui est personnel et qui sort du lot !! par exemple !! "888"
comme ça !

Code : Tout sélectionner

 DataSection
Terrain1 :
Data.f 0 , 1 , 2 , 3 , 4 , 5 , 6,888
EndDataSection
de cette facon lorsque je lit les data un par un je regarde leur valeur , et lorsque je tombe sur la valeur 888 je sais que je suis a la fin des data
et seulement la je restore la liste !!

avec ton code (que j'ai pas essayé ) cela donnerai :


Code : Tout sélectionner

 Procedure Jeux()
   
    ;Création des terrain avec les datas :)
    StartDrawing(ScreenOutput())
 
   
   
    For ligne = 0 To 600
      For colonne = 0 To 1
          Read sprite
          if sprite=888 :  Restore Terrain1 : endif
          If sprite:Box(102 + ligne , 150 + colonne , 10 , 10 , RGB($A0,$E2,$DF)):EndIf
        Next
      Next
     
    StopDrawing()
 
  EndProcedure 
[/quote]
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Merci Dobro mais sulement sa marche pas :lol: pourtant j'ai changer les valeur et rien le rectangle et couper dans son milieu :? :(
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

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
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D Merci Denis la j'ai compris en faite c'est ce que tu disais depuis le début car en faite le probleme venais que j'avais pas donne de type a ma variable sprite maintenant sa marche . merci encore a vous tous qui m'ont aider :) .
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ya des baffes qui sperdent !! :lol: :lol:
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:lol: Oué c'est sa l'adolechiance Dobro tu es passer par la aussi :lol: :D
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

garzul a écrit ::lol: Oué c'est sa l'adolechiance Dobro tu es passer par la aussi :lol: :D
Oui mais Dobro et moi on était les meilleurs :mrgreen:
Répondre