From 496c17276d8565cf81428726787060a459072834 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 27 Jul 2018 01:02:11 +0900 Subject: [PATCH] more sample text --- .idea/workspace.xml | 74 ++++++----- FontTestGDX/demotext.txt | 86 ++++++++++++- FontTestGDX/lib/TerrarumSansBitmap.jar | Bin 56332 -> 56625 bytes FontTestGDX/src/FontTestGDX.kt | 116 +++++++++++++++++- .../terrarumsansbitmap/gdx/GameFontBase.kt | 11 ++ 5 files changed, 245 insertions(+), 42 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f357af1..54a1bad 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,9 +8,9 @@ - - - + + + @@ -402,7 +411,7 @@ - + @@ -635,10 +644,27 @@ + + + + + + + + + + + + + + + + + - + @@ -647,17 +673,10 @@ - - - - - - - - - + + @@ -666,15 +685,8 @@ - - - - - - - - - + + diff --git a/FontTestGDX/demotext.txt b/FontTestGDX/demotext.txt index e72967b..f3f596d 100644 --- a/FontTestGDX/demotext.txt +++ b/FontTestGDX/demotext.txt @@ -1,6 +1,82 @@ -Do bạch kim rất quý nên sẽ dùng để lắp vô xương +The bitmap font for games developers who seek good font that has real multilingual support, +for free (as in freedom and without cost) + +There are many bitmap fonts on the internet. You care for the multilingual support, but alas! +most of them do not support your language, vector fonts take too much time to load, and even +then their legibility suffers because fuck built-in antialias. + +You somehow found a multilingual one, and it makes your game look like an old computer, and you say: + +“Well, better than nothing… no, it’s ugly.” + +You speak japanese and you wish to support it, but then このクソなfont only goot for displaying +Japanese, it's not even multilingual, and their English look uncanny and inconsistent as hell. + +Eventually you just mix different fonts together, and the results were always infuriating. + +No more suffering. This font has everything you need. + +while (isVisible(BAD_FONTS)) { + ripAndTear(BAD_FONTS).getByScope(GUTS); +} + +How multilingual? Real multilingual! + + Ианҵоуп ақьаад, нусхур аҩырала, ҩ ҽшьаҟакла, иҧшӡоу анапҩырала + Գրիչս վայր դրի, վեր կացա և պատրաստվում էի, որ քնեմ, երբ հանկարծ դռանս զանգակը հնչեց + Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq + Под южно дърво, цъфтящо в синьо, бягаше малко пухкаво зайче (BG) + Příliš žluťoučký kůň úpěl ďábelské ódy + Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen Walther spillede på xylofon + Pack my box with five dozen liquor jugs + Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich + διαφυλάξτε γενικά τη ζωή σας από βαθειά ψυχικά τραύματα + ΔΙΑΦΥΛΆΞΤΕ ΓΕΝΙΚΆ ΤΗ ΖΩΉ ΣΑΣ ΑΠΌ ΒΑΘΕΙΆ ΨΥΧΙΚΆ ΤΡΑΎΜΑΤΑ + სწრაფი ყავისფერი მელა გადაახტა ზარმაც ძაღლს + Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa + Ċuaiġ bé ṁórṡáċ le dlúṫspád fíorḟinn trí hata mo ḋea-ṗorcáin ḃig + とりなくこゑす ゆめさませ みよあけわたる ひんかしを そらいろはえて おきつへに ほふねむれゐぬ もやのうち + 田居に出で 菜摘むわれをぞ 君召すと 求食り追ひゆく 山城の 打酔へる子ら 藻葉干せよ え舟繋けぬ + 정 참판 양반댁 규수 큰 교자 타고 혼례 치른 날 하얬다 도럄직한 퀡봹퉪헰 + Četri psihi faķīri vēlu vakarā zāģēja guļbūvei durvis, fonā šņācot mežam + Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą + Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех + Щётканы фермд пийшин цувъя. Бөгж зогсч хэльюү + Pchnąć w tę łódź jeża lub ośm skrzyń fig + Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila + Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства + Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу (SR) + Jovencillo emponzoñado de whisky: ¡qué figurota exhibe! + นายสังฆภัณฑ์ เฮงพิทักษ์ฝั่ง ผู้เฒ่าซึ่งมีอาชีพเป็นฅนขายฃวด ถูกตำรวจปฏิบัติการจับฟ้องศาล ฐานลักนาฬิกาคุณหญิงฉัตรชฎา ฌานสมาธิ + Pijamalı hasta yağız şoföre çabucak güvendi + Жебракують філософи при ґанку церкви в Гадячі, ще й шатро їхнє п’яне знаємо + Do bạch kim rất quý nên sẽ dùng để lắp vô xương + 日堀油告観観藤村抄海評業庁経賃室弁市。太撮収改売週法所何都慣次現。価紙一無三洋日話転手治稿載末替付致治。 + +Featuring: + + Ever heard of « Guillemets »? You speak „Nederlands” or „Deutsch“? ”suomi”? 「日本語」しゃべる?或《中文》? + +Multilingual brackets; these are the most basic things, right? + + 99406 91902 59186 29182 45814 57862 34368 08240 + 31485 65379 04348 28952 42927 26157 42615 39526 + +Fixed-width numbers, because number-crunching matters + + 􏀏ᚱ􏄏ᛂ􏈏ᚴ􏌏ᛋ􏐏ᛂ􏔏ᛋ􏘏ᛏ􏜏ᛋ􏠏ᚮ􏤏ᚾ􏨏ᛔ􏬏ᚢ􏰏ᛏ􏴏ᛚ􏸏ᚮ􏼏ᛋ􎼏᛬􍼏ᚱ􌼏ᛂ􋼏ᚴ􊼏ᛋ􉼏ᛋ􈼏ᚢ􇼏ᚼ􆼏ᚾ􅼏ᚢ􄼏ᛘ􃼏ᚢ􂼏ᛚ􁼏ᚾ􀼏ᛏ􀼟ᚮ􀼯᛬􀼿ᛏ􀽏ᚮ􀽟ᛋ􀽯ᛁ􀽿ᚮ􀾏ᚵ􀾟ᛂ􀾯ᚢ􀾿ᛏ􀿏ᚮ􀿟ᚱ􀿯ᛘ􀿿ᛔ􀻿ᚱ􀷿ᛂ􀳿ᚴ􀯿ᛋ􀫿ᛏ􀧿᛭􀣿ᛋ􀟿ᚢ􀛿ᚼ􀗿ᚾ􀓿ᚢ􀏿ᛋ􀋿ᛘ􀇿ᚮ􀃿ᛁ􁃿ᚵ􂃿ᚾ􃃿ᛁ􄃿ᛂ􅃿ᛏ􆃿ᚮ􇃿ᛑ􈃿᛭􉃿ᚵ􊃿ᛂ􋃿ᚢ􌃿ᛏ􍃿ᚮ􎃿ᚱ􀀀 + +Colour-coding that supports 65535 (semi-transparent) colours via 4 bit RGBA + + За миг бях в чужд плюшен скърцащ фотьойл (Bulgarian) + Љубазни фењерџија чађавог лица хоће да ми покаже штос (Serbian) + Разъяренный чтец эгоистично бьёт пятью жердями шустрого фехтовальщика (Russian) + +Control characters to support Bulgarian and Serbian letter shapes on the fly + +Unicode References: + + Basic Latin Latin-1 Latin Extension A Latin Extionsion B IPA Extension Greek Cyrillic Cyrillic Supplement + Armenian Thai Georgian Runic General Punctuations CJK Symbols Kana CJK Unihan Extension A CJK Unihan + Hangul Syllables Fullwidth Forms -Цой жил, Цой жив, Цой будет жить -Время его смерти в автокатастрофе известно до минуты –15.07.1990,12.28. -20 лет назад заснувший за рулем «Москвича-2141» Цой вырулил на трассе под -Тукумсом в Латвии на встречную полосу – прямо в автобус «Икарус»… \ No newline at end of file diff --git a/FontTestGDX/lib/TerrarumSansBitmap.jar b/FontTestGDX/lib/TerrarumSansBitmap.jar index c36fbaf9d8db7b1481ad44e7f278d3c8913e8d02..c0e0a687caf72afa9d893d49f3a9a289b97273f0 100644 GIT binary patch delta 27484 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
blwj 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 N(+(Phx%q#9{{caA!43cb delta 27145 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 Z|C+*S&Ht!a$Nzf_*(xDQ-Q0iU{uf#QbI - font.draw(batch, s, 10f, 10f + index * font.lineHeight) + inputText.forEachIndexed { index, s -> + font.draw(batch, s, 10f, appConfig.height - 30f - index * font.lineHeight) } batch.end() @@ -68,12 +170,14 @@ class FontTestGDX : Game() { } } +lateinit var appConfig: LwjglApplicationConfiguration + fun main(args: Array) { - val appConfig = LwjglApplicationConfiguration() + appConfig = LwjglApplicationConfiguration() appConfig.vSyncEnabled = false appConfig.resizable = false//true; - appConfig.width = 1024 // photographic ratio (1.5:1) - appConfig.height = 1024 // photographic ratio (1.5:1) + appConfig.width = 960 + appConfig.height = 2048 appConfig.title = "Terrarum Sans Bitmap Test (GDX)" LwjglApplication(FontTestGDX(), appConfig) diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt index 00b57fd..3e62735 100644 --- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt @@ -59,6 +59,14 @@ import java.util.zip.GZIPInputStream * * Color Codes have following Unicode mapping: U+10RGBA, A must be non-zero to be visible. U+100000 reverts any colour code effects. * + * ## Control Characters + * + * - U+100000: Clear colour keys + * - U+100001..U+10FFFF: Colour key (in RGBA order) + * - U+FFFF8: Charset override -- normal (incl. Russian, Ukrainian, etc.) + * - U+FFFF9: Charset override -- Bulgarian + * - U+FFFFA: Charset override -- Serbian + * * @param noShadow Self-explanatory * @param flipY If you have Y-down coord system implemented on your GDX (e.g. legacy codebase), set this to ```true``` so that the shadow won't be upside-down. For glyph getting upside-down, set ```TextureRegionPack.globalFlipY = true```. * @@ -818,6 +826,9 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo internal val SHEET_UNKNOWN = 254 + fun charsetOverrideNormal() = Character.toChars( 0xFFFF8) + fun charsetOverrideBulgarian() = Character.toChars( 0xFFFF9) + fun charsetOverrideSerbian() = Character.toChars( 0xFFFFA) fun toColorCode(rgba4444: Int): String = Character.toChars(0x100000 + rgba4444).toColCode() fun toColorCode(r: Int, g: Int, b: Int, a: Int = 0x0F): String = toColorCode(r.shl(12) or g.shl(8) or b.shl(4) or a) private fun CharArray.toColCode(): String = "${this[0]}${this[1]}"