投稿
<(_ _)> FukanoShouki
Aボタンを押すとBEEP99を流れるようにしたのですがOKと出て流れません何が問題なのでしょうか 一応Aボタンを押すとBEEP99がなりながら赤いドアが開くプログラムを作ろうとしています
4そうだね
プレイ済み
返信[1]
親投稿
<(_ _)> FukanoShouki
すみません、写真を間違えてしまいました
0そうだね
プレイ済み
返信[2]
親投稿
Rwi RWIIUG0129
0そうだね
プレイ済み
返信[3]
親投稿
Scratchy forun.cookie
写真のプログラムだと、プログラム実行してから一瞬で終了してしまっているのでボタン判定ができてません。 @LOOP B=BUTTON IF B==16 THEN BEEP 99 GOTO @LOOP このようにループさせてみて下さい
0そうだね
プレイ済み
返信[4]
親投稿
くろちく FoliageLamp
とりあえず、素人考えで結果がでるようにだけ。 @LOOP VSYNC B=BUTTON(2) IF B==16 THEN BEEP 99 GOTO @LOOP
0そうだね
プレイ済み
返信[5]
親投稿
グレイ pokers
@A B=BUTTON() IF B==16 THEN BEEP 99 ELSE VSYNC 1:GOTO @A 先に進むまでにAボタン以外使わないならこれで多分OKです(^^*)
0そうだね
プレイ済み
返信[6]
親投稿
グレイ pokers
画像の場合、Aを押せば音がなりますが、Aを押さなければそのまま無視して通りすぎてしまいます。 なので、Aを押すまでループさせておく必要があります。 A以外にも操作がある場合は、何か反応があるまでループさせておいて、何か反応があればループを抜け出す(外の@へ飛ぶ)ようにすればいいと思います(><*)
0そうだね
プレイ済み
返信[7]
親投稿
<(_ _)> FukanoShouki
皆さんありがとうございます
0そうだね
プレイ済み
返信[8]
親投稿
けい kei0baisoku
書き込みが四人ほぼ同時な上、そのうち三人はルー プのラベル名も一緒という………(°Д°) あ、VSYNCはあった方がいいです
0そうだね
プレイ済み
返信[9]
親投稿
<(_ _)> FukanoShouki
すみません、もうひとつ質問します この赤いドアを開けたいのですがどうもうまくいきません。ただ四角の範囲を縮めているだけなので開いているというより小さくなっているだけにしか見えないのです。どうしたらドアが開くように見えるように出来るのですか?
0そうだね
プレイ済み
返信[10]
親投稿
<(_ _)> FukanoShouki
すみません日本語がおかしかったです
0そうだね
プレイ済み
返信[11]
親投稿
けい kei0baisoku
おっと、これは結構難しいテーマ。 ハードルが高いだろうなとは思いつつも、正攻法でアドバイスしてみます。 そんな時は、本物のドアを開け締めして、自分の作ったプログラムの動きとどこが違うかをよく観察しましょう。 そして、それをプログラムで似たように再現する方法を考えてみましょう。 まずは観察です。
0そうだね
プレイ済み
返信[12]
親投稿
<(_ _)> FukanoShouki
なるほど(`・ω・´)
0そうだね
プレイ済み
返信[13]
親投稿
<(_ _)> FukanoShouki
すみません、だぶんこれがラストの質問です Aを押すとドアが開くプログラムは @a B=BUTON() (フレーム) if B==16 THEN BEEP 99 if B==16 then gbox x,y,x,y カラー goto @a ですよね でもこれだけだと1フレームづつ動かないのですがどうしたらよいのですか バイオハザード1の扉を開ける映像みたいなものを作りたいです
0そうだね
プレイ済み
返信[14]
親投稿
くろちく FoliageLamp
うーん、また素人解決法で書くので過不足があるやも。 近いイメージはこうだったという感じ…です。 ACLS GFILL 100,20,200,200,RGB(255,0,0) @LOOP VSYNC B==16 THEN BEEP 99 GOSUB @DOA GOTO @LOOP @DOA FOR T=0 TO 20 GBOX 100+T,20,200,200,RGP(255,255,255) WAIT 3’この部分でループごとに時間を… NEXT RETURN
0そうだね
プレイ済み
返信[15]
親投稿
ASA fusuian
LAMPさんおしい! @DOA、一瞬でドアが消えました。 こうすると自動ドア風になります。 FOR X=111 TO 199 STEP 10 GFILL 101,21,X,199,0 WAIT 3 NEXT BEEP 99でバイオの扉の線だともう一工夫必要な感じですね。
0そうだね
プレイ済み
返信[16]
親投稿
くろちく FoliageLamp
あえての…意図的には、バイオの移動時の扉って 完全に開けてはいなかったので 扉がちょっと開いたをテーマにしてみたんですが。 バイオプレイしたことないので動画みてなので 勘違いでなければという感じ…。
0そうだね
プレイ済み
返信[17]
親投稿
せっかくだから俺もこの赤の扉を開けてみたぜ(`・ω・´) LUMPさんのをベースにしてみました。
1そうだね
プレイ済み
返信[18]
親投稿
ごめんなさいお名前間違えてしました・・・。 LAMPさんでしたね。
1そうだね
プレイ済み
返信[19]
親投稿
<(_ _)> FukanoShouki
皆さんありがとうございます(_ _)
0そうだね
プレイ済み
返信[20]
親投稿
<(_ _)> FukanoShouki
出来ました。皆さん本当にありがとうございます
0そうだね
プレイ済み
返信[21]
親投稿
<(_ _)> FukanoShouki
もっさんさんのプログラムの18~24行目が難しくて理解できないのは、やはり自分が勉強不足が原因ですよね。
0そうだね
プレイ済み
返信[22]
親投稿
ASA fusuian
そこは、一命令ごとにWAIT30入れたり、1ループごとにWAIT 60入れたりして、動作を追いかけてみましょう!
0そうだね
プレイ済み
返信[23]
親投稿
<(_ _)> FukanoShouki
やってみます。(`・ω・´)
0そうだね
プレイ済み
返信[24]
親投稿
試しにWAIT入れてみたら真っ黒になっちゃったので説明しときますね。 ドア枠の角がそれぞれX1,Y1が左上、X2,Y2が右上、X3,Y3が左下、X4,Y4が右下。 左上だけ決めればあとの3点は相対で決まります。 LINEは線の色、Tは経過時間と思ってください。 16 背景を黒から1ループ毎に徐々に明るい色で塗り替え。 18 ドア枠の線。 19~22 開いていくドアの線。 23 ドアの色を暗い赤から徐々に明るくして塗りつぶし。 24 ドアの向こうを黒から徐々に明るくして塗りつぶし。 26 タイミング合わせ LINEの色は塗りつぶしの境界なので背景の黒(0,0,0)と被らないように(1,1,1)にしてます。 変数だらけにしちゃったからわかり難いですね。 ていうかもっと効率的なやり方があると思うので匠の皆様よろしくお願いします・・・(´・ω・`)
0そうだね
プレイ済み
返信[25]
親投稿
けい kei0baisoku
命令が分からない場合は、単に知らないだけなので役割を調べたり、使って慣れたりしたら自然とわかるようになるので大丈夫です。 命令は分かるけどどう動くのかがピンと来ない場合は、ASAさんのように1行ずつ分解して確認するのが良いです。 ちなみに私も見ただけじゃよく分からないです。 プログラムって直感的じゃないので、正しく書かれていても分かりやすくはないというのはよくあります。 (だからコメントが大事なのですが)
0そうだね
プレイ済み
返信[26]
親投稿
18 はドア枠と言うより正確には白く塗りつぶす部分の外枠でした。
0そうだね
プレイ済み
返信[27]
親投稿
18~24を一旦全部コメントにして1行づつ有効にして確認するとなにをしてるか解りやすいかもしれません。 力技でゴメンネ・・・(´・ω・`)
0そうだね
プレイ済み
返信[28]
親投稿
<(_ _)> FukanoShouki
ありがとうございます、参考にさせていただきます
0そうだね
プレイ済み
返信[29]
親投稿
<(_ _)> FukanoShouki
for~nextと座標が全然わからない(;д;) 勉強しなければ(`・ω・´)
0そうだね
プレイ済み
返信[30]
親投稿
<(_ _)> FukanoShouki
青のドアを開けようと頑張った結果  開いたのはほんの少し(:∀:)
0そうだね
プレイ済み
返信[31]
親投稿
<(_ _)> FukanoShouki
これがプログラムです
0そうだね
プレイ済み
返信[32]
親投稿
まずサブルーチンの最後にRETURNがないと呼び出したきりメインループの@Pに帰ってこないので、@D、@Oの最後にRETURNを入れましょう。 で、本題のドアの件ですが、ようは青いドアの中にひとまわり小さい黒い四角を端から徐々に描けばドアが開く様に見えるわけです。 今どうなっているのか確認する為に24の最後の0をRGB(255,255,0)にしてみて下さい。 これでRボタンでの描画箇所が黄色になるので動きがわかると思います。 あとはうまく動くよう座標を調整してから色を戻せば出来上がりです。 それから@SAがなんの処理かこのリストではわかりませんが@SAを呼び出す@Iはメインの@Pと繋がっていないのでのこのリストを見た限りでは実行されることはありません。 @P以外から呼ぶ予定がなく@Iの中にこれ以上処理が入る予定もなければ31のIFの処理は@Pの中に移動でいいと思います。
0そうだね
プレイ済み
返信[33]
親投稿
<(_ _)> FukanoShouki
回答して頂ありがとうございます そして勝手ながらフォローさせていただきました
0そうだね
プレイ済み