おそらくScratch初のアスキーアートが書けるPTEです。 ご自由にお使いください。 余談 ローカル変数の代わりとしてリストをスタックのようにして使っているんですが、それのおかげで文字の検索を二分探索で行うときCで*(cond ? &hi : &lo) = mid;に相当する操作がほぼ直接表現できてすごく便利だった。 余談2 速度は検証していませんがBEST-TENが「連続する点を線として描画しているため高速」と説明があり、私のPTEも同じようなことをしているので多分それなりの速度は出るはず。また描画データの最適化アルゴリズムはBEST-TENより多分優秀で、例えばBEST-TENの「■」のフォントデータは縦横の線分それぞれで二度塗りつぶすようなデータになっているのに対し、私のPTEは横線で埋め尽くし縦方向の線分は左右両端のみ引くようなデータになっています。もっともこれは極端なケースで、通常の文字に対してどれほど有効かはわかりません。また、この最適化をするとペンを細くしたり透明度を指定した状態での描画結果が変わってしまうので場合によってはすべきではない最適化ではあります。 余談3 アスキーアートで用いられるフォントはカーニングが行われないのでこのPTEもカーニングを行わないようにしてあるんですが、他のPTEはカーニングをどう扱っているんでしょうかね?
フォントデータの構造はdaikonnbatakeさんの [PDTE] 日本語ペンテキ BEST-TEN https://scratch.mit.edu/projects/1141074213/ を参考にしました。