09/03/10 21:18:35 1sBYFFlG
>>239
今さらだが、kagのソース (MessageLayer.tjs) を解析してみた。
文字を描画するときはいきなりメッセージレイヤに描画ではなく、
行ごとに "行描画用浮遊メッセージレイヤ" に描画してから、
それをメッセージレイヤ本体に転写している。
で、"メッセージレイヤ" と "行描画用浮遊メッセージレイヤ" は
両方とも見える状態のため、転写後 "行描画用浮遊メッセージレイヤ"
の文字をクリアしないと文字が重なり輪郭が太くなる。
(アンチエイリアスがかかていると輪郭部分で太くなる)
で、この転写のタイミングは3つあって
(1) 改行 (2) [locate]タグ (3) [style]タグ の align 属性
(1)(2) は 転写後に "行描画用浮遊メッセージレイヤ" を初期化
(文字もクリア)しているけど (3) は初期化していないから
>>239 のようなことが起こる。
例えば同じ行で1文字ごとに [style align="left"] を入れると
今度はメッセージレイヤ上に重ね書きを繰り返すので
前の文字がどんどん太くなるし、メニューから "アンチエイリアス"
を OFF にすれば文字は全く太らない。
また1文字ごとに [style align="left"], [style align="right"]
を交互に入れると今度は文字の数が増えてしまう。
(続く)