Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » GFA-Basic TI68K » News » GFA-Basic Editor (Futur éditeur de sources pour GFA-Basic) (108 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 14:41 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ce topic est destiné à donner des idées sur ce projet et surtout à l'orienter.
Martial Demolins c'est proposé pour réaliser ce projet. :)

Voici ce que je propose:
- Un éditeur fournissant un espace assez important pour afficher le code, plus on voit de code mieux s'est.
- Une fonte perso de faible taille avec caractères accentuées enregistrés dans un fichier externe (histoire à l'avenir de changer la fonte) format qui devra pouvoir être repris pour des programmes en GFA-Basic. Si possible supportant mode gras, italique souligné en les combinant.

Je propose le format suivant est les fonctions d'utilisation de la fonte:
.byte*8 = Magic (GFA_FNT + version).
.byte*16 = Nom de la fonte.
.byte = Mode graphique (n&b ou gray)
.byte = Nombre de caractères dans le fichier
.byte = Caractère de début. (Généralement 33 mais peut être 0...).

.byte = Taille en hauteur du caractère 0.
.byte = Taille en largeur du caractère 0.
...

Si mode 0 (n&b).
.byte*8*n caractères = Sprites des caractères

Si mode 1 (grayscale). Mode entrelacé.
.byte = Plan0 caractère 0 line0.
.byte = Plan1 caractère 0 line0.
.byte = Mask caractère 0 line0 (à voir pour le masque)!
...

Pour les fonctions:

GFA_FONT_OpenFile = Ouverture d'un fichier font, lock de son handle et vérifications divers. But du jeu retourner quelque chose exploitable pour toutes les fonctions de GFA_FONT (une structure) regroupant des infos pertinante (pointeur début zone sprite.... et non le nom de la fonte... ça se retrouve ça). Permettre aussi de régler le nombre d'espaces entre chaque caractères.

GFA_FONT_DrawStrWidth = Retourne la taille en pixels d'une chaîne de caractères.

GFA_FONT_DrawChar = Dessine un caractère clippé avec le mode graphique voulu (gras, souligné...).

GFA_FONT_DrawStr = Dessine une chaîne de caractères dans le mode voulu.

Pour d'autres fonctions suffit de proposer.

Pour revenir à GFA-Editor de préférence un menu rétractable et facilement configurable.

Pour la gestion des fontes je me propose à réaliser certaines fonctions... :)



Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°1   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 14:45 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Pour un gain mémoire il est possible de passer la table donnant la taille de chaque caractères sur 4 bits c'est à dire 4 bits pour la hauteur et 4 bits pour la taille, on a un gain d'environ 128 octets par fontes.
De plus il sera pourquoi pas possible d'appliquer une compression RLE de base sur chaque fichier. Bref arriver à des fichiers de 400 octets par fonte ne me paraît pas impossible. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°2   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 14:56 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Encore mieux, inutile de spécifier la hauteur de chaque caractères. Des fontes de x*8 suffisent largement.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°3   Marquer comme non lu.
FpgForce Ecrit le: Lundi 18 avril 2005 à 15:01 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

Et bien t'as du boulot martial :D
Sinon c'est vraiment sympa l'editeur ;)
    
./Post n°4   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 15:01 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Pas mal effectivement le format, mais ça me semble encore optimisable sans trop perdre en vitesse, je regarderai mieux ce soir (le patron est pas loin^^).

Sinon je dirais que la fonte est importante, mais reste un détail.

Comm geogeo l'a dit au début, je commence la réalisation d'un éditeur pour GFA-Basic on-calc. Je ferai ce soir (quand le patron sera plus loin ^^) une liste des features que j'ai projeté de programmer, cependant j'attends dès maintenant vos propositions.
Que vous soyez programmeurs en GFA-Basic, ou que vous ayez juste la bonne idée qui va bien, je suis preneur. :)

