日本語文字を拡大表示する小技
※createFontの第一引数は日本語フォント、第二引数は文字の大きさです。状況に合わせて変えてください。
1.利用シーン
Processing(バージョン3.5.4)で、text()で日本語文字を画面に表示する場合、通常の表示なら問題ないのですが、textSize()で拡大表示しようとすると文字化けして、例えば□□□と表示されてしまいます。(状況によっては、□の中に×印が入った文字が表示されることもあります)
※Open Processing では、この文字化けは発生しません。
2.通常の表示
そのままで日本語文字も表示されるが、とても小さい表示です。
String emoji="SCORE:";String jmoji="得点:";
void setup() { size(1100, 600);}
void draw() { background(0); text(emoji, 100, 200); text(jmoji, 100, 300);}
3.拡大表示(対策なし)
textSize()で拡大表示しようとすると、アルファベットは正常に拡大表示されるのに、日本語文字は文字化けしてしまいます。
String emoji="SCORE:";String jmoji="得点:";
void setup() { size(1100, 600);}
void draw() { background(0); textSize(50); text(emoji, 100, 200); text(jmoji, 100, 300);}
4.拡大表示(対策あり)
このような場合は、 setup()の中でcreateFont()を使うとよいでしょう。
String emoji="SCORE:";String jmoji="得点:";
void setup() { size(1100, 600); PFont myfont = createFont("MS Gothic", 50); textFont(myfont);}
void draw() { background(0); textSize(50); text(emoji, 100, 200); text(jmoji, 100, 300);}
-
createFont()の第1引数には、日本語フォントを指定します。(例:MS Gothic、MS Mincho、Meiryoなど)
-
使用できる日本語フォントはProcessingを動かしている環境によって異なります。なお、以下のコードを実行すると、その環境で使用できるフォントのリストをコンソールに表示してくれます。
printArray(PFont.list()); -
createFont()の第2引数には、大きさを指定します。実際に画面表示される文字の大きさは、その後にtextSize()があればそれが優先されます。無ければ、createFont()の第2引数の指定が使われます。
-
ちなみに、PFontの行とtextFontの2行は、まとめて以下のように書くこともできます。
textFont(createFont("MS Gothic", 50));