From 0bb8133764826228a8f70defed8c173a6ea08ef3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 11 Jul 2017 15:29:28 +0900 Subject: [PATCH] more contribution guidelines --- README.md | 35 +++++++++++++++++++++++++------- glyph_height_pos_annotation.png | Bin 0 -> 18915 bytes 2 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 glyph_height_pos_annotation.png diff --git a/README.md b/README.md index 7da5d3f..e383349 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,6 @@ The issue page is open. If you have some issues to submit, or have a question, p - You can't display Bulgarian, Russian and Serbian variants at the same time without some more codes; ```reload()```ing them or creating multiple instances of the font would be the easiest solutions. - All Han characters are in Chinese variant, no other variants are to be supported as most Chinese, Japanese and Korean can understand other's variant and to be honest, we don't bother anyway. -## Contribution guidelines - -You can contribute to the font by fixing wrong glyphs, suggesting better ones, extending character set (letters for other writing systems or filling in the blanks on the existing ones), or code for other game frameworks (not limited to Java). Please leave pull request for that. - -Font Spritesheets are stored in ```assets/graphics/fonts``` directory. Image format must be TGA with Alpha — no PNG. If someone needs PNG, they can batch-convert the font using utils like ImageMagick. - ## Using on your game @@ -115,7 +109,34 @@ Color codes are individual unicode characters. While you can somehow make a raw U+100000 is used to disable previously-applied color codes (going back to original colour), although it may seem like RGBA of all zero. -## Font metrics + +## Contribution guidelines + +You can contribute to the font by fixing wrong glyphs, suggesting better ones, extending character set (letters for other writing systems or filling in the blanks on the existing ones), or code for other game frameworks (not limited to Java). Please leave pull request for that. + +Font Spritesheets are stored in ```assets/graphics/fonts``` directory. Image format must be TGA with Alpha — no PNG. If someone needs PNG, they can batch-convert the font using utils like ImageMagick. + + +### Ascenders, descenders, width informations + +![Alas, use more modern browser or get better internet connexion!](https://github.com/minjaesong/Terrarum-sans-bitmap/blob/master/glyph_height_pos_annotation.png) + +Above image is a reference you can use while you draw some letters. Capital B is drawn as a reference. Orange-tinted area is for lowercase, x-height must be the same as that of said tinted area (lowercase Alpha is also drawn for the reference). NOTE THAT x-height is taller than centre bar (capital A is an exception). Height of the ascender of the lowercase letters must be the same as height of capital letters. + +Red-tinted area SHOULD NOT CONTAIN any dots, it's emptied for compatibility. (Slick2d—you can define size of "gaps" of the spritesheet, but you can't define horizontal and vertical gap separately) + +Blue-tinted area cotains width of the glyph in binary, uppermost dot is the Least Significant Bit. + +Green-tinted area contains extra informations, left blank for most cases. (will be expanded later; no standard has been issued yet) + +Tinted-in-magenta shows the height where diacritics should be placed, for both uppercase and lowercase. + +Each cell is 16 px wide, and any glyph you draw **must be contained within leftside FIFTEEN pixels**. + + + + +### Font metrics Although the font is basically a Spritesheet, some of the sheet expects variable widths to be supported. Any sheets with ```_variable``` means it expects variable widths. Anything else expects fixed width (regular Spritesheet behaviour). ```cjkpunct``` has width of 10, ```kana``` and ```hangul_johab``` has width of 12, ```wenquanyi``` has width of 16. diff --git a/glyph_height_pos_annotation.png b/glyph_height_pos_annotation.png new file mode 100644 index 0000000000000000000000000000000000000000..1f82ab4d8a9eb9e5685768aca6cd37791e27c115 GIT binary patch literal 18915 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 XOu!VM^nY6b_~l^ZY@KK2v-y7jPA$(p literal 0 HcmV?d00001