Merci d'avance pour votre participation ;)
-Edité le Lundi 18 avril 2005 à 15:09 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°5   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 15:23 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ah oui j'espère que tu n'utilises pas les interruptions d'AMS c'est-à-dire la 1 et la 5 doivent être redirigées ou désactivées (bref ne pas utiliser celles d'AMS). :D

J'ai des fonctions qui peuvent t'interesser comme _kb_getkey qui retourne le code de la touche pressée genre ESC = 264... Elle doit quand même être un peu modifié pour mémoriser l'appui de 2nd, et Shift par exemple. Le layout du clavier peut être facilement modifié. :) Genre ajouter des combinaisons...

Aussi une fonction type rowread assez compacte. :)

Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°6   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 15:27 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


je pensais utiliser ngetchx pour la simplicité...
après les int, suffit de les désactiver =)

edit-> au pire, j'ai une lib de lecture de clavier à bas niveau (sur les ports quoi), juste à la mettre en statique si je veux xD (ça met juste le Z-flag à 0 ou 1 si la touche voulue est pressée ou non :) ).

re-edit-> même que ça me tente bien cette solution :D

re-re-edit-> on passe une touche en argument hein, ça renvoie pas vrai pour n'importe quelle touche évidemment ^^

-Edité le Lundi 18 avril 2005 à 19:27 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°7   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 16:36 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je te met les sources, après à toi de voir:

| Assembly Source File
| Created 24/08/2004, 13:36:53
| C prototype: unsigned short _kb_getkey ();

     xdef    _kb_getkey

_kb_getkey:     
     movem.l  %d1-%d4,-(%SP)
     move.w   CALCULATOR,%d4
     moveq.l  #0,%d0
     moveq.l  #0,%d1
     
     lea.l    _kb_key_masks,%a0    |Masque de column
     moveq.l  #8,%d2      |TI92+/V200
     tst.b    %d4      |Test calculatrice
     jbne    _kb_getkey_loop_row
     moveq.l  #5,%d2      |TI89
     addq.l   #6,%a0
_kb_getkey_loop_row:
     move.w   (%a0)+,0x600018
     moveq.l  #6,%d3
_kb_getkey_loop_hardware:
     dbf      %d3,_kb_getkey_loop_hardware
     move.b   0x60001B,%d1
     moveq.l  #7,%d3       |compteur de col 
_kb_getkey_loop_col:
     lsr.b    #1,%d1
     jbcc     _kb_getkey_lastrow   |on quitte si detection d'une touche
     addq.w   #1,%d0
     dbf      %d3,_kb_getkey_loop_col   |fin de boucle col
     dbf      %d2,_kb_getkey_loop_row   |fin de boucle row
_kb_getkey_lastrow:
     move.w   #0xFFFE,0x600018     |masque du bit 0     
     moveq.l  #7,%d3
_kb_getkey_lastrow_loop_hardware:
     dbf      %d3,_kb_getkey_lastrow_loop_hardware     
     move.b   0x60001B,%d1     |on recupere la row
     move.b   %d1,%d2
     |Détection calculatrice pour layout
     tst.b    %d4
     jbne     _kb_calc92_retval    |TI92+
            
|Layout TI89     
_kb_calc89_retval:
     cmpi.w   #48,%d0
     jbne    _kb_calc89_endarrows
|lecture des flèches
     lsr.b    #1,%d1
     jbcc     _kb_calc89_endarrows   |on quitte si detection d'une touche
     addq.w   #1,%d0       |on incremente d0 (index)
     lsr.b    #1,%d1
     jbcc     _kb_calc89_endarrows   |on quitte si detection d'une touche
     addq.w   #1,%d0       |on incremente d0 (index)
     lsr.b    #1,%d1
     jbcc     _kb_calc89_endarrows   |on quitte si detection d'une touche
     addq.w   #1,%d0       |on incremente d0 (index)
     lsr.b    #1,%d1
     jbcc     _kb_calc89_endarrows   |on quitte si detection d'une touche
|quitte avec 0 si aucune touche n'est pressée
     moveq.l  #0,%d0
     movem.l  (%SP)+,%d1-%d4
     rts
     
