euh voila je c pas trop comment m'exprimer.
bin si je vue fiar un jeu avec plusieur nivo et k'a chake nivo, je change d'ennemis
je doit creer un fichier extenre en binaire pour les sprite nan?
pis apres puisje faire cela:
XGNSprite(x_vais,y_vais,vaisseau1);
avec le 1 ki peut varier..
une sorte d'indirection en basic si je me souvien bien??
voila je c g pas ete tres clair mes bon
il parrait kil fo ke je fasse une iste de sprite avec un pointeur et tou
merci d'avance
@++++

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406 Zeph Le 22/07/2003 à 14:12 Hum...
Si tu veux mettre des sprites en fichier externe, déjà tu le crée avec fopen, fwrite et companie. Tu colle tes sprites dedant, puis ensuite pour y acceder dans ton jeu, le mieux est de faire ça en lecture seule (ça ne coute pas de RAM).
Tu fais SymFindPtr et HeapDeref pour obtenir un pointeur vers le fichier. Disons que t'as une variable "unsigned char *sprites" qui pointe vers le fichier. Tu fais "sprites += 2" pour sauter les 2 octets de taille et pointer vers le 1er sprite.
Ensuite c'est tès simple, si tu utilise des XGNSprites ils font 64 octets chacuns, donc :
Pour appeller le 1er : XGNSprite(x_vais,y_vais,sprites);
Le 2eme : XGNSprite(x_vais,y_vais,sprites + 64);
Le 3eme : XGNSprite(x_vais,y_vais,sprites + 128);
etc...

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Zeph Le 22/07/2003 à 14:39 Par buffer il entend allouer en RAM et recopier les sprites ? Aucun interet et ça fait perdre de la mémoire pour rien.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
oki
euh;.. la vat c dans TIGCC??
jje crois ke oui jve aller voir
pis g bien compris komment faire piur ecrire du teste dans un ficher..
mais pour faire un truc en binaire
jutilise fputs et je emt koi kpm argument?

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406Pour mettre des données binaires, on utilise fwrite, pas fputs.
oki merci ca c clair
enfin le pointeur, je le chosi comment??
fo pas prendre un truk o azard!! c dangeureu kan meme
lol
donc en resume, je fe:
fwrite (*?, 64, unsigned 10 (si g 10 spites) , FILE *stream);
et stream c le nom du fuchier??
et c avec koi ke je copie mes sprites dans le ficher??

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406stream c'est le FILE* renvoyé par fopen();
j'imagine que le pointeur pointe sur les données à recopier, mais j'ai pas vérifié (enfin ça parait logique nan?)

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
heu rectification, il est plus rapide de recopier le fichier dans la ram si celui ci est archiver, car le temps d'acces a la flash est bcp plus long que celui de la ram..
sion je vais faire un prog pour creer des fichier de level avec des routines X pour les utiliser.
attend je CROIS avoir saisi
donc en fait si g 3 ennemis, je doit les appeler
ennemi1
ennemi2
ennemi3
,...
voila
merci encore pour tout c cool
je crois ke c bon la!!
et komment je chosi de lire dans la ram ou la flash?

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406La méthode de lire un sprite avec fread est longue ou pas, c'est identique à memcpy?
PArce que dans ce cas j'avais parlé de buffer pour aller plus vite.
c'est pas ce que j'ai entendu dire..
Ton code:
SYM_ENTRY *entry;
void *ptr;
entry=DerefSym(SymFind(SYMSTR("main\myfile)));
ptr=HeapDeref (entry->handle)+2;
Si entry est différent de NULL c'est tout bon.
Après pour lire tu fait ça:
XGNSprite(x_vais,y_vais,ptr);
XGNSprite(x_vais,y_vais,ptr+64);
XGNSprite(x_vais,y_vais,ptr+128);
...
Dans ce code tu doit trouver un pointeur vers ton fichier. Ici myfile.
DerefSym permet de convertir un sym en SYMENTRY, un SYMENTRY possède plus d'info, je pense que l(on peut faire plus simple.
Donc dans entry tu as un pointeur sur une structure qui t'informe sur le fichier (nom, si locked, archivé, handle....)
Pour avoir un pointeur dans le contenu du fichier tu doit obtenir l'adresse du handle + 2 octets donc tu fait HeapDeref(enrty->handle)+2;
Et enfin tu est dans le fichier, reste plus qu'à afficher tes sprites.
PS: J'ai fait vite, donc y a mieux et enocre plus optmisé voir plus simple mais le principe doit y être.
oki merco bocoup j'etai en train de lire le topic dans prog C ou t'ave ecrit pareil
merciiiii
lol

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406