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

アバター
みかん ◆cNXcKm243Rna
2018/11/25 22:21
質問
セレクト
十字ボタンをおして、選んでAボタンで決定みたいなところの、選んでるときの矢印?みたいなところの、
十字ボタンをおすたびに動かすのはどうやるんですか?おしえてください!

コメント

アバター
う主 2018/11/26 0:47 ◆Tl40vuFFAYNl
その矢印を、文字で表示するか、スプライトで表示するか、この二つが比較的簡単だと思いますが、どちらで表示するつもりですか???
既に書いてある(と仮定します)プログラムに合わせて教えたいと思います。

それと、過去の質問等の返信は行っておいた方が良いですよ。多くの方が意見を出してくれてそのまま黙ったままでは、次に困った時に誰も答えてくれなくなります。
一人一人に返答が難しいなら、一括してでも良いですので「ありがとうございます」と言う事を心掛けていきましょう
アバター
キルル2 2018/11/26 0:50 ◆rGE712Ruejv7
button(2)
ボタンの「押した瞬間」の情報を調べる
button(2) and #right
十字の右を押した瞬間であることを調べる
if then endif
条件成立時に処理を実行

この「if」と「button(2) and #right」を組み合わせます
アバター
だにえる 2018/11/26 3:05 ◆m76OCAQyrWGt
キーワードは
BUTTON関数、条件分岐、矢印の表示
アバター
RU-RA 2018/11/26 6:21 ◆WXDJqyOv9yBK
コンソールの場合、矢印を消す動作も必要ですね。
アバター
でんぺん 2018/11/26 8:26 ◆HfSy5ayxtyTa
返事(というかやりとり)は大事だよね。返事がないと理解の度合いも測れないし、それに合わせたアドバイスも出来ないしね。
アバター
みかん 2018/11/26 12:18 ◆cNXcKm243Rna
まだわかりません(´;ω;`)ウゥゥ
アバター
はる 2018/11/26 13:03 ◆75Vh4SY8TdKS
IF 15AND BUTTON()THEN動かす

多分これが一番早いと思います
アバター
たんじぇ 2018/11/26 13:24 ◆WDmFkVwZ4yMl
ゲームでみかけるような操作を簡単に作れる命令はプチコンには存在していなくて、全部自分で作るしか無いのです。

今回の場合、書いてあるそのものの処理の通りで、十字キーで何か移動して、Aボタンを押したときに十字キーで移動した場所によって決定の処理を呼び出すことになります。

何かを移動するのを表すにはいくつか方法があって、文字で表示するかスプライトで表示するかで動きが違います。

スプライトで移動する場合、たとえばノートの上に10円玉を置いて、この10円玉が移動するイメージです。
文字で移動する場合、ノートの1行目にやじるしを書いている状態から2行目に移動する場合、2行目にやじるしを書いて、1行目のやじるしを消しゴムで消すイメージです。

どちらも見た目としては移動の処理です。
移動する何かをどうやって作るかでやりかたが変わってきますが、まずは作りたいものを作る場合、自分が出来る方法で作ってみるのが良いです。

スプライトは定義や呼び出し方が大変なので、まずは講座などであった文字でやってみるのが良いと思います。

こういった簡単と思える処理でも、結構細かく考えて作らないと出来なかったりします。
作る場合、流れとしてはこんな感じになると思います。

・何個か選ぶモノを表示させてみてる(最大数でFOR-NEXT、LOCATE)
・選ぶモノを選択するやじるしを表示してみる(LOCATE)
・やじるしを十字キーで移動できるようにしてみてる(BUTTON、位置の変数の更新)
・選ぶモノの数を超えて移動できちゃうのでそれをしないようにする(位置の変数と最大数の比較)
・Aボタンを押したら移動している場所によってPRINTなど何か処理してみる(位置の変数からIF)


ちなみにプチコンでゲームを作る場合、すべてにおいて VSYNCを呼んでいる条件付きの無限ループの中で書くので、いろいろ分かってきたあとに講座をもう一度見直してみるとよいです。
アバター
takumi 2018/11/26 17:48 ◆Ce3Q40uXWJjn
このやりかたはmoiさんがやってました。
僕もそれ以降これを使っています。見やすいように大文字で書きます。

ACLS等
N=1
WHILE 1
B=BUTTON(1か2)
LOCATE 0,1*N?"➡"
IF B==1 THEN N=N-1
IF B==2 THEN N=N+1
動作停止命令(WAIT等)
ーループー
アバター
Godot 2018/11/26 19:13 ◆ULYW1MrfcSYD
色々やり方はありますが
とりあえず
こんな感じでできるかと。

追記 2018/11/27
「" →"[N==0]」のところ
調べてもでてこないかもなので補足。

文字列ですが、実は配列のように使えて
「A$="あい"」とした場合、
「? A$[0]」とすると「あ」
「? A$[1]」とすると「い」
が表示されます。
1文字目は文字列の 0番目なので「[0]」
2文字目は文字列の 1番目なので「[1]」

でこれ

変数に入れずに直接
「? "あい"[0]」
「? "あい"[1]」
と書けてしまいます。

N は選択中の番号です。
十字キーの上下で足したり引いたりして
0〜2 の範囲で変化します。

「N==0」は N が 0 のときは、真(TRUE)
そうでないときは、偽(FALSE)になります。
プチコン3号では TRUE は 1、
FALSE は 0 です。

「" →"[N==0]」は N が 0 なら
TRUE(1)なので「→」が表示され
N が 0 でなければ FALSE(0)なので
「 」(空白)が表示されます。

他の
「" →"[N==1]」も
「" →"[N==2]」も
N の値によって 1 または 0 となります。

これで今選択中の数字のところだけ
「→」が表示されます。
アバター
Godot 2018/11/26 20:05 ◆ULYW1MrfcSYD
ちょっとややこしいかもですが
ダイアログでのパターン。

とりあえずサンプル 2つ
参考になれば。
アバター
Kwsk 2018/11/26 21:04 ◆aEB/5upT2jFe
こちらにちょうど良いプログラムを公開してあります。
ダウンロードしてみてください。
http://petitverse.hosiken.jp/community/petitcom/topic/?read=608&ukey=0

コメントを書く

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

- WEB PATIO -