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.

#26 01 Jul 2004 11:59:22

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

Re: comment utilise font ?

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

unsigned char far* seg = (unsigned char far* ) 0x1A200000;
wink


Pensez à surveiller mes releases wink

Hors ligne

 

#27 01 Jul 2004 14:10:59

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

Re: comment utilise font ?

@dada66 : pour drawsprite, faut lui donner quels arguments ?

le pointeur far, il sert à quoi dans l'affaire ?


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

Hors ligne

 

#28 01 Jul 2004 15:01:53

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

Re: comment utilise font ?

le pointeur far est nécessaire parce que les données ne sont pas dans le meme segment que le programme, il faut donc spécifier une adresse complète...


Pensez à surveiller mes releases wink

Hors ligne

 

#29 01 Jul 2004 18:28:33

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

Re: comment utilise font ?

void DrawSprite(unsigned short x, unsigned short y, const void* sprite, unsigned char mask, char height);

x et y no comment!
sprite : pointeur sur un sprite codé en octet/octet
mask : masque d'effaçage (ex:la police ne fait que 4 caractères de larges donc le masque vaut 11110000b soit 0xF0 les '1' correspondent aux données qui seront affichées)
height = hauteur du sprite (5 pour la police)


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

Hors ligne

 

#30 02 Jul 2004 03:42:22

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

Re: comment utilise font ?

"unsigned short x, unsigned short y"

On peut aussi mettre:
"short x, short y" ce qui:
1- est moins long à écrire
2- permet d' écrire du texte en partie en dehors de l' écran -permet des textes défilants-


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#31 02 Jul 2004 04:36:58

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

Re: comment utilise font ?

dans ce cas tu meme écrire "int x, int y" vu qu'en entier ne fait que 2 octets sur g100


Pensez à surveiller mes releases wink

Hors ligne

 

#32 02 Jul 2004 09:47:14

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: comment utilise font ?

et puis aussi

#define I int
I x,I y

Hors ligne

 

#33 02 Jul 2004 11:40:46

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

Re: comment utilise font ?

heu ... ça devien pas racourci à l'extreme là ?

ça me rapelle un truc que j'ai lu une fois "comment rendre un source illisible"


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

Hors ligne

 

#34 02 Jul 2004 13:46:55

tonton1664
Membre
Lieu: Somme (80)
Date d'inscription: 22 Jul 2002
Messages: 217
Site web

Re: comment utilise font ?

Concours du code c le plus illisible :
[URL=http://www.de.ioccc.org/main.html]http://www.de.ioccc.org/main.html[/URL]
le plus marrant c'est de trouver a quoi sert le programme lol

Hors ligne

 

#35 03 Jul 2004 05:23:06

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

Re: comment utilise font ?

Code:

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); 
}

Cette fonction m'en inspire une autre :

Code:

unsigned char far* load_memzone_data (int zone,char name []) 
{ 
 struct memory_zone bf; 
 search_mem_zone(zone,name,&bf); 
 return (unsigned char far*)MK_FP(bf.b_segment, bf.b_inner_offset); 
}

et puis on fait par exemple : unsigned char far* game_map=load_memzone_data(3,"GAMEMAP");

la syntaxe est elle correcte ?


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

=> Didj <=

Hors ligne

 

#36 03 Jul 2004 05:34:01

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

Re: comment utilise font ?

ha bah oui effectivement, c'est très resemblant ... je jure que c'était pas intentionel !

ça m'as l'air ok


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

Hors ligne

 

#37 03 Jul 2004 05:36:43

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

Re: comment utilise font ?

Allez voir le sujet sur sprite maker... en attendant qq chose de bcp plus flexible qui arrive  big_smile


Pensez à surveiller mes releases wink

Hors ligne

 

#38 03 Jul 2004 05:40:14

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

Re: comment utilise font ?

j'ai regardé, mais bon ça ne dispense pas mon jeu pour le concours d'une fonction de ce type pour les données autres que les sprites...


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

=> Didj <=

Hors ligne

 

#39 03 Jul 2004 05:47:49

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

Re: comment utilise font ?

justement ^^


Pensez à surveiller mes releases wink

Hors ligne

 

