テキストの重ね書き?

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
kumade

テキストの重ね書き?

#1 投稿記事 by kumade »

しょうもない質問だろうとは思うんですが教えて下さい
バックカラーを透明にすると重ね書きされるんですが、どうしたら解消できますか?

#N88BASIC
100 Color 7,-1
110 Locate 10,10
120 Print "A C E" ; "書く"
130 Locate 10,10
140 Print " " ; "消す"
150 Locate 10,10
160 Print " B C " ; "書く"
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

Clsで、1か3を指定してみてください。
あるいは、Colorの第一に0を指定して、同じ文字で塗りつぶすとか。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
kumade

#3 投稿記事 by kumade »

おおきに、cls(1)で出来ました

CLSに引数があること自体知りませんでした(汗)
ちなみに
今日、書店でN88がないので、Q.BASICのリファレンス本買ってきたら
cls(3)になってました
この本でもダメですね

#N88BASIC
Color 7,-1
Paint (100,200),1,7
Line(369,580)-(378,515),3: Line(378,515)-(446,412),3: Line(446,412)-(519,356),3: Line(519,356)-(594,371),3: Line(594,371)-(652,428),3

110 Locate 10,10
120 Print "A C E" ; "書く"
130 Locate 10,10
140 'Print " " ; "消す"
145 cls(1)
150 Locate 10,10
160 Print " B C " ; "書く"
マティ
記事: 161
登録日時: 2005年8月23日(火) 00:15
お住まい: 沖縄県
連絡する:

#4 投稿記事 by マティ »

マティです。
clsのオプションですが、1はテキスト画面をクリア、3はテキストとグラフィック画面を両方クリアだったと思います。

コード: 全て選択


#N88BASIC
Color 7,-1
Paint (100,200),1,7 
Line(369,580)-(378,515),3: Line(378,515)-(446,412),3: Line(446,412)-(519,356),3: Line(519,356)-(594,371),3: Line(594,371)-(652,428),3

110 Locate 10,10 
120 Print "A C E" ; "書く" 
130 Locate 10,10
140 'Print "     " ; "消す" 
145 cls(1)
150 Locate 10,10
160 Print " B C " ; "書く"
この場合、cls(1)を実行した時点で文字列が全て消えてしまいます。
(他の文字列を表示すると良くわかります。)

PC98では、ハードウェアで両者を合成していたので空白文字を表示する事で前の文字を消せるが、ActiveBasicはテキスト画面とグラフィック画面を合成して表示する必要があります。
どうもActiveBasicは背景色が透明な文字列を描画するさいに、背景を透明なモードで描画を行っているだけなので、エミュレーションがうまくいっていないようです。
(背景のグラフィックを転送後、文字を背景色が透明なモードで描画する必要がある。)
kumade

#5 投稿記事 by kumade »

あ、そうですね
塗りつぶしてもテキストの表示が消えるわけではないので、
CLS(1)の後にテキスト文をもう一度書く必要があるんですね
ん~む

実は、久しぶりに、あれこれ思い出しながら、BASICと言えば信長の野○だな、と
地図上に文字を表示させたゲームを書いていたんですが・・・
返信する