_kb_calc89_endarrows:  
     lsl.b    #1,%d2
     jbcc     _kb_calc89_alpha
     lsl.b    #1,%d2
     jbcc     _kb_calc89_diamond
     lsl.b    #1,%d2
     jbcc     _kb_calc89_shift
     lsl.b    #1,%d2
     jbcc     _kb_calc89_2nd
     lea.l    _kb_key_data_89_normal,%a0
     jbra     _kb_return
_kb_calc89_shift:
     lea.l    _kb_key_data_89_shift,%a0
     jbra     _kb_return 
_kb_calc89_alpha:
     lea.l    _kb_key_data_89_alpha,%a0
     jbra     _kb_return     
_kb_calc89_2nd:
     lea.l    _kb_key_data_89_2nd,%a0
     jbra     _kb_return     
_kb_calc89_diamond:
     lea.l    _kb_key_data_89_diamond,%a0
     jbra     _kb_return

|Layout TI92+/V200     
_kb_calc92_retval:
     cmpi.w   #72,%d0
     jbne     _kb_calc92_endarrows
|lecture des flèches
     lsl.b    #1,%d1
     jbcc     _kb_calc92_endarrows   |on quitte si detection d'une touche
     addq.w   #1,%d0       |on incremente d0 (index)
     lsl.b    #1,%d1
     jbcc     _kb_calc92_endarrows   |on quitte si detection d'une touche
     addq.w   #1,%d0       |on incremente d0 (index)
     lsl.b    #1,%d1
     jbcc     _kb_calc92_endarrows   |on quitte si detection d'une touche
     addq.w   #1,%d0       |on incremente d0 (index)
     lsl.b    #1,%d1
     jbcc     _kb_calc92_endarrows   |on quitte si detection d'une touche
|quitte avec 0 si aucune touche n'est pressée
     moveq.l  #0,%d0
     movem.l  (%SP)+,%d1-%d4
     rts  

_kb_calc92_endarrows:
|lecture des stat keys
     lsr.b    #1,%d2
     jbcc     _kb_92P_V200_2nd
     lsr.b    #1,%d2
     jbcc     _kb_92P_V200_diamond
     lsr.b    #1,%d2
     jbcc     _kb_92P_V200_shift
     lsr.b    #1,%d2
     jbcc     _kb_92P_V200_lock     
     lea.l    _kb_key_data_92P_V200_normal,%a0
     jbra     _kb_return
          
_kb_92P_V200_shift:
     lea.l    _kb_key_data_92P_V200_shift,%a0
     jbra     _kb_return
_kb_92P_V200_2nd:
     lea.l    _kb_key_data_92P_V200_2nd,%a0
     jbra     _kb_return     
_kb_92P_V200_diamond:
     lea.l    _kb_key_data_92P_V200_diamond,%a0
     jbra     _kb_return    
_kb_92P_V200_lock:
     lea.l    _kb_key_data_92P_V200_lock,%a0   
 
_kb_return:
     add.w    %d0,%d0
     lea.l    (%d0.w,%a0),%a0
     move.w   (%a0),%d0
_kb_end:
     movem.l  (%SP)+,%d1-%d4
     rts          
 
|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|; données
|masques précalculés
_kb_key_masks:
     .word    0xFDFF,0xFEFF,0xFF7F,0xFFBF,0xFFDF,0xFFEF,0xFFF7,0xFFFB,0xFFFD
     
|codes de touches
_kb_key_data_92P_V200_normal:
     .word    45,13,97,113,271,48,46,173
     .word    257,136,108,111,43,266,264,0
     .word    61,109,107,105,272,263,265,42
     .word    94,110,106,117,268,262,13,112
     .word    47,98,104,121,273,259,260,261
     .word    32,118,103,116,269,40,41,44
     .word    258,99,102,114,274,55,56,57
     .word    0,120,100,101,270,52,53,54
     .word    0,122,115,119,275,49,50,51
     .word    344,340,338,337

