トピック
ざっきー ZACKY10062D
セレクト画面でのアイコンの移動
1そうだね
プレイ済み
返信[1]
親投稿
ざっきー ZACKY10062D
こんな感じのセレクト画面があります。スプライトに矢印マークを書いて貼り付けて、セレクトしているものを示しているようにしています。 画像の命令ではセレクト画面の上の2つしか選ぶことができません。どうすれば改善できますか。
0そうだね
プレイ済み
返信[2]
親投稿
ざっきー ZACKY10062D
それと、セレクトしたところでAを押すと次の画面を表示するようにしたいのですが、どんな命令で次の画面に飛べばいいでしょうか。 タイトル画面からこのセレクト画面に変わるときはWHILE,WENDループから抜けるだけでよかったのですが、この場合、セレクトしたものによって次に表示する画面を区別しなければいけません。
0そうだね
プレイ済み
返信[3]
親投稿
ゲームの流れとして、たとえば「タイトル画面」「選択画面」「選択画面先のなにかの画面」「ゲームのメイン処理」などいろいろあったとして、 この画面の移動を制御するしくみが必要になります。 画面移動の制御としては、プログラムを上から順番に実行していったときにタイトル画面のループがあって、それを抜けたら次は選択画面のループがあって、のようにプログラムで順番に書く方法だと制御がむずかしくなるので、 「現在どの画面か」の変数を用意しておいて、「現在どの画面かの変数によって処理を振り分けるループ」を作り、そのなかでタイトル画面や選択画面へ移動するような作りもあります。 こうすることで、Aボタンを押したら「現在どの画面か」の変数を変更して、選択画面の処理を抜けてしまえば、処理を振り分けるループが勝手に次の画面に移動してくれるようになります。
3そうだね
プレイ済み
返信[4]
親投稿
ねこはち neko800_2
ボタンの上下でYに代入される値が固定になっているのが原因なので、 TY=15+Y ← もとの記述だと15か61にしかならないのでここを削除 IF B AND #UP THEN Y=Y+1 AND 3 IF B AND #DOWN THEN Y=Y-1 AND 3 IF B AND #A THEN BREAK SPOFS 3,300,Y*46 選んでいる項目はYに0~3で保持されているので、抜けた先でもYを参照すれば大丈夫です。
4そうだね
プレイ済み
返信[5]
親投稿
選択画面のカーソルの場合、図だと4つ選択できるので、まず「現在何番目が選択されているか」の変数を用意して、何番目に対応するYの値を設定するようにしたほうが制御はしやすいです。 上を押したら「何番目から1引く」して、下を押されたら「何番目から1足す」をするけど、1番上にいるなら上を押しても1引く処理をしないようにしないといけません。 (同じように1番下にいるなら下を押しても1足す処理をしないようにする) Aボタンで決定するときは「何番目」の変数を元に、処理を分けるような感じになります。 たとえばさっきの作りだと、処理を振り分けるループで呼ばれるさらに別の処理で「何番目」の変数を参照して処理をする、のような作りになります。
3そうだね
プレイ済み
返信[6]
親投稿
ざっきー ZACKY10062D
とりあえず矢印移動の件は解決しました!有り難うございます!
0そうだね
プレイ済み
返信[7]
親投稿
ざっきー ZACKY10062D
では、一番上を選んでAを押したときの行き先を@first stage、上から二番目を選んでAを押したときのの行き先を@second stageとしたとき、どんな感じで打ち込めばいいですか?命令を具体的に教えていただけるとありがたいです。
0そうだね
プレイ済み
返信[8]
親投稿
具体的に行きたいラベルがあって、何番目を選んだかの変数があって、この条件のときにはこのラベルに行きたい、ってあるならそれを書けばいいだけな感じです。 ちなみに他には ON 制御変数 GOTO @ラベル0, @ラベル1… ON 制御変数 GOSUB @ラベル0, @ラベル1… の命令があるのでヘルプをみてみるといいかもです。
2そうだね
プレイ済み
返信[9]
親投稿
ざっきー ZACKY10062D
何度も質問してすいませんorz 画像のような感じでできるでしょうか? このとき[かつP=~]というのは命令でどのように表せばよいのでしょうか?
0そうだね
プレイ済み
返信[10]
親投稿
その書き方だと (B AND #A) AND (P==1) な感じ AND は ANDの前と後の条件比較結果かビット計算結果を「かつ」でつなぎます(条件比較は1ビット計算の結果) 演算子が連続する場合は優先したい計算をカッコで囲んで計算するとよいです でもこの場合は、先に「Aボタンが押されたか」のIF THEN ~ ENDIF があって、 その中で何番目を選んだかを判定すると、「Aボタンが押されたか」を何回もチェックしなくていいのと、「このIFの中がAボタンの処理」と見た目にもわかりやすくなったりしますよ。 プログラムとは、こういった流れをどのように作っていくかを考えていくことで、 必ずこうしなくちゃいけないという正解はないけど、 こうするといろいろわかりやすいって方法は結構あるので、 時間があるときに他の人の公開キーのプログラムを見てみるのも勉強になったりするのでおすすめです。
2そうだね
プレイ済み
返信[11]
親投稿
ざっきー ZACKY10062D
うまく@に飛べません!もう自信なくなってきましたw
1そうだね
プレイ済み
返信[12]
親投稿
ざっきー ZACKY10062D
すいません、見辛いですね。もう一枚貼っときます
0そうだね
プレイ済み
返信[13]
親投稿
変数がこの値のはずなのにうまく動かないってときはPRINTで変数の値を出しながら確認するといいかもです。
0そうだね
プレイ済み
返信[14]
親投稿
もしかして:演算優先順位
0そうだね
未プレイ
返信[15]
親投稿
(と言ったけどたぶん違うかも) Y+1 AND 3は大丈夫なんだっけ…?
0そうだね
未プレイ
返信[16]
親投稿
ちなみに(B AND #A) AND (P==1)の真ん中のANDは&&(論理演算子のかつ)の方が適しているんじゃ B AND #A && P==1
0そうだね
未プレイ
返信[17]
親投稿
26行目が怪しいね Pに常に-1 AND 3を代入してるのは変
0そうだね
未プレイ
返信[18]
親投稿
この場合YとPを別に持つのは無駄な感じがする
0そうだね
未プレイ
返信[19]
親投稿
ざっきー ZACKY10062D
やっとできました!有り難うございました!
3そうだね
プレイ済み