プレイ日記
Godot orz_127
何か最近また見かけるようになって気がするので。 昔にも同じ様な処理の2択の例を投稿した記憶も^^; →始める  終わる が有って、→を十字キー↑↓で動かして、ボタン(今回は、Y)を押すと決定。 選んだ方に、進む的な何かです。 参考になれば。
5そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
過去の投稿を確認してみました。 他に参考になりそうなものとして。 2015/2/6 MODの例としてキャラ(文字)の移動。 2015/2/7 2択。この投稿とほとんど同じ^^; 2015/2/17 3択の例。関数を作って有るので3択以上にも対応可。 2015/7/13 キーボードからの1文字入力サンプル。 2015/7/6 キャラ(文字)の蛇の移動。 プログラム2つ。 これはQSPなので、解り難いプログラムとなっています。ある程度理解が進んでいないと参考には、ならないかも。 興味があれば、プロフィールの「すべての投稿」から辿って見てください。
1そうだね
プレイ済み
返信[2]
親投稿
くろ Andorea2000
質問です・・ 写したのですが、わからない事が多くて・・ どうなったら、どうなるというような? 流れだけでも教えて貰えますか?
0そうだね
プレイ済み
返信[3]
親投稿
くろ Andorea2000
これが、クイズに取り入れようとして残念しか出なくなった(正解が出ない)時のです
0そうだね
プレイ済み
返信[4]
親投稿
Godot orz_127
REPERT~UNTILの所はループ処理で、条件に合わない間(ちょっとひねくれものですw)、繰り返します。 REPEATでとりあえず処理を始めます。最後のUNTILE で条件判定します。#YはBボタンの値。 Bボタンが押されなかったら繰り返し、要するにBボタンが押されたらループを抜ける。 ボタンの値はB=BUTTON(2)で取得しています。 Bに押されたボタンの値が入ります。
0そうだね
プレイ済み
返信[5]
親投稿
Godot orz_127
実は、PRINT文は、その行の最後に書いてある場合、閉じの「"」省略しても平気ですw でも、始めたばかりなら、しっかり最後は「"」を付けるように癖をつけておいた方が良いと思います。そうしないと思わぬところでバグってエラーに。 一応、行の最後がPRINT文の場合は、最後の「"」は省略しても問題ないとだけ覚えて置いて下さい。 後は、色々と小細工をしているところなのでちょとわかりにくかったかも^^;
0そうだね
プレイ済み
返信[6]
親投稿
Godot orz_127
Nはここでは0か1となります。 どこて1になっているかわからないと思いますが、実は「N=!N」のところです。 !は真と偽を反転させる演算子です。 一般的に偽は0、真は0以外と定義されています。 便宜上、真(TRUE)は1と定義されています。偽(FALSE)は0です。 「? TRUE」「? !TRUE」「? FALSE」「? !FALSE」としてみて下さい。 真(1)と偽(0)が反転しているのが判ると思います。 これを利用しています。 「N=!N」は、Nが0なら1に、Nが1なら0になります。
0そうだね
プレイ済み
返信[7]
親投稿
Godot orz_127
「?"■ "[N];」の所は、これまたちょっとややこしいかも m(_ _)m 文字列ですが実は配列の様に使えます。 A$="あいう" としたとき、「?A$[0] → あ」「?A$[1] → い」「?A$[2] → う」という具合に一文字づつ取り出せます。 実は変数に入れなくても出来ます。 「?"あい"[0] → あ」「?"あい"[1] → い」の様に。 なので ?"■ "[N] ?" ■"[N] はNが0のとき、上側が■、1のときは下が ■となります。
0そうだね
プレイ済み
返信[8]
親投稿
Godot orz_127
上のコメント 「■」の所は「→」でした^^;
0そうだね
プレイ済み
返信[9]
親投稿
Godot orz_127
この例だとカーソルを動かして選択をしなければ。 最初にやろうとしていたAかBボタンを押すのだったら以下のような、サブルーチンでも良いかも。 @AB  WHILE TRUE   VSYNC   R=BUTTON(2)   IF R==#A THEN BREAK   IF R==#B THEN BREAK  WEND  RETURN 「GOSUB @AB」の後Rの値を判定と言うことで。
0そうだね
プレイ済み
返信[10]
親投稿
Godot orz_127
すみません。 間違って覚えてしまうと問題なので、 ひとつ訂正しておきます。 サンプルで 「IF B==#UP OR B==#DOWN THEN 」としていますがプチコン3号の場合、ここは「OR」でなく「||」の方が的確な表現です。 「OR」か「||」の話しは、ややこしくなるので省略^^; とりあえず、ここはこれでもOKです。
0そうだね
プレイ済み
返信[11]
親投稿
Godot orz_127
残念しかでないプログラムですが UNTILの行の後に DIALOG "N="+STR$(N) と入れてみてください。 ダイアログでNの値が確認できます。 これ割りと便利なDIALOGの使い方です。 それでNが1になっている事がわかると思います。 1で正解に行くと思いますが 正解に行った後、プログラムがどう動くか確認してみて下さい。 直ぐにわかると思うので書かないでおきます。 何故、残念しか出ないかわかったら教えてください。
0そうだね
プレイ済み
返信[12]
親投稿
くろ Andorea2000
こんなに詳しく説明をしてくださりありがとうございます! 理解する事も多く時間がかかりそうですが、ボタンが使えるように頑張ります♪ (昨日のように来れない時が増えるかもしれません・・)
1そうだね
プレイ済み
返信[13]
親投稿
Godot orz_127
読み返したら間違い発見^^; 最初の回答コメントのところ、「#YはBボタンの値。」は「#YはYボタンの値。」の間違いです。その後の「Bボタンが」2箇所は、「Yボタンが」の間違いです。 混乱させてすみません。
1そうだね
プレイ済み
返信[14]
親投稿
くろ Andorea2000
流れはなんとなく分かりました♪ サンプルを確認しながらなら作っています♪ 後はたくさんプログラムを書いて慣れないとですね ありがとうございました♪ 正解が出なかったのは、表示した後にすぐ残念の表示をしてしまい、見えなかった。 こんな感じで大丈夫ですか?
0そうだね
プレイ済み
返信[15]
親投稿
Godot orz_127
当たりです^^ 「@SEIKAI」に飛ぶと「せいかい」を表示した後、直ぐに「@ZANNEN」に進み、同じ位置に同じ長さの文字列を上書きしてしまいます。 正解の方を "せいかい♪" と表示していれば一文字多いので「ざんねん♪」と表示されるので直ぐに上書きされているのに気づいたかもですが、今回はちょうど同じ長さだったので残念しか出ないように見えていました。 90行目の所、「@ZANNEN」の前の行に「DIALOG""」と追加してみてください。 正解のとき、「せいかい」と表示された後、一旦ダイアログが表示されて停まります。 Aボタンもしくは、了解を押すと先に進んで、「ざんねん」で上書きされるのが確認出来ると思います。 90行目は「END」で終了させたり、 「@ZANNEN」に進まないようにGOTO文で別のところに飛ばす必要があります。
1そうだね
プレイ済み