プレイ日記
shun koryukirin
選択肢をカーソルを動かして選びたいのですが、プログラムはどうすればいいでしょうか?
5そうだね
プレイ済み
返信[1]
親投稿
基本は、 1 カーソルの位置の変数を用意して、その位置に対してカーソルを表示する。 2 上下ボタンが押されたらカーソル位置を変更する。 3 Aボタンが押されたら決定。カーソル位置を元に選ばれた選択肢を判断する。 じゃないかなと思いますが、どこまで出来て何が出来ないかわからないと細かくはコメントしづらいですねー。
1そうだね
プレイ済み
返信[2]
親投稿
PRINTでカーソルを表示しているなら REPEATE VSYNC B1=BUTTON(1) B3=BUTTON(3) IF B1 AND 3 THEN LOCATE X,Y:?" " IF B1==#UP THEN DEC Y IF B1==#DOWN THEN INC Y IF B1 AND 3 THEN LOCATE X,Y:?">" UNTIL B3==#A こんな感じでしょうか 基本は消してからカーソル位置を計算して書く 上のプログラムのままでは項目外に移動したり画面外に書こうとしてエラーになりますから 条件とか自分で考えてみてくださいね
1そうだね
プレイ済み
返信[3]
親投稿
shun koryukirin
皆さんコメントありがとうございます。カーソルの位置の変数とはこのような感じで宜しいのでしょうか?
0そうだね
プレイ済み
返信[4]
親投稿
SPOFSは管理番号, X座標, Y座標の順なのでそれだと座標の指定が違いますよ。 また変数に2つの値は入らないので111行もエラーになります。 今回はX座標は固定でいいので、Y座標だけ変数にしておけば良いと思います。 またカーソルがスプライトみたいなので、スプライトを使う場合は消す処理は不要になるので、単純に位置が変化すれば表示が更新されます。
2そうだね
プレイ済み
返信[5]
親投稿
X=25,30という書き方は出来ないので X=25:Y=30に書き直しましょう あと、消して書くと言いましたがスプライトなら消す必要が無いので楽ですね 座標計算したらSPOFS 0,X,Yで移動させましょう
1そうだね
プレイ済み
返信[6]
親投稿
shun koryukirin
BUTTONが動きませんが色々試してみました。 変数はKではなくXやYの方が良いのでしょうか?
0そうだね
プレイ済み
返信[7]
親投稿
とりあえず変数名に関しては、基本わかりやすければ何でもOKです。位置を表す場合は横の位置をX座標、縦の位置をY座標というので、それに合わせてXやYを使うとわかりやすいのでそうする場合が多いだけですね。 変数BもBUTTONの頭文字でわかりやすいからBにしてるんじゃないんですか? Kがどのような意味かはわかりませんが、カーソルという意味だったら、カーソルはCURSORなので、Cの方がわかりやすいかもです。また1文字の必要はないのでCSRなどもありです。ただプチコンの場合は変数名が長すぎると全体として見づらくなる傾向もあるので、変数名の長さはなかなか難しいテーマです。(僕は全体としての可読性を重視して短くする傾向がありますが、人によっては個々としての可読性を重視して長くする人も居ます) ただ1文字の変数名は可読性は低いので、一時的なものにする方が無難ではありますね。
1そうだね
プレイ済み
返信[8]
親投稿
ボタンが動かないのは ループの中に入れていないせいですね コンピュータは人間が思うよりずっと早く動いていますから コンピュータ側に人間が合わせるのは無理があるんです 一瞬で処理が終わりますからね(^^;) なのでループで入力待ちをしてもらう必要があります 変数名は自分が把握できるならKでもなんでも良いですよ
1そうだね
プレイ済み
返信[9]
親投稿
あとボタンなどの処理は基本繰り返しの中で行わないといけないので、WHILEやGOTOで繰り返すのが定石です。 例えばWHILEで繰り返す場合は、最低限 WHILE 1 B=BUTTON() 〜なんらかの処理〜 VSYNC WEND のような形になると思います。VSYNCは繰り返しの間に入れるタイミング同期としての定石です。
1そうだね
プレイ済み