プレイ日記
さとう えいた rokkuman200408
時計プログラムで、Aボタンを押すと『@B』に飛んで(その逆も同様)音をなくす様に作りたいのですが、いまいち解らん、、、誰か教えてくださいませ、、、
6そうだね
プレイ済み
返信[1]
親投稿
だにえる haru2016nen
B=BUTTON(3) をループの中に入れる。 あくまで、「命令(関数)が実行された時点での ボタンの情報」が変数Bに入る。ので、 ループの中に入れることで情報を 更新するようにする。
1そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
(以下、ループ中に入れた前提) あと、そのプログラムは (約)1秒で1ループなので、 BUTTON(3)の判定が1秒に1回(瞬間的) されることになります。 しかし、BUTTON(3)はボタンを 離した「瞬間」しか反応されないため、 BUTTON(2)にすることをおすすめします。
1そうだね
プレイ済み
返信[3]
親投稿
さとう えいた rokkuman200408
なんやかんやうんぬんかんぬんありつつ何とか完成! 皆様、有り難う御座いました!
0そうだね
プレイ済み
返信[4]
親投稿
Godot orz_127
既に解決ずみですね^^; とりあえず、さっき試しに作って見たのがあるので、何かの参考になれば。 WAIT 60 だと反応が悪い気がしたので BOTTON(2) をWAIT 1回づつで60 回ループさせてみました。
2そうだね
プレイ済み
返信[5]
親投稿
TERA(LL) tera0413
初心者向け時計プログラムのコンテスト会場はここですかw 1秒毎に音を鳴らすのにWAITで時間調整するのは、どうかと思いましたので、余計なお節介かもしれませんが、参考までに対処方法の一例を作ってみました。
3そうだね
プレイ済み
返信[6]
親投稿
さとう えいた rokkuman200408
できた!
0そうだね
プレイ済み
返信[7]
親投稿
Godot orz_127
Sansさん いろいろボタンがつきましたね^^ WAIT 60 だと1秒間にボタンを読み込むチャンスが1回です。 そのチャンスを逃すと、次の機会を待つことになり、ボタンの反応が悪く感じるかと思います。 それで自分のほうは、ボタンの反応を改善した例となっています。 それと WAIT 60 は約1秒でなのでタイミングによっては同じ秒が続く可能性もあるのかなと。 どちらかと言うと間に他の処理も入り微妙なずれが広がって同じ秒が一秒飛ばしとか場合が発生する可能性高い気がします。 なので普通のアクションゲームでは約一秒でも良いと思われますが時間表示は TERA さんの様に時間比較で表示更新した方が良いと思います。
0そうだね
プレイ済み
返信[8]
親投稿
Godot orz_127
TERAさん 実は自分も TIME$ の新旧比較で同じ様に作ってみました。 元の仕様が「最初は音が出ていてオンオフ出来る」だったので、FLG=1から始めてみたら第1音と第2音の間が悲しいことに。 FLG=0 で始めれば問題ないのですが、FLG=1 のままでの改善案が直ぐに思い付かなかったので orz 初回チェック用のフラグを用意して初回だけ音を出さないとすればできるけど何かちがう気も。 FLG=1 で始めるときの良い対策案って思い付きます?
1そうだね
プレイ済み
返信[9]
親投稿
TERA(LL) tera0413
>スレ主さん BASICなので1つの事を実現する方法はいくらでもあります。 いろんな方法を試されると良いと思います。 フラグについてもGodotさんが !FLG にしてたので敢えて別の方法にしました。 >Godotさん うう、またなんか難しい問題をw (1/60秒にこだわる世界) 安直な解決方法としては、メインループに入る直前に1回だけ読み込んでおくとか・・・
1そうだね
プレイ済み
返信[10]
親投稿
さとう えいた rokkuman200408
いつの間にかスレになっていた件w 本題…色々な方法、、、考えたことなかったw
0そうだね
プレイ済み
返信[11]
親投稿
Godot orz_127
TERAさん 説明不足ですみません。 実は「最初に一回旧に読み込んでおけば良い」も思い付いてやってみたのですが、その場合、初回表示に最大?59フレームの遅延が。 それがちょっと納得できなかったので^^; とりあえず実行したら直ぐ時間は出て欲しい、でも中途半端なタイミングで初回の音は出て欲しくない、と。 やはり、落としどころとしては、初回表示はタイミングとりでなしとするのが一般的なのでしょうか? もしかしたら、そこところ自分が思い付いていない、別の方法があるのかな?と^^;
0そうだね
プレイ済み
返信[12]
親投稿
TERA(LL) tera0413
あ! (うん2行目3行目わざわざSに読み込んでSOに代入する必要なかったね orz)
1そうだね
プレイ済み
返信[13]
親投稿
Godot orz_127
Sansさん すみません。 勝手に他の人との会話の場にしてしまって。 TERAさんがコメントしているようにやり方は色あります。 !FLGもそうですが @LOOP ~ GOTO @LOOPを 自分は WHILE TRUE ~ WEND として置き換えた例を提示しましたが、同じ様に TERAさんは、REPERT ~ UNTIL 0 の方法を提示しています。 この様に同じことでも色々とやり方があるのでひとつの方法だけでなく、これでこうしたらどうなるかと色々試してみると、出来る事が広がるので良いかと。
1そうだね
プレイ済み
返信[14]
親投稿
TERA(LL) tera0413
Godotさん 申し訳ないですが、最大59フレーム相当の表示遅延はわかりませんでした。 (TMREADを1回するのに表示遅延する程の影響が?) 逆に初回タイミングあわせ待ちをすると、待ちの間の表示遅延は発生しそうな気はします。 初回フラグもうけるとか、初回タイミングあわせが一般的な方法と思われますが「それ以外の解決策」については・・・すぐには思いつきませんでした。 まあ、スレ主様が良い方法を思いついてくれるのを期待してますw
2そうだね
プレイ済み
返信[15]
親投稿
Godot orz_127
TERAさん あれ? 1秒60フレームなのでWAIT 60ではないでしたっけ? 単位を間違えたか^^ ; WAIT (SYNC) 回を1フレームとして言ってしまいました。 WAIT 1の間隔でループしているので時間が変わって1回過ぎていれば59回の間は全て同じ時間。 最初に旧を読み込んでの表示の場合、今の仕様では旧と新が違ったら表示なので、時間変更から59回過ぎたあとなら1回待てば最初の時間表示がされる。1回過ぎた後だと59回待たないと最初の時間表示がされない。 なので59回分(1秒弱)表示が遅延する と言う認識でした。
0そうだね
プレイ済み
返信[16]
親投稿
Godot orz_127
確認してみました。 WAIT 1回は1フレームで良かった様です。 旧に事前に入れると値か変わるまでの初回のタイミング合わせとなります。 前のコメントに書いたように初回表示前に1~59フレームの待ちが入って最大59フレームの遅延が起きると想定しました。
0そうだね
プレイ済み
返信[17]
親投稿
TERA(LL) tera0413
あー、なるほど、確かに「旧と新が違ったら『表示』」なら最大およそ1秒近く初回表示、遅れますね。 (表示は毎フレーム更新で、音だけ旧と新が違ってたら「鳴らす」にしてたので気がつきませんでした。)
1そうだね
プレイ済み
返信[18]
親投稿
Godot orz_127
TERAさん すみません こちらも見落としていました。 最初自分が試していたときは、毎フレーム時間表示をしても良いけど、同じなので無駄だなと新旧が変わったら時間表示と音を出していました。 それを前提で話していたので、初回の音と表示が、と言う話に^^; TERAさんの方式で音だけ別に処理すれば、初回の音のずれは回避できますね^^:
0そうだね
プレイ済み
返信[19]
親投稿
さとう えいた rokkuman200408
機能は(ガチで)少量ですが、色んなプログラムを詰めこむ(予定の)「MIX」を公開します。改造自由ですw
0そうだね
プレイ済み
返信[20]
親投稿
Godot orz_127
何か難しく考え過ぎていました^^; いつもの様に最初に初期画面を表示しておいて後から書き換える方式で良いのに気づきました^^; 最初はループの外で音なしで時間を表示。 そのあとは時間が変わるごとに時間表示と音がONなら音を出す方式で。
1そうだね
プレイ済み
返信[21]
親投稿
TERA(LL) tera0413
(Sansさんは第一音と第二音の間にはこだわってないみたいです)
1そうだね
プレイ済み
返信[22]
親投稿
karupa 5edf5d
乱入すいません sans s»僕もt-toor作る予定ですしおすし協力して出来ないかなぁと思っている所存で御座います。 コメントを入力している途中の僕は思った 慣れが必要だ と感じた。
1そうだね
プレイ済み
返信[23]
親投稿
さとう えいた rokkuman200408
カルパs»ま、まぁベーシック言語等は慣れないと難しいですしね、、、
0そうだね
プレイ済み
返信[24]
親投稿
なぎ mionn0514
関係ないけど、アンダーテール好きです。パピルスが、好きです。     サンズ 弟思いだなー。(泣)
0そうだね
未プレイ