#40 03 Jul 2004 06:12:53

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 bah ça y est, la fonction est prete !

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 [])
{
 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;
 short adresse_video;
 int debut=0,fin=5;
 char decalage;
 if (y<0) debut=-y;                      // clipping haut
 if (y>63) fin=63-y;                    // clipping bas
 if ( x<0 ) return;  //clipping : vérifie que ca ne dépasse pas de l'écran à gauche
 for (i=debut;i<fin;i++)                         //le sprite comporte 5 lignes
 {
 a= font [lettre*8+i];                     //on récupré la ligne du sprite dans a
 adresse_video = 1023 - y - ( x / 8 ) *64 - i;  //on calcule l'adresse video en mode C3
 decalage = x%8;                                //on calcule le décalage
 asm mov si, x
 asm mov ax, 0x1A20                             //l'adresse du 1er buffer dans ax
 asm mov es, ax                                 //pour la mettre dans es
 asm xor ax, ax                                 //on met ax à 0
 asm mov ah, a                                  //on met la 1ere ligne du sprite dans ah
 asm mov cl, decalage                           //le décalage dans cl
 asm shr ax,cl                                  //on décale ax pour avoir la bonne position
 asm mov di,adresse_video                       //l'adresse dans di
 asm mov bx,0x0FFF                              //seuls les 4 premiers bits de ax sont utilisés donc bx est un masque qu'on va appliquer sur l'écran
 asm ror bx,cl                                  //on fait une rotation a bx en fonction du décalage
 
 asm cmp si, 120
 asm ja gauche

 droite:
 asm and [es:di-64],bl
 asm or [es:di-64],al

 gauche:
 
 asm cmp si, 127
 asm ja fin

 asm and [es:di],bh                             //on met les bits du sprite à 0 et les autres sont conservés
 asm or [es:di],ah                              //on affiche le sprite avec un or

 fin:

 }}


void textbm (int x, int y,char texte[])
{
int a;
for (a=0; a<strlen(texte); a++)
printbm(x+5*a,y,texte[a]);
}

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");
 getch();
 }

en théorie, elle est po bugué

éclatez vous !


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

Hors ligne

 

#41 03 Jul 2004 06:14:57

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

Re: comment utilise font ?

et voila le fruit d'efforts acharnés ...
enfin si vous avez des questions ou que vous remarquez que notre code est aps optimisé du tout nhésitez pas à ne le dire !!


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

Hors ligne

 

#42 12 Oct 2004 13:08:29

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

Re: comment utilise font ?

bon désolé de réveiller ce post mais j'ai fait la fonction mais en mode DB

si ca intéresse qqn : http://paulhaz.free.fr/casio/textb3.h

et si qqn regarde le code et qu'il trouve comment supprimer la boucle ne C, qu'il me le dise !!
j'avais essayé de faire un lds si,.. pour ensuite copier les données avec des instrctions en assembleur mais ca marchait pas ...


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

Hors ligne

 

#43 12 Oct 2004 14:45:19

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

Re: comment utilise font ?

Il faudrait que tu essaies qq chose comme ca:

Code:

void printb (int x,int y,int lettre,int segm)
{
asm {
    push ds

    mov ax,segm
    sub ax,y
    sub ax,4
    mov es,ax            // es = segment corresp a la ligne la plus basse du sprite 

    mov cx,x
    mov di,1022
    mov ax,cx
    shr ax,3
    sub di,ax            // es:di -> mot qui va recevoir la ligne en question

    and cl,7

    mov dx,0xFF00        // masque
    ror dx,cl

    lds si,font
    mov bx,lettre
    shl bx,3
    add si,bx
    dec si                // ds:si -> octet precedant le premier octet du sprite

    mov bx,5            // 5 lignes a afficher 

} boucle: asm {            // on balaie le sprite de bas en haut en decrementant bx

    xor al,al
    mov ah,[ds:si+bx]
    ror ax,cl
    and [es:di],dx
    or [es:di],ax

    add di,16            // passe a la ligne suivante
    dec bx
    jnz boucle            // on continue tant que bx!=0

    pop ds
    }
}

:!: non testé wink


Pensez à surveiller mes releases wink

Hors ligne

 

#44 12 Oct 2004 14:54:14

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

Re: comment utilise font ?

j'avais essayé lds si,font mais ca marchait pas
enfin j'essaierais qd meme ton code ....
tiens ca me fait penser que j'ai pas mis de commentaire ..

merci !


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

Hors ligne

 

#45 13 Oct 2004 12:23:45

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

Re: comment utilise font ?

j'ai testé ca marche super sauf pour le masque
c'est

Code:

mov dx,0xFFF      // masque

(le lien est mis a jour)


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

Hors ligne

 

#46 13 Oct 2004 12:33:24

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

Re: comment utilise font ?

Moui pour le masque en fait j'ai pas trop compris pourquoi c'était 0x0FFF donc j'ai fait comme d'habitude et j'ai mis 0xFF00  lol
Enfin si ca marche avec ta valeur tant mieux wink


Pensez à surveiller mes releases wink

Hors ligne

 

#47 13 Oct 2004 12:49:23

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

Re: comment utilise font ?

j'ai mis 0x0FFF
parceque la ligne du sprite fait 4 pixels de longueur donc faut efacer les 4 pixels correspondants

apres je sais pas comment les autres programmeurs font habituellement !wink


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

Hors ligne

 

#48 13 Oct 2004 13:48:58

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

Re: comment utilise font ?

Ah oui effectivement, je comprends mieux (je pensais plutot à un masque inverse lol) smile


Pensez à surveiller mes releases wink

Hors ligne

 

Pied de page des forums

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