_kb_key_data_92P_V200_shift:
     .word    45,13,65,81,271,48,46,173
     .word    257,136,76,79,43,266,264,0
     .word    61,77,75,73,272,263,265,42
     .word    94,78,74,85,268,262,13,80
     .word    47,66,72,89,273,259,260,261
     .word    32,86,71,84,269,40,41,44
     .word    258,67,70,82,274,55,56,57
     .word    0,88,68,69,270,52,53,54
     .word    0,90,83,87,275,49,50,51
     .word    33112,33108,33106,33105
     
_kb_key_data_92P_V200_2nd:
     .word    4141,4109,0,63,271,60,62,4372
     .word    4353,58,34,0,4139,266,4360,0
     .word    92,59,124,151,272,263,4361,4138
     .word    140,0,190,0,268,4358,4109,95
     .word    93,39,38,18,273,4355,4356,4357
     .word    32,157,0,35,269,123,125,91
     .word    4354,0,159,64,274,4151,4152,4153
     .word    0,169,176,0,270,4148,4149,4150
     .word    0,0,223,33,275,149,4146,4147
     .word    4440,4436,4434,4433
     
_kb_key_data_92P_V200_diamond:
     .word    0,8205,8257,8273,8463,8240,8238,8365
     .word    8449,8328,8268,8271,0,8458,8456,0
     .word    8253,8269,8267,8265,8464,8455,8457,8234
     .word    8286,8270,8266,8277,8460,8454,8205,8272
     .word    8239,8258,8264,8281,8465,8451,8452,8453
     .word    8224,8278,8263,8276,8461,8232,8233,8236
     .word    8450,8259,8262,8274,8466,8247,8248,8249
     .word    0,8280,8260,8261,8462,8244,8245,8246
     .word    0,8282,8275,8279,8467,8241,8242,8243
     .word    8536,8532,8530,8529
     
_kb_key_data_92P_V200_lock:
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    0,0,0,0,0,0,0,0
     .word    33112,33108,33106,33105
 
 
_kb_key_data_89_normal:
     .word    264,0,0,0,0,0,0,0
     .word    265,258,149,124,61,120,277,268
     .word    48,49,52,55,40,121,266,269
     .word    46,50,53,56,41,122,278,270
     .word    173,51,54,57,44,116,257,271
     .word    13,43,45,42,47,94,263,272
     .word    338,337,344,340
 
_kb_key_data_89_shift:
     .word    264,0,0,0,0,0,0,0
     .word    265,80,75,70,65,88,277,268
     .word    86,81,76,71,66,89,266,269
     .word    87,82,77,72,67,90,278,270
     .word    32,83,78,73,68,84,257,271
     .word    13,85,79,74,69,94,263,272
     .word    16722,16721,16728,16724   
     
_kb_key_data_89_alpha:
     .word    264,0,0,0,0,0,0,0
     .word    265,112,107,102,97,120,277,268
     .word    118,113,108,103,98,121,266,269
     .word    119,114,109,104,99,122,278,270
     .word    32,115,110,105,100,116,257,271
     .word    13,117,111,106,101,94,263,272
     .word    33106,33105,33112,33108
     
_kb_key_data_89_2nd:
     .word    4360,0,0,0,0,0,0,0
     .word    4361,4354,159,176,39,4184,4373,273
     .word    60,34,58,4151,123,4185,18,274
     .word    62,92,4149,4152,125,4186,151,275
     .word    4372,4147,4150,59,91,4180,4353,271
     .word    4109,4139,4141,4138,93,140,263,272
     .word    4434,4433,4440,4436
     
_kb_key_data_89_diamond:
     .word    8456,0,0,0,0,0,0,0
     .word    8457,64,8341,8316,157,8280,277,8460
     .word    156,8241,8244,8247,0,8281,95,8461
     .word    158,8242,8245,8248,169,8282,190,8462
     .word    8365,8243,8246,8249,8236,8276,8449,8463
     .word    8205,0,0,38,33,136,8455,8464
     .word    8530,8529,8536,8532 
     .even
     
     .end


|*****************
|Optimized rowread
|*****************
|C prototype: void _rowread2 (unsigned short row);
|
|unsigned char _rowread2 (register unsigned short row asm("%d1"));

| d1.w: keyboard row mask
| Outputs column mask in d1.b
  xdef  _rowread2

_rowread2:
  not.w   %d1
  andi.w  #0x03FF,%d1
  move.w  %d1,(0x60001
  moveq.l #6,%d1
__rr_loop_hardware:
  dbf     %d1,__rr_loop_hardware
  | Read value and store it in d1
  move.b  (0x60001B),%d1
  not.b   %d1
  rts
  
  .end

-Edité le Lundi 18 avril 2005 à 16:37 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°8   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 16:40 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


ah oué carrément!
Merci bien en tout cas, en fait, j'ai jamais eu l'utilité d'avoir le code d'une touche comme on les retrouve en basic, donc je me suis jamais amusé à faire toute une table de données pour toutes sortes de clavier :D
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°9   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 18 avril 2005 à 17:41 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Pourquoi est-ce que l'IDE ne devrait pas utiliser les interruptions de AMS? Elle n'est pas en GFA BASIC, elle...
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°10   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 19:24 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


De toute façon, j'ai pas d'animations ou autres, alors je compte pas trop m'en servir.
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°11   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 19:38 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Kevin Kofler :
Pourquoi est-ce que l'IDE ne devrait pas utiliser les interruptions de AMS? Elle n'est pas en GFA BASIC, elle...


Tout simplement parce que GFA-TEM sera intégré.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°12   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 19:41 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Alors voilà, je déballe en vrac comment je compte m'y prendre:

-Tout sera programmé en assembleur, le C c'est pas mon truc :D

-L'éditeur sera en niveaux de gris, ça sera plus zouli #love#

-L'indentation sera automatique pour faciliter la vie du programmeur

-Grâce au gray, il y aura une coloration syntaxique (mieux que dans SIDE j'éspère #sick#)

-La font utilisée sera celle grâcieusement fournie par geogeo (il s'est proposé, et je ne suis pas un assez bon graphiste pour faire ça :D)

-Partage d'écran optionnel, horizontal ou vertical pour visualiser des parties de codes distantes sans avoir à se taper des scrolling de 10 minutes ^^ (à voir, sur un seul et même fichier, ou sur deux, je sais pas encore)

-Utilisation de la totalité de l'écran pour coder, les différent menus n'apparaitront que lors de l'appui sur une touche de fonction, ou une touche genre APPS ou MODE

-Accès à une table de caractères un peu mieux foutue que celle d'AMS

-Fonctions classiques d'un éditeur, couper/copier/coller, rechercher/remplacer, etc...

-Fonctions adaptées au langages: menus permettant l'insertion de structures, mots-clé et fonctions du GFA-Basic

-Enfin, je me pencherai vraiment sur les features du programme GFA-Basic, pour quelques petits truc en plus (matching des parenthèses par exemples, ou encore d'autres broutilles)

Je me concentrerai dans un premier temps sur l'éditeur de texte pur, puis je verrai avec geogeo quoi faire du fichier texte fourni en détail (parser, débuggage, etc...)

Comme vous voyez, c'est encore plus à l'état de réflexion que de code (c'est à peine commencé de la nuit de samedi à dimanche =) ), donc si vous avez des idées, des suggestions, c'est exactement le moment, plus on prend ces choses là en compte vite, plus c'est facile de les implémenter.

Voilà voilà, j'attends vos réactions. ;)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°13   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 19:45 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Nickel, faudrait par contre assez vite définir le format des fontes... Plus vite ça sera codé mieux ça sera pour toi. :)

Sinon le scanner, parseur... tout ça, je reste en C hein :D
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°14   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 19:45 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


geogeo
GFA_FONT_OpenFile = Ouverture d'un fichier font, lock de son handle et vérifications divers. But du jeu retourner quelque chose exploitable pour toutes les fonctions de GFA_FONT (une structure) regroupant des infos pertinante (pointeur début zone sprite.... et non le nom de la fonte... ça se retrouve ça). Permettre aussi de régler le nombre d'espaces entre chaque caractères.

GFA_FONT_DrawStrWidth = Retourne la taille en pixels d'une chaîne de caractères.

GFA_FONT_DrawChar = Dessine un caractère clippé avec le mode graphique voulu (gras, souligné...).

GFA_FONT_DrawStr = Dessine une chaîne de caractères dans le mode voulu.

Qui sera chargé d'écrire ces fonctions? Moi je veux bien, surtout que je suis pour le moment le principal intéressé, il me les faut dans l'éiteur. Mais ne serait-il pas plus intéressant d'en faire une lib statique (avec pourquoi pas une font par défaut intégrée, mais à voir)?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°15   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 19:46 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


geogeo :
Nickel, faudrait par contre assez vite définir le format des fontes... Plus vite ça sera codé mieux ça sera pour toi. :)

C'est clair, je vais y réfléchir de ce pas!
Sinon le scanner, parseur... tout ça, je reste en C hein :D

#gni# x 10
-Edité le Lundi 18 avril 2005 à 19:46 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°16   Marquer comme non lu.
geogeo Ecrit le: Lundi 18 avril 2005 à 19:47 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je me propose pour coder ça mais niveau graphismes je suis une bouse donc au début ça sera une pauvre fonte en n&b. (toute façon j'ai déjà un outil pratique pour convertir en moins de 10 secondes 256 sprites. ;))
Je coderai ça en ASM et je pense qu'en effet une lib statique ça serait cool. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°17   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 19:51 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


ah pas mal ton outil. Sinon, je pense que rester dans l'esprit d'une fonte en n&b, c'est très bien, surtout de la taille qu'on veut la faire, il faut que ça reste facile à lire, ça me semble essentiel.

Et tu me ferais tellement plaisir si tu faisais une fonte à taille fixe :D
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°18   Marquer comme non lu.
Folco Ecrit le: Lundi 18 avril 2005 à 20:03 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


voilà ce que je pense pour le format d'une fonte:


.byte*8 = Magic (GFA_FONT).             vraiment besoin d'un numéro de version?? au pire, c'est pas très grave, mais je doute que ce soit utile, vu qu'il y a déjà un nom
.byte*16 = Nom de la fonte.

.byte = Caractère de début. (Généralement 33 mais peut être 0...).

.byte = Taille en hauteur du caractère 0.
.byte = Taille en largeur du caractère 0.
.byte*8*n caractères = Sprites des caractères


sinon pour le nombre de caractères, je pense qu'il faudrait imposer 128 ou 256, ça serait plus simple, et ça permettrait de mettre cette info (donc juste un bit) ailleurs (par exemple, réduire le nom de la font à 15 caractères, et utiliser le dernier octet comme flag.
sinon pour le mode graphique, celui qui veut afficher en gray ou avec des effets se débrouille avec ses plans, c'est pas si dur :D

Et sinon, pour la manière d'enregister les sprites des caractères, je pense avoir une léthode qui gagnerait un max de place (mais qui demanderait une décompression du fichier de fonte avant son utilisation).
Et avec tout ça, on devrait arriver à un fichier fonte très léger.
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°19   Marquer comme non lu.
FpgForce Ecrit le: Mardi 19 avril 2005 à 08:43 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

Concernant les NVG et la coloration syntaxique faudrait voir à mettre des options pour la desactiver, si c'est possible, parce que ça risque de bouffer des piles lorsqu'on programme ^^
    
  :: Index » GFA-Basic TI68K » News » GFA-Basic Editor (Futur éditeur de sources pour GFA-Basic) (108 réponse(s))
Pages : 1/6     « [1] 2 3 4 5 6 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 54.36ms avec 18 requetes