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 18 Jun 2004 09:48:31

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

comment utilise font ?

Salut !

J'ai téléchargé la dernière beta de gcomm, et il est fourni avec sa police de charactere.
Alors voila la grande question :

Comment utiliser ce fichier si, par exemple, je veux l'inclure à mes propres progs (histoire de rentabiliser ce téléchargement) ???


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

Hors ligne

 

#2 18 Jun 2004 13:29:37

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: comment utilise font ?

lol

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.


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#3 29 Jun 2004 15:28:09

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

Re: comment utilise font ?

deux semaines plus tard ...

Merci beaucoup !

avec l'aide de Bija, j'ai crée une petite fonction qui permet d'afficher un chaine de caractere

Code:

# include <memzones.c>
# include <casio2.h>

unsigned char far* font;

void main ()
{

 loadfont(3,"FONT");
 textbm (0,0,"J'AIME LE POULET !");
 textbm (0,6,"J'aime le poulet !");
 textbm (0,13,"MADJAR IL EST TROP BEAU");
 textbm (0,20,"Madjar il est trop beau");
 textbm (0,27,"BIJA EST PAS MAL NON PLUS");
 textbm (0,34,"Bija est pas mal non plus");
 
}


int textbm (int x, int y, char texte [])
{
 int i=0;
 while (texte [i])
 {
     printb (texte [i],x+5*i,y);
     i++;
 }
 
 return (0);
}

int printb (char lettre,int x,int y)
{
int a,b,c,d;
for (a=0; a<5; a++)
{
b=font[lettre*8+a];
for (c=7; c>3; c--)
{
if (b & 1<<c) setPix(x+7-c,y+a,0,1);
else setPix(x+7-c,y+a,0,0);
}
}
return (0);
}


int  loadfont (int zone,char police [])
{
 struct memory_zone bf;
 search_mem_zone(zone,police,&bf);
 font = (unsigned char far*)MK_FP(bf.b_segment, bf.b_inner_offset);

 return (0);
}

comme je connais pas encore l'affichage octet par octet, j'utilise setpix()

donc c'est basé sur le boulo de Bija, et voici un prog de demo
les includes sont casio2.h et memzones.h

utilisation très simple :
on place

Code:

unsigned char far* font;

au debut du prog
on appelle loadfont (zone du fichier de police, non du fichier) pour charger la police
on appelle textbm (x,y,"Le texte") l'origine (0,0) est le premier pix en haut à droite


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

Hors ligne

 

#4 29 Jun 2004 15:55:44

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

Re: comment utilise font ?

Chouette, je sens que cette fonction va bcp me servir, merci madjar  lol


Pensez à surveiller mes releases wink

Hors ligne

 

#5 29 Jun 2004 16:44:04

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

Re: comment utilise font ?

oui ça peut être utile mais... c'est un affichage pix/pix, donc "un peu" lent  :?
Il doit y avoir moyen de le faire octet/octet... avis aux amateurs


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

=> Didj <=

Hors ligne

 

#6 29 Jun 2004 16:44:32

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

Re: comment utilise font ?

merci Bija, merci Dada66 !

malheuresement, les minuscules de la police sont pas terib !

Vous remarquerez que si vous voulez introduire un autre police, c'est aisément faisable ! (la question etant : comment la créer ?)

PS : désolé Bija de pas t'avoir prévenu, jlé fait en 1h et t'étais pas là !


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

Hors ligne

 

#7 29 Jun 2004 17:55:39

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

Re: comment utilise font ?

oui ça peut être utile mais... c'est un affichage pix/pix, donc "un peu" lent  :?
Il doit y avoir moyen de le faire octet/octet... avis aux amateurs

Vais-je devoir rajouter quelques fonctions pour ça dans drawlib comme krach l'avait suggéré? roll


Pensez à surveiller mes releases wink

Hors ligne

 

#8 30 Jun 2004 03:31:52

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: comment utilise font ?

"malheuresement, les minuscules de la police sont pas terib ! " t' as qu' a en proposer si t' en es pas content! non mais tu crois que c' est facile de faire des minuscules qui ressemblent vraiment à des minuscules en 4*5 pixel?? mdr t' es un marrant toi!

De plus vous pouvez toujours faire votre propre police!

