1

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
@++++
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

2

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...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

fopen et tout c pour crer un fichier??
pis pour y acceder o jeu c pa splus rapide de faire un buffer??

a pis le truk du pointeur a yest je coir ke g a peu pres saisi

mais bon je v voir je suis un grooo noob alors...

gni
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

4

KWT-ArpiK
: fopen et tout c pour crer un fichier??

cf. doc TIGCC. Y'a d'autres méthodes mais les fonctions de stdio sont les plus simples à utiliser.
pis pour y acceder o jeu c pa splus rapide de faire un buffer??

Hein ???
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

oki g regarde l'aide de fopen
merci
donc en fait je doit recopier les sprites de mon prog dans un otre ficher ki va se creer
pis ensuite les lires..

et je peu pas creer un fichier avec les sprites(coca ou orangina tripo ) deja dedans??


ppur le buffer==> c geogeo ki me raconte ca
lol
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

6

KWT-ArpiK
: pis pour y acceder o jeu c pa splus rapide de faire un buffer??

Non, le plus rapide est de lire directement dans le fichier avec les routines de vat.h.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

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

8

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?

avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

9

Pour mettre des données binaires, on utilise fwrite, pas fputs.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

lol
desole d'etre un boulaytoilettes

puree y a po d'exemple ds la doc
crotte de biekkette

fwrite (const void *ptr, unsigned short size, unsigned short n, FILE *stream);

c koi le *ptr??
un pointeur?

euh..size ca sera 64 si c une image,...
pi le n ca represente kwa??

pureee de merde chui une sous merde je comprend rien


avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

11

KWT-ArpiK :
c koi le *ptr?? un pointeur?

Oui.
euh..size ca sera 64 si c une image,... pi le n ca represente kwa??

size est la taille d'une unité, n est le nombre d'unités. En total, tu écris size*n octets dans le fichier.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

12

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??
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

13

stream 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?)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La 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.

14

KWT-ArpiK
: enfin le pointeur, je le chosi comment??

C'est un pointeur sur les données que tu veux mettre dans le fichier.
fwrite (*?, 64, unsigned 10 (si g 10 spites) , FILE *stream);

FILE *fichier=fopen(...);
fwrite(&sprites,64,10,fichier);
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

15

mmm po tout saisi
C'est un pointeur sur les données que tu veux mettre dans le fichier.


donc si g mon sprite
unsigned char ennemi [] = {....};

je doit faire fwrite(&ennemi,....)

mais alors je doit mettre 1 pour n
???
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

16

si tu veux recopier un seul sprite, oui smile
si tu as deux sprites à la suite tu mets 2, etc.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La 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.

17

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.

18

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?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

19

bein si le fichier est archiver, tu lit dans la ram, si il ne l'est pas, dans la flash tongue

20

une astuce rapide pour le metre dans la ram, c'est qu tu le desarchive tongue

21

La 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.
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.

22

JackosKing
: 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..

C'est faux. Ni la RAM, ni la FlashROM ne nécessitent des waitstates.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

23

c'est pas ce que j'ai entendu dire..

24

ben faudrait faire un bench pour etre sûr smile

25

avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

Vertyos :

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...


bon g regarder, la doc pour symfindptr
mais g pas compris comment ca marchait

dans mon ca fo faire SymFindPtr(SYMSTR("sprites"),0);
mais c sense me donner koi?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

27

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.
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.

28

oki merco bocoup j'etai en train de lire le topic dans prog C ou t'ave ecrit pareil
merciiiii
lol
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

29

Ouai j'ai fait des erreurs, je vais corriger ça. 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.

30

FILE *fichier=fopen("main\sprites","w");
fwrite(&ennemi,64,2,fichier);

SYM_ENTRY *entry;
void *sprites_ptr;
entry=DerefSym(SymFind(SYMSTR("main\sprites")));
sprites_ptr=HeapDeref (entry->handle)+2;

g fe ca me ca marche po sad


deja ca me fe des erreurs " pointeur of type "void *" used in arithmetik ou un truc ds ce genre
je pesne ke c du o "+ 2" o operation sur le pointeur koi

pis apres mon programme bug kan je le kitte...
fo ptet desactiver kekchose avant de kitter nan,?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406