プレイ日記
これだとlocateがあふれる…2+NAMEAだから3とか4になるかと思ったが
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
まずループの中にVSYNC 1を追加しましょう。 BUTTON関数はVSYNC命令を実行して次のVSYNC命令を実行すると 返り値の更新がされるので、「押された瞬間をリピート機能無し」で 検知しても返り値の更新タイミングまでは同じ値が返ってきます。 上記の様な状況で右ボタンを押された瞬間にNAMEA=NAMEA+2をすると プチコンの処理速度は速いのであっという間に画面外の数値になって しまいエラーになります。 画面外の座標にならないようにIF命令の条件を追加するなどの工夫が 必要ですね。 IF NAMEB==#LEFT && NAMEA<22 THEN NAMEA=NAMEA+2
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
移動した際に前の位置にあった矢印を消す処理が無いので画面に矢印が 残ります。 ボタンの状態を検知するときにNAMEAの値を覚えておいて ボタンの状態によってNAMEAの値を変更した後に覚えておいた値と 今のNAMEAの値が違っていた場合に前の位置の矢印を空白で上書きして 新しい位置に矢印を表示すると良いかと。 @A NAMEB=BUTTON(2):NAMEC=NAMEA IF命令2行分~ IF NAMEA!=NAMEC THEN LOCATE NAMEC,2:? " ” LOCATE NAMEA,2:? "→”'同じ記号が無いので→で代用してます ENDIF VSYNC GOTO @A
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
BUTTON関数の説明でVSYNCを実行するとBUTTON関数の返り値が 更新されると書いてしまいましたが表示更新タイミングで更新されています。 詳しい事はおちゃめさんのプチコン3号講座の 「VSYNCとWAITでタイミングを取れ」に書いてあるので参考にしてみて下さい。
0そうだね
プレイ済み