1

bin voila j'ai mis mes sprites dans un fichier externe(ke je cree a partir du prog principal)

et lorsque je lance mon jeu, et bien certains sprites ne s'affiche pas du tout correctement....et ce, alternativement
c a dire ke parfois le jeu marche tres bien et dotre foi c l'horreur..
akoi cela peut il etre du.?? aux pointeurs?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

2

Tes sprites sont dans un fichier externe ? Si oui c'est peut-être parceque t'as pas locké le handle du fichier, et qu'il est invalidé à un moment.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

c koi "locker le handle du fichier"?
gol
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

4

Il ne faut pas utiliser HeapDeref, mais :
void *mon_pointeur = HLock(mon_hdl); // à n'utiliser qu'une fois
... faire joujou ...
HeapUnlock(mon_pointeur);
// mon_pointeur n'est plus valide à partir de cet endroit là


Sinon, le fichier peut bouger n'importe où en mémoire (puisque l'OS ne sait pas que tu utilises le fichier).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

Moi aussi j'utilise des fichiers externe et pendant tout le cours de mon programme j'ai le pointeur du fichier que j'ai pris au début avec HeapDeref une bonne fois pour toute et j'ai jamais eu le problème de contenu invalide...
Comment faire pour vraiment tester et être sur que le pointeur soit toujours valide, un HeapCompress peut être source de pointeurs invalide?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

6

okokokokok
moi g fe ca:
sprites_ptr=HeapDeref(entry->handle)+2;

et je devrai faire ca
sprites_ptr=HLock(entry->handle)+2;???

ps; c koi la commande pour mettre la source sur fond blanc???
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

7

okokokokok
moi g fe ca:
sprites_ptr=HeapDeref(entry->handle)+2;

et je devrai faire ca
sprites_ptr=HLock(entry->handle)+2;???
ps; c koi la commande pour mettre la source sur fond blanc???


Euh je fais pareil que toi et j'ai jamais eu ce pb.

Pour mettre la source en blanc c'est la balise pre.

Test


Edit mon message wink
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

8

geogeo :
Moi aussi j'utilise des fichiers externe et pendant tout le cours de mon programme j'ai le pointeur du fichier que j'ai pris au début avec HeapDeref une bonne fois pour toute et j'ai jamais eu le problème de contenu invalide... Comment faire pour vraiment tester et être sur que le pointeur soit toujours valide, un HeapCompress peut être source de pointeurs invalide?

Oui. T'as surement du bol, mais c'est crade, vaut mieux locker le handle (si il ne l'était pas déjà), et le délocker à la fin (si il était pas locké au début)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

en passant, la correction de mon code est elle bonne ou c pas ca du tout?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

10

Oui. T'as surement du bol, mais c'est crade, vaut mieux locker le handle (si il ne l'était pas déjà), et le délocker à la fin (si il était pas locké au début)


OK je vais faire ça, mais après beaucoup de tests je n'ai pas ce problème.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

11

hmmmmm
mon code de base etant:
 void *sprites_ptr;
 entry=SymFindPtr(SYMSTR("sprites"),0);
 sprites_ptr=HeapDeref(entry->handle)+2;


dois je faire:
 void *sprites_ptr;
 entry=SymFindPtr(SYMSTR("sprites"),0);
 sprites_ptr=HeapLock(entry->handle)+2;


ou c pas ca?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

12

HLock au lieu de HeapLock.

13

Tu fait tout simplement un HeapLock sur le handle du fichier avant de prendre le pointeur:
void *sprites_ptr;
entry=SymFindPtr(SYMSTR("sprites"),0);
HeapLock (entry->handle);
sprites_ptr=HeapDeref(entry->handle)+2;


Et à la fin de ton prog tu unlock ce handle,

[EDIT] HeapLock permet seulement de locker un block alors que HLock permet de le locker et de récupérer son pointeur. Donc ton exemple est correct. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

14

okkk merci pour tout!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ca marche nikelllllll

par ocntre mon code n'avait par l'air correct sur vti (contrairement a ce kave di geogeo)
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

15

geogeo> si les fichiers sont archivés, HLock ne fait évidemment rien cheeky

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

Euh mes fichiers ne sont pas archivés. cheeky
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

17

Bah alors tu fais pas bcp d'alloc de mém, ou bien t'as plein de mémoire libre, ou bien...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

18

De toute façon c'est pas un bon plan.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)