Il suffit pour cela d' utiliser un nom de fichier différent de FONT et de rajouter vos 128 sprites ( codés sur 8 octets, la ligne la plus haute correspondant au 1er octet le plus bas) les uns à la suite des autres comme c' est spécifié dans le readme!

Quand au pixel/pixel je tiens à préciser que cette police n' est absollument pas fait pour le pxl/pxl mais bien en octet/octet!


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#9 30 Jun 2004 03:38:02

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

Re: comment utilise font ?

Ah booooon c'était pas prévu pour du pix/pix cette fonte?  :ptdr:


Pensez à surveiller mes releases wink

Hors ligne

 

#10 30 Jun 2004 03:40:13

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

Re: comment utilise font ?

il faudrait étendre cette fonte en 8 bits (256 caractères), pour avoir les lettres accentuées...


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

Hors ligne

 

#11 30 Jun 2004 05:23:53

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: comment utilise font ?

oui mais je connais pas trop (meme pas du tout) l'octet/octet donc j'utilise le pixel/pixel
mais comme c'est une police 4*5, je pense qu'il faut l'utiliser uniquement avec des majuscules !
merci dada66 !


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#12 30 Jun 2004 05:30:26

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

Re: comment utilise font ?

pour ce qui du octet/octet, je bosse dessus ! (j'essaye!)

"comme spécifié dans le readme" Quel readme ?


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

Hors ligne

 

#13 30 Jun 2004 05:31:08

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: comment utilise font ?

g tjrs mes fonctions qui sont en octet/octet si tu vx.


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#14 30 Jun 2004 05:37:41

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

Re: comment utilise font ?

oué envoye, ça permetra d'eviter de refaire le boulo déjà fait !


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

Hors ligne

 

#15 30 Jun 2004 05:43:14

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: comment utilise font ?

et aussi de comprendre l'octet/octet


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#16 30 Jun 2004 05:56:04

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: comment utilise font ?

sources:
http://g100storage.free.fr/GComm/src.rar
Remarque : Code pour VC++1.5, certaines lignes ne sont pas compatible avec TC3, notament (__segment)&"var" qui peut être remplacé par _DS pour les pointeur non "far"
Pour les pointeurs far, remplacez par la macro _FP_SEG();


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#17 30 Jun 2004 06:12:56

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: comment utilise font ?

merci !
ouaa ya du boulot pour comprendre tt ca !


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#18 30 Jun 2004 08:10:05

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

Re: comment utilise font ?

et aussi de comprendre l'octet/octet

Commence d'abord par comprendre comment fonctionne la mémoire vidéo, apres avec quelques notions d'assembleur ca ira tout seul...


Pensez à surveiller mes releases wink

Hors ligne

 

#19 30 Jun 2004 09:21:00

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

Re: comment utilise font ?

bah bija et moi on est en train de bosser dessus ...


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

Hors ligne

 

#20 30 Jun 2004 10:46:42

Bija
Membre Communauté Graph100
Lieu: Nord de la France
Date d'inscription: 20 Apr 2004
Messages: 240
Site web

Re: comment utilise font ?

non ca na va pas tout seul ! :evil:  :evil:
ca fait pas mal de temps que j'essaie de comprendre comment fonctionne la mmoire vidéo, j'ai lu plein de tutos mais je n'y suis toujours pas arrivé.
j'ai calculé la position pour le mode C3
j'ai mis dans ax la ligne du sprite que je veux afficher en tenant compte du décalage
mais je ne sais pas comment l'affichre à l'écran !


" Ignorer l'impossiblité de ce que l'on tente reste l'un des ingrédients essentiels de la réussite "

Hors ligne

 

#21 30 Jun 2004 11:15:12

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

Re: comment utilise font ?

tu mets la bonne valeur dans es (0x1A20 pour afficher direct à l'écran par exemple), puis la bonne valeur dans di (mode C3: 0 pour les 8 pixels tout en bas à droite, 1 pour les 8 pixels juste au dessus, 64 pour les 8 pixels juste à gauche etc), et puis tu fais "and es:di, ax" et voilou  smile


Pensez à surveiller mes releases wink

Hors ligne

 

#22 30 Jun 2004 11:42:54

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

Re: comment utilise font ?

bah voila ça marche !

le blem c'est qu'on appellait l'adresse video direct, sans la stoquer dans di avant ...


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

Hors ligne

 

#23 01 Jul 2004 09:16:18

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

Re: comment utilise font ?

bon voilà le résultat de notre boulot, malheuresement, ça n'a pas l'air de marcher normalement, et je vois pas où est le bug

ce qui est bizarre, c'est que ça marche en lettre pas lettre, mais si j'apelle une chaine de caractère directement, via la meme fonction que pour la version précédente, ça planté (colones de pixel blanches un peu n'importe ou (je croi que c'est un signe de l'écriture là ou il faut pas))

si quelqu'un pouvoait jeter un coup d'oeil... (j'ai commenté le source!)

Code:

//textbm 2 : la revenche du octet par octet (il revien et il est pas content) par Bija et Madjar

#include <memzones.c>

unsigned char far* font;

void  loadfont (int zone,char police [])       //on prend le fichier spécifié dans la zone choisie, et on en extrait la police
{
 struct memory_zone bf;
 search_mem_zone(zone,police,&bf);
 font = (unsigned char far*)MK_FP(bf.b_segment, bf.b_inner_offset);

}

void printbm (int x,int y,char lettre)
{
 char a;
 int i,debut=0,fin=8;
 int adresse_video;
 char decalage;
 if (y<0) debut=-y;                      // clipping haut
 if (y>63) fin=127-y;                    // clipping bas

  if (x>=0)                              // si le caractère n'est pas à gauche de l'écran
    {
              for (i=debut;i<fin;i++)                         //boucle pour chaque ligne à afficher
              {
                    a= font [lettre*8+i];                              //recupere la bonne ligne de la bonne lettre
                  adresse_video = 1023;                                      //
                  adresse_video = adresse_video - y;                         // definit où ecrire
                  adresse_video = adresse_video - ( x / 8 ) *64 - i ;        //
                  decalage = x%8;                                            //definit le decalage de la lettre sur l'octet
                  asm mov ax, 0x1A20                                   //on ecrit l'adresse du buffer video
                  asm mov es, ax                                       //on le déplace dans es
                  asm xor ax, ax                                       //on vide ax
                  asm mov ah, a                                        //on met le bout à afficher dans ah
                  asm mov cl, decalage                                 //on définit le décalage dans cl
                  asm shr ax,cl                                        //on le décale
                  asm mov di,adresse_video                             //on met l'adresse video ou ecrire dans di

                  if (i<=4) asm mov bx,0x0F00                          //on genere la partie haute du masque
                  if (i>=5) asm mov bx,0xFF00                          //la partie basse

                  asm shl bx,cl                                        //on decale le masque

                  if (x<=120) asm and [es:di], bh                      //on affiche le masque
                  if (x<=127) asm and [es:di-64], bl                   // les if sont pour le cas ou on veut ecrire à droite

                  if (x<=120) asm or [es:di], ah                       //on affiche la lettre
                  if (x<=127) asm or [es:di-64], al
                  }
       }

}

void textbm (int x, int y, char texte [])
{
 int i=0;
 while (texte [i])
 {
    printbm (x+5*i,y,texte [i]);
    i++;
 }
}

void main ()
{

 loadfont (3,"FONT");

 textbm (0,0,"J'AIME LE POULET !");
 textbm (0,6,"J'aime le poulet !");
 textbm (0,12,"MADJAR IL EST TROP BEAU");
 textbm (0,18,"Madjar il est trop beau");
 textbm (0,24,"BIJA EST PAS MAL NON PLUS");
 textbm (0,30,"Bija est pas mal non plus");

}

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

Hors ligne

 

#24 01 Jul 2004 11:28:28

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

Re: comment utilise font ?

8O
ne mélange pas des instructions asm avec du C comme ca!!
Les instructions en C utilisent les registres et modifient leur contenu, donc tu ne peux absolument pas écrire qq chose comme ca:

Code:

if (x<=120) asm and [es:di], bh
if (x<=127) asm and [es:di-64], bl
if (x<=120) asm or [es:di], ah
if (x<=127) asm or [es:di-64], al

Il y a des instructions asm pour faire des if, il faut les utiliser!


Pensez à surveiller mes releases wink

Hors ligne

 

#25 01 Jul 2004 11:53:31

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: comment utilise font ?

sinon tu utilises un pointeur far.
unsigned char far* seg = 0x1A20;

et comme ca tu n'as k'a faire seg[1] = valdel'octet.

Mais dans les sources que g données ya le code (DrawSprite) qui le fait très bien et qui se compile sous TC3....


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

Pied de page des forums

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