|
11章.文字列の表示(後編)
|
|
|
1999.10.16
|
|
☆装飾文字 G@PRINT関数は単に文字列を表示するだけの機能であり、美しい装飾を施した文字列を表示することは出来ません。しかし、ものは使いようで、アイデアさえあれば、少しは凝った装飾を描き出すことが出来るでしょう。 次に、いくつかのサンプルをのせます。ただし、これから説明する方法は、1つの文字列のために、複数回G@PRINT関数を実行するので、表示速度は遅くなることを、あらかじめ言っておきます。 ☆影 演出のため、文字列に影を付けたい場合が出来たとします。こう言うときは、G@PRINT関数を2度実行すれば、何となくそれらしきものが表現できます。 例えば、文字列を表示する座標からX座標+4、Y座標+4(斜め右下)に影の持ち主となる文字列を少し暗い色で表示後、影の持ち主となる文字列を表示すれば、影らしく見えるはずです。説明は少し分かりづらいかもしれませんが、次のサンプルプログラムを参照していただければ、簡単に理解できるでしょう。 CH = G@SETUP( 640 , 480 , 16 , 1 ) G@CHRCLEAR( CH ) G@COLOR(128,0,0) G@PRINT( CH , 4 , 4 , "Hello!!" ) G@COLOR(255,0,0) G@PRINT( CH , 0 , 0 , "Hello!!" ) G@FLIP( ) LOOP; S@WAIT( ); ENDLOOP☆縁取り 文字列に縁を付けてみます。考え方は影の付け方とほぼ同じです。例えば、文字列の周りに1ドット分の縁を付けるには、文字列の表示座標からX座標±1、Y座標±1(上下左右に1ドットずれ)に縁の持ち主となる文字列を表示すればよいでしょう。次にサンプルプログラムを載せるので参照してみてください。 CH = G@SETUP( 640 , 480 , 16 , 1 ) G@CHRCLEAR( CH ) G@COLOR( 0 , 128 , 128 ) G@PRINT( CH , 0 , 1 , "Hello!!" ) G@PRINT( CH , 2 , 1 , "Hello!!" ) G@PRINT( CH , 1 , 0 , "Hello!!" ) G@PRINT( CH , 1 , 2 , "Hello!!" ) G@COLOR( 255 , 0 , 0 ) G@PRINT( CH , 1 , 1 , "Hello!!" ) G@FLIP( ) LOOP; S@WAIT( ); ENDLOOP☆丸みを付ける 最後は、丸みのある文字の表示方法です。考え方は、縁取りと全く同じで、縁の色を表示したい文字列に近くすると、丸みを帯びたように見えるというものです。説明よりもサンプルプログラムを見た方が理解が早いでしょう。 CH = G@SETUP( 640 , 480 , 16 , 1 ) G@CHRCLEAR( CH ) G@COLOR(192,0,0) G@PRINT( CH , 0 , 1 , "Hello!!" ) G@PRINT( CH , 2 , 1 , "Hello!!" ) G@PRINT( CH , 1 , 0 , "Hello!!" ) G@PRINT( CH , 1 , 2 , "Hello!!" ) G@COLOR(255,0,0) G@PRINT( CH , 1 , 1 , "Hello!!" ) G@FLIP( ) LOOP; S@WAIT( ); ENDLOOP |