Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 01 Jul 2004 09:02:11

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Utilisation de fichiers basic

Le jeu que je vais présenté au concours de l'UCF contient énormement de données (sprites et maps surtout) et je suis donc obligé d'en stocker une bonne partie dans des fichiers basic... mais je n'y connais pas grand chose  sad
Je pensais utiliser cette méthode :

tu ouvres le fichier 'FONT' avec les routines memzone de 2072

ensuite tu px faire un truc du genre

unsigned char far* ascii = (unsigned char far*)MK_FP(bf.b_segment, bf.b_inneroffset)

un caractère prend 8 octets donc pour accéder à la première ligne d'un caractère tu fais : ascii[lettre * 8]
sachant que le police fait 5 pixels de hauteur et 4 de largeur.

Ca résoudrais mon problème de faire comme ça ?
Ah oui... je sais pas trop quoi utiliser pour créer et modifier facilement les fichiers basic (ou les .RFI), afin de pouvoir editer mes maps rapidement par exemple.


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#2 01 Jul 2004 09:12:32

madjar
Membre Communauté Graph100
Lieu: Un bled dans ch'nord !
Date d'inscription: 27 Jan 2004
Messages: 342
Site web

Re: Utilisation de fichiers basic

les routines memzones de 2072

c'est pô extremement difficile à utilisé, je l'utilise dans mon craceur (la version instable pas distribuée...)


Programmeur-glandeur de jeux baclés : craceur et xox
Bija : C'est moche
Madjar : Je sais, je suis devellopeur, pas graphiste

Hors ligne

 

#3 01 Jul 2004 09:22:39

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

Le jeu que je vais présenté au concours de l'UCF contient énormement de données (sprites et maps surtout) et je suis donc obligé d'en stocker une bonne partie dans des fichiers basic... mais je n'y connais pas grand chose  sad
Je pensais utiliser cette méthode :

tu ouvres le fichier 'FONT' avec les routines memzone de 2072

ensuite tu px faire un truc du genre

unsigned char far* ascii = (unsigned char far*)MK_FP(bf.b_segment, bf.b_inneroffset)

un caractère prend 8 octets donc pour accéder à la première ligne d'un caractère tu fais : ascii[lettre * 8]
sachant que le police fait 5 pixels de hauteur et 4 de largeur.

Ca résoudrais mon problème de faire comme ça ?

Ca c'est utiliser les memzones "à la barbare": tu sautes toutes les sécurités mises en place par 2072 pour éviter les erreurs (et la perte inévitable du contenu de la ram dans ce cas!!)... Apparemment c'est ce que fait dada, c'est aussi ce que je fais dans sonic, mais personnellement j'éviterais pour débuter...  :?


Pensez à surveiller mes releases wink

Hors ligne

 

#4 01 Jul 2004 09:27:48

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

Dans ce cas tu me conseille quoi ? fichiers externes ?


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#5 01 Jul 2004 09:29:35

madjar
Membre Communauté Graph100
Lieu: Un bled dans ch'nord !
Date d'inscription: 27 Jan 2004
Messages: 342
Site web

Re: Utilisation de fichiers basic

tu va sur le site de 2072, et tu télécharge sa lib, et tu lit son readme ! (tout ce dont tu as besoin est dedans)


Programmeur-glandeur de jeux baclés : craceur et xox
Bija : C'est moche
Madjar : Je sais, je suis devellopeur, pas graphiste

Hors ligne

 

#6 01 Jul 2004 09:34:14

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Utilisation de fichiers basic

arf c aussi ce que je fais dans chess...utiliser la lib com un barbare


Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#7 01 Jul 2004 09:39:58

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

Bon ben je vais faire ça... je peux mettre combien d'octets de fichier basic avant que ça bug carrément ?


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#8 01 Jul 2004 09:47:59

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

Bon ben je vais faire ça... je peux mettre combien d'octets de fichier basic avant que ça bug carrément ?

