プロが教える店舗&オフィスのセキュリティ対策術

ポケットコンピューター(pc-g850vs)で
文字を移動させたいのですが、
文字が点滅しまくりとても見ずらいです。
プログラムはBASICでこんな感じです
(一部省略しています)
10:d= inkey$ <>"d"
50:locate 1,y
60:print "[ー"
61:wait 5
70:if d=0 then (dを押すと0、押さないと-1になる)
80: y=y-1 (上に移動)
90:else
100:endif
101 :locate 1.y
102:print "ㅤㅤ"

途中にclsを入れても点滅してしまいます。
どなたか点滅させずに表示する方法を教えてください!

A 回答 (3件)

こんにちは



そのBASICは知らないので、雰囲気だけの回答ですが・・

ご提示の処理をループさせているのではないかと想像しますけれど、
>60:print "[ー"
>102:print "ㅤㅤ"
で、書いて、消すことを常に行っているので、点滅して見えるのではないでしょうか?

移動した時にだけ、「前の表示を消して、新しい位置に表示する」処理を行うようにすれば良いのではないでしょうか?

※ 雰囲気だけでの回答なので、外れている場合にはご容赦。
    • good
    • 1
この回答へのお礼

完全に盲点でした…
キー入力の時だけ表示し直してみたら
点滅しなくなりました!ありがとうございます!!!
一応書いておきます
50:if Q=0 then
51:locate 1,y
52:print " "(前の位置 ここで前の表示を消す)
60:y=y-1(位置を変える)
70:locate 1,y
80:print "A"(新しい位置で表示)
90:else
100:end if

お礼日時:2022/04/25 17:28

カシオ派だったのでシャープ系 BASIC に明るくないのですが...


一般的には以下のような差分表示サブルーチンを組めばよいかと

今の場所 = 計算()
if 前の場所 <> 今の場所 then
locate 前の場所: print "△△"; ← 空白文字を必要数だけ
locate 今の場所: print "■■"; ← 表示したい文字
前の場所 = 今の場所
endif
    • good
    • 1

ポケコン触ったのってン十年前ですが…。



>途中にclsを入れても点滅してしまいます。

表示内容を更新する必要のない時もclsで消して再表示しているから点滅しているように見えるのでしょう。
掲示されたコードだと、yが変化するときだけ画面の書き換えが必要になるので、行番号の50/60/101/102は、行番号80と90の間に入れるべきかと。

画面を構成するパーツが他にもある場合は更新用のサブルーチン作って、その中で必要な分だけ書き換えるようにすると良いかと。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!