コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
MONO-CASEI ◆4AyJE72/nkvY
2018/11/29 21:24
質問
質問です
RPGにてのマップ移動って
最後に押されたボタンの方向に動きますよね?
(斜めとかに動けない)
つまり、最後に押されたボタンを取得したいのですが
( 例えばBUTTON()==10 で最後に押したのが下ボタンだった場合は、#DOWNが戻る )
どうすればよいでしょうか?

コメント

アバター
あきと 2018/11/29 22:01 ◆qGd5dQw2g3a2
BUTTON命令で同時押しされている結果を受け取っているということは両方とも押されているということなので「最後」が判定できません。
なので、MONO-CASEIさんがどちらか優先する方向を決める必要があります。

B=BUTTON()
IF B AND #UP THEN
Y=Y-1
ELSEIF B AND #DOWN THEN
Y=Y+1
ELSEIF B AND #LEFT THEN
X=X-1
ELSEIF B#AND #RIGHT THEN
X=X+1
ENDIF

こう書くと上下移動が優先されます。
LEFTとRIGHTの行を上に持っていくと左右が優先されます。(IFとELSEIFは調整してくださいね)
アバター
初心者 2018/11/29 22:05 ◆ULvuffpmw1rp
変数に代入ではダメですか?
X=ボタン()
アバター
でんぺん 2018/11/29 22:10 ◆HfSy5ayxtyTa
色んな方法はあると思いますが、例えばBUTTON(1)を使うと押された瞬間だけ取得出来るので、それで取得した方向を最後の方向としてずっと移動させて、移動の為のボタンが全部離されたら止まる、みたいにしてみるとかはどうですかね?
アバター
MONO-CASEI 2018/12/2 11:49 ◆4AyJE72/nkvY
ありがとうございまうs!
やってみます
アバター
ツララ 2018/12/3 8:38 ◆ArUdBYOYME1V
メインループ中にBUTTON()関数で一回だけボタン入力値を取得するとして
一つ前のループで取得した値を保持する変数を作っておいて
保持してる値と入力値とが一致しない時だけXOR演算してやって別変数に保存するようにしてやれば
最後に押したボタンの情報って取得できるんじゃないんです?

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -