Vous n'êtes pas identifié.
Pages: 1
Salut à tous!
Ça fais un baille que je ne suis plus venu par ici, j'ai un peu mis de côté la programmation G100 pour me mettre à la prog sur PC.
Cela dis j'ai toujours ma g100+ qui ne m'a pas encore fais d'erreur mémoire (après un retour SAV quand même )
Donc, pour en revenir au sujet, à l'époque ou je débutais le C sur G100, quelqu'un avait codé une fonction permettant d'afficher une un string avec une police perso (en mode "graphique" quoi)
J'apprend actuellement le SDL sous Linux, et je commence à écrire quelques routines pour afficher des sprites, et je m'interesse notemment à l'écritures de strings.
Je voudrais donc savoir si qqun peut m'indiquer où puis-je trouver la routine permettant de faire cela sur G100, afin que je m'en inspire
de mémoire, c'était Whyp ou 2072 qui avait fais ça... mais je peux rien garantir
Voilà, je vous remerci
PS: J'ai plus de cable PC-G100 malheureusement, donc exit le développement sur G100, vu le prix du cable...
PS2: Existe-t-il néanmoins des outils pour compiler et transferer des programmes vers G100 depuis Linux ?
À+
Hors ligne
Et bien ce genre de chose existe dans tout le programmes utilisant des polices personnelles !
Dont Dixplor, Gcomm,...
Hors ligne
J'ai téléchargé le code source de GComm mais je n'y ai pas trouvé mon bonheur
même pas le tableau pour les polices :?
Je vais continuer à chercher, merci
Hors ligne
normal la police de Gcomm est dans un fichier externe !
Source de starscappe, sb1 & 2, metalgear ...
Hors ligne
Merci à tous pour votre aide, mais finalement j'ai réussi à faire ça tout seul
Par contre je sais pas trop si ma méthode est super optimisée...
J'ai (enfin je dois) créer des tableau de 6*13 de Uint8 (unsigned char) contenant des 1 ou des 0 (je pourrais les mettre bool mais pour des raisons de compatibilitée avec d'autres sprites, je préfère laisser comme ça) puis j'ai une routine qui m'affiche un sprite de 6*13.
Pour la fonction qui s'occupe de "parser" le string, voici ce que j'ai fais:
void DrawString_6x13(SDL_Surface *DestScreen, Uint32 StartX, Uint32 StartY, char *str) { Uint8 StrSize = sizeof(str); bool Drawed = true; for(Uint8 StrPos = 0; StrPos < StrSize; StrPos++) { switch(str[StrPos]) { case 'a': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Chara); break; default: Drawed = false; } if(Drawed) // Si le caractère a été déssiné, alors on incrémente la position StartX += 7; Drawed = true; } }
Je dois me tapper un case 'X' pour toute les lettres minuscules + maj + symboles :?
Je suis sûr qu'il y'a mieux, mais bon je suis pas encore un pro
Merci à tous!
Salut!
Pour ce qui est de la fonction, c'est pas mal, mais je pense que tu peux gagner un cycle en utilisant un if plutôt qu'un switch...
L'instruction Default est réalisée si aucune autre ne l'est... Ca équivaut à un else...
Je te propose:
if( str[StrPos]=='a') { DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Chara); } else { Drawed = false; };
Ou encore d'initialiser Drawed à false, et ensuite de ne la changer que si l'on rencontre Str[StrPos]=='a' (structure if).
Voili voilou!
Hors ligne
Salut
Tu as du mal lire:
Je dois me tapper un case 'X' pour toute les lettres minuscules + maj + symboles
En fait, maintenant j'ai:
for(Uint8 StrPos = 0; StrPos < StrSize; StrPos++) { switch(str[StrPos]) { case ' ': // Évite le default et incrémente la position break; case 'a': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Chara); break; case '0': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int0); break; case '1': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int1); break; case '2': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int2); break; case '3': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int3); break; case '4': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int4); break; case '5': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int5); break; case '6': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int6); break; case '7': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int7); break; case '8': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int8); break; case '9': DrawSprite_6x13(DestScreen, StartX, StartY, SDL_Police_Int9); break; default: Drawed = false; } if(Drawed) // Si le caractère a été déssiné, alors on incrémente la position StartX += 7; Drawed = true; }
Mais merci pour ton aide
Je pense garder comme ça... j'vois pas d'autres moyens de toute manière :?
À+!
PS: C'est possible de se fabriquer un cable casio-PC qui marche avec un logiciel de transfert sous Linux? :P
Hors ligne
ps --> OUI
Hors ligne
vi que Flash100 marche sosu linux, oui
et vu que le port série est supporté par linux, bah un cable normal marcherais !
Hors ligne
Oui je me doute que ça marcherai avec un cable normal, le problème c'est que je n'ai plus de cable normal :?
essaye de faire un tableau de sprites qui suivent le code ascii, à partir de l'espace, t'aurais juste à faire ceci:
drawsprite(x, y, sprite[caractere-' ']);
Hors ligne
Pas bête du tout, mais bon là j'ai déjà bien avancé et j'ai un peu la flemme :?
Merci quand même
Hors ligne
bah tient je te file ascii.h c bah bibliotheque pour cwexplorer ki a été repris completement ( depuis zéro koi) et ki devait etre présenter pour le concours UCN mais le port de ma graph100 est dead ! donc je dois faire ca avec le compilo et je pe pas tout testé avec le compilo
ps: le lien ftp va arrivé bientot
...
voyons casioworld un peu de contenance tout de même :mrd:
Hors ligne
Merci Casioworld, j'attend avec impatience :-)
Hors ligne
Tjrs rien Casioworld? :P
Hors ligne
si j'ai bien compri il é à Londres é va sur internet à partir d'un cybercafé
donc on risk pa de le revoir ce weekend mé pluto(pa Mickey ahahah je sui drole)la semaine prochaine
Hors ligne
Ah ok, merci
Hors ligne
Bon en fait vous emmerdez pas, j'ai trouvé SDL_ttf qui me permet de faire ça... et ça marche
Merci quand même pour votre aide!
Hors ligne
ca marche et c'est de tres bonne qualité mais c'est loin d'être aussi rapide :P mais bon si tu cherches quelque chose de tres beau et antialiasé c'est clairement SDL_ttf qu'il te faut, car ca utilise la bibliotheque freetype.
Si par contre tu preferes afficher rapidement va voir sur libsdl.org il y a plein de liens vers des bibliotheques permettant de le faire (BFont ou DFont par exemple)
Hors ligne
Ok merci, mais bon de toute manière, la rapiditée n'est pas importante du tout dans ce que je veux faire
Merci
Hors ligne
Pages: 1