plus qu'il n'en faut wink
Mais pour écrire ou lire dans une zone, il faut mieux utiliser ses fonctions read_mem_zone et write_mem_zone plutot que d'utiliser directement un pointeur far vers le contenu  lol


Pensez à surveiller mes releases wink

Hors ligne

 

#9 01 Jul 2004 10:18:16

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

arf j'hésite à échanger DB-lib contre Drawlib, surtout que l'on peut utiliser un pointeur far vers une memzone (donc tous les sprites -> dans des fichiers basic) et puis que le codage risque d'être plus rapide avec Sprite Maker  :P
Surtout que j'aurais surement pas mal de sprites de plus de 16*16...
Pour ce qui est de la vitesse on y perd vraiment beaucoup par rapport aux fonctions de DB-lib ?


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#10 01 Jul 2004 10:26:43

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

Lol doucement...  lol
DB-lib est plus complet et permet beaucoup + de choses que Drawlib, qui ne contient en fait qu'une seule fonction. Drawlib c'est bien quand tu as besoin d'afficher des sprites de dimensions assez variables, avec un masque et en gérant le clipping, ca permet de rendre la prog plus confortable... Mais bien sûr le confort a un prix, tu perds un peu en performance si jamais tu n'exploites pas drawlib à fond...
Je n'ai pas fait de tests de vitesse mais il ne me semble pas que les pertes sont énormes smile
Au passage, la version 1.4 plus complète devrait arriver bientôt (j'y travaille dessus maintenant): les sprites codés pour la 1.3 ne seront plus valables, mais ca vaudra le coup normalement wink


Pensez à surveiller mes releases wink

Hors ligne

 

#11 01 Jul 2004 10:31:07

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

j'espere que tu fera un convertisseur sprite de la version 1.3 -> sprite de la version 1.4, je pense pas que je vais attendre la nouvelle version pour m'y mettre  smile


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#12 01 Jul 2004 10:37:30

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

j'espere que tu fera un convertisseur sprite de la version 1.3 -> sprite de la version 1.4, je pense pas que je vais attendre la nouvelle version pour m'y mettre  smile

ben c'est pas une mauvaise idée, sauf que lire un sprite sous forme de texte "unsigned char bidule = { .. , .. , ...... };" c'est pas marrant  :? (mais pas infaisable, d'accord)
Mais bon y'a moyen de devoir juste mettre sprite maker en mode 1.4, puis de regénérer les codes et de copier-coller...  wink
A la limite tu peux meme t'arranger pour que le prog réécrive ton ficher source qui contient le code des sprites (a condition qu'il n'y ait que ca dedans bien sur)  smile


Pensez à surveiller mes releases wink

Hors ligne

 

#13 01 Jul 2004 12:33:39

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

Ce serait pas mal de pouvoir générer directement le code d'un tableau de sprites.
J'ai comparé la vitesse et c'est quand même un petit peu plus lent avec une map de sprites 16*16 avec clipping (mais pas de masque dans la version avec DB-lib).
De toute façon je peux faire une partie de mon affichage avec DB-lib et l'autre avec Drawlib.

P.S. : On a le droit de parler de notre prog avant la fin du concours ?  roll


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#14 01 Jul 2004 13:07:59

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

Le masque apporte une grosse différence normalement (vu que ca fait ~66% de sollicitation de la mémoire en plus  :? )

Ce serait pas mal de pouvoir générer directement le code d'un tableau de sprites.

X-th me l'avait déjà suggéré, en effet... je vais faire ça  smile


Pensez à surveiller mes releases wink

Hors ligne

 

#15 01 Jul 2004 14:25:16

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

Je vais faire ça :
- les sprites de 16*16 sans masque incluses dans le prog, affichées avec les d16clip de DB-lib.
- les sprites de taille variable (8*8 à 48*4cool avec masque dans des fichiers basic (pour simplifier j'éviterai de mettre des sprites de différentes tailles dans un même fichier), affichées avec drawlib.
- les maps dans des fichiers basic, que je recupère avec un pointeur far.
Ca vous parait bien ?


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#16 01 Jul 2004 14:59:53

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

Oui, de toute facon si tes sprites 16*16 doivent servir pour tes maps, je t'aurais dit tout de suite de ne surtout pas utiliser drawlib pour ca lol


Pensez à surveiller mes releases wink

Hors ligne

 

#17 01 Jul 2004 15:16:31

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Utilisation de fichiers basic

lire dans une memzone avec un pointeur far ça n'est pas grave, tu risque juste de lire des conneries si tu te plante mais écrire directement dedans c'est vraiment dangereux, la fonction write_mem_zone est BIEN PLUS RAPIDE que d'utiliser les pointeur far alors vous n'avez aucune raison de ne pas l'utiliser !


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#18 01 Jul 2004 15:25:40

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Utilisation de fichiers basic

et puis c pas tres compliqué de modifier d16clip pour qu'il gere les far ; ya que quatres lignes a modifier :

Code:

// Affiche un sprite 16*16 pour mode D3 ou DB
// avec OR avec clipping, au buffer voulu.
// Fonction de DB-lib.h par Swifter - SWF Prod 2004
void d16clip_or(int x,int y,void far* spr,unsigned int segm)
{
  asm{
       push ds
       mov cx,x      // On met x dans CX.
       mov bx,cx     // Et on le met aussi dans BX.
       lds si,spr    // On place l'adresse du sprite dans SI.
       mov di,0x3FE  // On place l'offset vidéo sur le dernier mot, en haut a gauche de l'ecran.
.........
// a la fin
       pop ds

Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#19 01 Jul 2004 15:25:55

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

ok, et read_mem_zone aussi ?


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#20 01 Jul 2004 15:28:01

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

lire dans une memzone avec un pointeur far ça n'est pas grave, tu risque juste de lire des conneries si tu te plante mais écrire directement dedans c'est vraiment dangereux, la fonction write_mem_zone est BIEN PLUS RAPIDE que d'utiliser les pointeur far alors vous n'avez aucune raison de ne pas l'utiliser !

bien plus rapide qu'un rep movsw?  lol


Pensez à surveiller mes releases wink

Hors ligne

 

#21 01 Jul 2004 16:09:14

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Utilisation de fichiers basic

c'est ce que ça fait... smile


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#22 01 Jul 2004 16:22:59

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

Je sais bien, et la fonction que j'utilise pour écrire dans les zones utilise également le rep movsw... wink


Pensez à surveiller mes releases wink

Hors ligne

 

#23 01 Jul 2004 16:33:32

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

je veux bien utiliser les fonctions read_mem_zone et write_mem_zone mais comment faire pour afficher un sprite par l'intermédiaire de ces fonctions, sans avoir à faire des variables "temporaires" dans lesquelles on stocke un sprite puis on l'affiche ?


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

#24 01 Jul 2004 16:42:18

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Utilisation de fichiers basic

pour l'écriture, il vaut mieux utiliser write_mem_zone et repérer les offsets des sprites que tu écris dans la zone.
drawsprite() s'occupe de la lecture, il faut juste que tu arrives à obtenir un pointeur far vers le début de la zone (voir post plus haut), auquel tu rajoutes l'offset du sprite que tu veux afficher smile

Au fait cette méthode est efficace seulement quand les sprites ne sont pas définis dans l'exe bien sûr, tu dois les placer en fichier externe et les charger dans une zone au début du prog (que tu détruis convenablement à la fin du prog hein  :twisted: )


Pensez à surveiller mes releases wink

Hors ligne

 

#25 04 Jul 2004 02:36:46

Didj
Programmeur Graph100
Lieu: Paris
Date d'inscription: 09 Jun 2003
Messages: 192
Site web

Re: Utilisation de fichiers basic

la map est maintenant dans un fichier basic et ça fonctionne impec  wink
il me reste plus qu'à mettre les sprites et les autres données dans des fichiers basic, et de tester la fonction d16clip_or modifiée  smile


Auteur de : Spacewar v1.02, Diablo v0.12

=> Didj <=

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr