|
| creer ses propres fonts | |
| | Auteur | Message |
---|
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: creer ses propres fonts Dim 7 Fév 2010 - 22:22 | |
| Bonjours à tous, pour un jeu, je voulais creer mon propre fonts pour avoir de l'originalité. Chose faite, vu que je ne suis pas le seul à vouloir le faire, je publie deux scripts et mon font qui est un sprite-strip qui faudra charger sur l'editeur d'image en tant que strip. voici l'image en strip : Le font en sprite Les deux script : - Spoiler:
scr_letter - Citation :
- var ltr; ltr=argument0
if ltr=' ' { return 36; exit } if string_digits(ltr)!='' { return real(ltr); exit } else if string_letters(ltr)!='' { str=string_letters(ltr)
if str='a' || str='A' return 10+0 else if str='b' || str='B' return 10+1 else if str='c' || str='C' return 10+2 else if str='d' || str='D' return 10+3 else if str='e' || str='E' return 10+4 else if str='f' || str='F' return 10+5 else if str='g' || str='G' return 10+6 else if str='h' || str='H' return 10+7 else if str='i' || str='I' return 10+8 else if str='j' || str='J' return 10+9 else if str='k' || str='K' return 10+10 else if str='l' || str='L' return 10+11 else if str='m' || str='M' return 10+12 else if str='n' || str='N' return 10+13 else if str='o' || str='O' return 10+14 else if str='p' || str='P' return 10+15 else if str='q' || str='Q' return 10+16 else if str='r' || str='R' return 10+17 else if str='s' || str='S' return 10+18 else if str='t' || str='T' return 10+19 else if str='u' || str='U' return 10+20 else if str='v' || str='V' return 10+21 else if str='w' || str='W' return 10+22 else if str='x' || str='X' return 10+23 else if str='y' || str='Y' return 10+24 else if str='z' || str='Z' return 10+25 } et draw_txt_spr - Citation :
- /*
arg0=sprite arg1=x arg2=y arg3=txt arg4=halign arg5=valign
vali=0 -> fa_top vali=1 -> fa_middle vali=2 -> fa_bottom
hali=0 -> fa_left hali=1 -> fa_center hali=2 -> fa_right */ var spr;spr=argument[0] var xx;xx=argument[1] var yy;yy=argument[2] var txt;txt=argument[3] var hali;hali=argument[4] var vali;vali=argument[5]
var lentxt;lentxt=string_length(txt) var sprw;sprw=sprite_get_width(spr) var sprh;sprh=sprite_get_height(spr)
for(i=1;i<=lentxt;i+=1) { if hali=0 { if vali=0 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx+(i-1)*sprw,yy) else if vali=1 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx+(i-1)*sprw,yy-sprh/2) else if vali=2 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx+(i-1)*sprw,yy-sprh) } else if hali=1 { if vali=0 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx-(lentxt*sprw)/2+(i-1)*sprw,yy) else if vali=1 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx-(lentxt*sprw)/2+(i-1)*sprw,yy-sprh/2) else if vali=2 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx-(lentxt*sprw)/2+(i-1)*sprw,yy-sprh) } else if hali=2 { if vali=0 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx-(lentxt*sprw)+(i-1)*sprw,yy) else if vali=1 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx-(lentxt*sprw)+(i-1)*sprw,yy-sprh/2) else if vali=2 draw_sprite(spr,scr_letter(string_char_at(txt,i)),xx-(lentxt*sprw)+(i-1)*sprw,yy-sprh) }
} Attention : Ne pas renommer le script 'scr_letter' pour que celui ci marche avec le second, en revenche, vous pouvez renommer le second à votre aiseExplication :- Spoiler:
draw_txt_spr : ce script, comme son nom l'indique, dessine le texte avec le sprite Ses argument : argument0 -> sprite argument1 -> x argument2 -> y argument3 -> le texte argument4 -> halign argument5 -> valign remarque : pour halign et valign ,vous pouvez mettre ce de Game Maker (à voire fa_left, fa_right, ect...), ca ne changera rien Exemple : draw_txt_spr(sprite0,320,240,'voici mon nouveau script',fa_center,fa_middle)
scr_letter : ce script vous permettra de renvoyer le numero de l'image (subimg) d'une lettre Ses argument : argument0 -> la lettre Exemple : scr_letter('A')
Remarque :- Spoiler:
- le seul script que vous aurez a exécuter, c'est draw_txt_spr(), comme un draw_text
- comme vous l'aurez remarquez, mon sprite va de 0 à 9 et de A à Z, il n'y a pas de signe encore (si vous mettez un signe, celui ci le comprendra comme un 0), mais ceci ne va pas tarder, je vais continuer le script pour avoir les signes
- eviter de mélanger les lettres, a moins de faire un codeur
- a la fin de tout les sprites, laissez une case vide, c'est l'espace.
Screenshot d'une aplication avec le script (et mon sprite): - Spoiler:
Premier screenSecond screen Petit plus : Mon sprite n'est pas parfait, il est plutot basique. Si vous avez fait vos propres sprite-fonts, adapté a ce script, merci le mettre sur le forum, pour le faire partager à tout le monde . |
| | | nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: creer ses propres fonts Dim 7 Fév 2010 - 22:26 | |
| Ca doit bien pomper ton affaire non ? Enfin sinon goudjawb |
| | | M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: creer ses propres fonts Dim 7 Fév 2010 - 23:22 | |
| font_add_sprite consomme moins... Mais ça reste un script intéressant! - Spoiler:
font_add_sprite(spr,first,prop,sep) Adds a new font and returns its index. The font is created from a sprite. The sprite should contain a subimage for each character. first indicate the index of the first character in the sprite. For example, use ord('0') if your sprite only contains the digits. prop indicates whether the font is proportional. In a proportional font, for each character the width of the bounding box is used as the character width. Finally, sep indicates the amount of white space that must separate the characters horizontally. A typical value would lie between 2 and 8 depending on the font size.
|
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: creer ses propres fonts Lun 8 Fév 2010 - 19:35 | |
| Tu devrais raccourcir tout ça ^^ , les else if etc c'est pas necessaire tu devrais remplacer - Spoiler:
if str='a' || str='A' return 10+0 else if str='b' || str='B' return 10+1 else if str='c' || str='C' return 10+2 else if str='d' || str='D' return 10+3 else if str='e' || str='E' return 10+4 else if str='f' || str='F' return 10+5 else if str='g' || str='G' return 10+6 else if str='h' || str='H' return 10+7 else if str='i' || str='I' return 10+8 else if str='j' || str='J' return 10+9 else if str='k' || str='K' return 10+10 else if str='l' || str='L' return 10+11 else if str='m' || str='M' return 10+12 else if str='n' || str='N' return 10+13 else if str='o' || str='O' return 10+14 else if str='p' || str='P' return 10+15 else if str='q' || str='Q' return 10+16 else if str='r' || str='R' return 10+17 else if str='s' || str='S' return 10+18 else if str='t' || str='T' return 10+19 else if str='u' || str='U' return 10+20 else if str='v' || str='V' return 10+21 else if str='w' || str='W' return 10+22 else if str='x' || str='X' return 10+23 else if str='y' || str='Y' return 10+24 else if str='z' || str='Z' return 10+25
par - Code:
-
if( ord(str)>=ord('a') && ord(str)<=ord('z') ) return 10 + ord(str) - ord('a') if( ord(str)>= ord('A') && ord(str)<=ord('Z') ) return 10 + ord(str) - ord('A')
|
| | | Invité Invité
| Sujet: Re: creer ses propres fonts Lun 8 Fév 2010 - 20:03 | |
| j'avais eu la même idée d'optimisation enfaite, sauf que j'ai voulu utiliser une boucle, ce qui est débile bien entendu :pac_gh: |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: creer ses propres fonts Lun 8 Fév 2010 - 20:12 | |
| Y a pleins de fonctions dans GM, faut pas s'en priver ^^ ! |
| | | glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: creer ses propres fonts Lun 8 Fév 2010 - 20:45 | |
| - onilink_ a écrit:
- Tu devrais raccourcir tout ça ^^ , les else if etc c'est pas necessaire
tu devrais remplacer
- Spoiler:
if str='a' || str='A' return 10+0 else if str='b' || str='B' return 10+1 else if str='c' || str='C' return 10+2 else if str='d' || str='D' return 10+3 else if str='e' || str='E' return 10+4 else if str='f' || str='F' return 10+5 else if str='g' || str='G' return 10+6 else if str='h' || str='H' return 10+7 else if str='i' || str='I' return 10+8 else if str='j' || str='J' return 10+9 else if str='k' || str='K' return 10+10 else if str='l' || str='L' return 10+11 else if str='m' || str='M' return 10+12 else if str='n' || str='N' return 10+13 else if str='o' || str='O' return 10+14 else if str='p' || str='P' return 10+15 else if str='q' || str='Q' return 10+16 else if str='r' || str='R' return 10+17 else if str='s' || str='S' return 10+18 else if str='t' || str='T' return 10+19 else if str='u' || str='U' return 10+20 else if str='v' || str='V' return 10+21 else if str='w' || str='W' return 10+22 else if str='x' || str='X' return 10+23 else if str='y' || str='Y' return 10+24 else if str='z' || str='Z' return 10+25
par - Code:
-
if( ord(str)>=ord('a') && ord(str)<=ord('z') ) return 10 + ord(str) - ord('a') if( ord(str)>= ord('A') && ord(str)<=ord('Z') ) return 10 + ord(str) - ord('A')
je cherchais comment faire ca, mais impossible de trouver l'algo, merci - Citation :
- font_add_sprite consomme moins...
Mais ça reste un script intéressant! je connaissait la fonction mais je ne savais pas comment l'utiliser edit : néanmoins ma fonction, comparé a 'font_add_sprite', ne permet pas d'utiliser la fonction 'draw_set_blend_mode', et elle est plus compliquée je trouve car je ne sais toujours pas l'utiliser... |
| | | [TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: creer ses propres fonts Mar 9 Fév 2010 - 1:25 | |
| Perso, j'utilise pas du tout cette méthode pour faire des font à partir de background ou de sprites en fait, je déclare une chaine de caractère qui contient les lettres (chifres, symboles, etc.) de mon image, et ensuite, avec une pauvre boucle, je parcours chaque lettre, quand je l'ai trouvée, j'ai juste à multiplier par la largeur d'une lettre pour savoir quel morceau d'image afficher ... Mais bon, tant que ça marche hein ... |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: creer ses propres fonts Mar 9 Fév 2010 - 17:59 | |
| C'est sur que c'est le mieux a faire, d'ailleur c'est le principe que j'utilise pour afficher les animations des mouvement de mes persos avec mes planches de sprite, et y a rien a dire c'est vraiment mieux que tous les sprites index et autres variables a la *** XD |
| | | glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: creer ses propres fonts Mar 9 Fév 2010 - 18:44 | |
| - [TheDarkTiger] a écrit:
- Perso, j'utilise pas du tout cette méthode pour faire des font à partir de background ou de sprites
en fait, je déclare une chaine de caractère qui contient les lettres (chifres, symboles, etc.) de mon image, et ensuite, avec une pauvre boucle, je parcours chaque lettre, quand je l'ai trouvée, j'ai juste à multiplier par la largeur d'une lettre pour savoir quel morceau d'image afficher ...
Mais bon, tant que ça marche hein ... Oui ta methode n'est vraiment pas bête du tout, c'est un peu la meme chose que scr_letter mais en moins long a ecrire |
| | | Invité Invité
| Sujet: reponse Mer 10 Fév 2010 - 18:06 | |
| Il existe des logiciels pour créer ces propres font. |
| | | glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: creer ses propres fonts Mer 10 Fév 2010 - 18:08 | |
| - Citation :
- Il existe des logiciels pour créer ces propres font.
l'important c'est le script dans tout cela. mais c'est vrai ! |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: creer ses propres fonts Mer 10 Fév 2010 - 20:39 | |
| Par contre les font seront des font vectoriels. |
| | | Contenu sponsorisé
| Sujet: Re: creer ses propres fonts | |
| |
| | | | creer ses propres fonts | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |