トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

文字の表示 2

特定の場所に文字を表示

前のページでは文字の表示に以下のようなコードを使用していました。

print( "Hello world!" )

しかし、このコードは書くにつれて改行されてしまいます。
このページでは、まず「特定の場所」に文字を表示してみます。

SCREEN_BOTTOM = 0

BGBotText = Screen.LoadTextBG()

Screen.Initialize( SCREEN_BOTTOM, BGBotText )

画面の設定は今までと同じです。そして、以下のように記述します。

BGBotText:PrintXY( 10, 3, " Hello world!" )

これで、「Hello world!」が「横10マス目,縦3マス目」に表示されます(3行目に10個の空白を開けて表示されます)
このコードを何度書いても、同じ場所に同じ文字が上書きされて表示されるので何も変わりません。
画面のど真ん中や、隅に文字を表示する事が可能です。

文字の色を変更

標準では白の文字ですが、文字の色を変更する事が可能です。
上のコードに追記して、色を変える場合は以下のようになります。

BGBotText:SetColor( 5 )

BGBotText:PrintXY( 10, 3, " Hello world!" )

文字を表示するコードの前に色を指定するコード(上の行)を追加するだけです。
カッコの中が色の指定になります。数字と色の組み合わせは下の表の通りです。

0白(元の色)
1
2
3
4
5水色
6
7薄灰
8濃灰

文字を埋め尽くす

特定の場所に文字を埋め尽くすには、以下のコードを使用します。

BGBotText:FillRectWithChar( 0, 0, 31, 23, "X" )

これは、画面の左上(0,0)から右下(31,23)までを「X」で埋め尽くすコードです。
始めの2つが始点の(X,Y)で、次が終点の座標(X,Y)です。
このコードの後に以下のようなコードを書くと、画面の周りを「X」で縁取る事が出来ます。

BGBotText:FillRectWithChar( 1, 1, 30, 22, " " )

まず画面全体を「X」で埋め尽くし、その後に1マス内側を空白「 」で埋めます。

全コード

-- 下画面を文字の表示に設定します[コメント]

SCREEN_BOTTOM = 0

BGBotText = Screen.LoadTextBG()

Screen.Initialize( SCREEN_BOTTOM, BGBotText )

 

--画面の周りを「X」で縁取ります[コメント]

BGBotText:FillRectWithChar( 1, 1, 30, 22, " " )

BGBotText:FillRectWithChar( 0, 0, 31, 23, "X" )

 

-- 文字の色を水色に変更します[コメント]

BGBotText:SetColor( 5 )

 

--座標(10,3)にHello worldを表示します。

BGBotText:PrintXY( 10, 3, " Hello world!" )

 

-- 何かキーが押されるまで待機します[コメント]

DSLua.WaitForAnyKey()