投稿
Sakure satosou-0514
こうするとエラーになります。どうすればいいでしょうか?
1そうだね
プレイ済み
返信[1]
親投稿
LOCATEで指定出来る範囲が大きく超えてしまっているのが問題ですね。 TOUCHで出す値は200とか300とかにもなりますので、LOCATEで表せる範囲(横49,縦29)を遙かに超える、という事です。 どうしても「タッチした位置に"#"を置きたい」事をやってみたいのでしたら、 DISPLAY 1 @P TOUCH OUT TM,TX,TY LOCATE FLOOR(TX/8),FLOOR(TY/8):PRINT"#"; VSYNC 1 GOTO @P こうしてみてはいかがでしょう(FLOORは小数点以下切り捨ての整数を返す、端っこで改行させないようにする為「;」をPRINT"#"の後に付ける)。
0そうだね
プレイ済み
返信[2]
親投稿
あ、最初の行は XSCREEN 2:DISPLAY 1 ですかね。
0そうだね
プレイ済み
返信[3]
親投稿
グレイ pokers
上画面LOCATE 50×30 タッチパネル 400×240 と差があるので、画像のようにすれば大丈夫です(^^*)
0そうだね
プレイ済み
返信[4]
親投稿
Sakure satosou-0514
親切にありがとうございました!!
0そうだね
プレイ済み
返信[5]
親投稿
もう解決したようですが、コメントします。 TOUCHのX、Y出力はグラフィックの座標になり、LOCATEのX、Y入力はコンソールの座標になります。 説明書30の「BASIC基本仕様」の表示関係にあるように、グラフィックページは 上画面400×240ドット 下画面320×240ドット コンソールページは 上画面50桁×30行 下画面40桁×30行 になります。 従って、1文字の大きさは、8×8ドットになっていると考えられます。(割り算で求められますね) よって、X、Yそれぞれ8で割れば求められます。 ただし、上画面と下画面では、横幅が違いますので、表示させたい位置によって、Xの値にその差を足してあげる必要があります。
0そうだね
プレイ済み
返信[6]
親投稿
割合で考えるなら、タッチエリアは320×240なので縦は良いとして横に関しては、タッチ座標がTXだとすると上画面のコンソール座標は CX=50*TX DIV 320 となると思います。
0そうだね
プレイ済み