はじめまして、こんにちは。まさといいます。
プログラムを
センサから何も入ってこないとき −> 行動1
ちなみにこれは緑色の下に書いてあります
タッチセンサから入っているとき1秒だけ −> 行動2
ライトセンサから入っているとき −> 行動3
のように組もうと思ったのですが、タッチセンサの
行動を終えた後に動作が止まってしまいます。
これは「タッチセンサが触れていない」ところのプログラムを見て
いるからだと思います。(ここには何も書いていない)
つまり、プログラムの書き方が悪いと思うのですが、
どうしたら目的のプログラムを作成できるのでしょうか?
教えてください。お願いします。
なんだか説明がおかしいと思うのでもう一回
投稿しようと思います。
つまり、タッチセンサが触れた後に1秒間だけ
ある行動をさせ、1秒たったらmainのプログラム
(programの下のプログラム)に戻すにはどうしたら
いいのでしょうか?
タッチセンサに触れた後だとタッチセンサのrelease
のところにある命令を実行しようとしてしまうのです。
と言いたかったのです。説明がヘタですいません。
RCX CODE でプログラムを書いているんですよね。 > まささん
RCX CODE を文章で説明するのはなかなか大変ですし、説明をされても
理解するのも又大変ですね。
もしも、WebPageなどをお持ちだったら、いまのプログラムのスクリーンショットを
撮ったりして、WebPageの方に載せたりして頂いて、そのURLなどを教えて
頂けたりすると、意思の疎通はしやすいかと思いますが、可能ですか?
さて、いま、なんとかキャラクターで図を書いてみました。
「P1」 ―-「 S1 」
□|□□ |□|
□A □□ B□ C
(プロポーショナルフォントなので、文字により幅が変わるので、
スペースの変わりに □ を使っています)
P1 がプログラムのスタート部分
S1 がセンサーウオッチ(まささんの場合は、タッチセンサーですね)
A が RCXのRUN ボタンを押して直ぐ実行される部分
B が タッチセンサーが放されたときに実行される部分
C が タッチセンサーが押されたときの部分
まささんは、 こんな風にプログラムを書いたといことですか?
続きです。
RCX CODEでS1の部分をサブルーチンと言う風に理解していると
RCX CODEが不可解に思えると思います。
RCX CODE の難しさというか、面白さは、P1の部分とS1の部分が実は同時に実行
されてるところです。
まささんの望む作動をさせたいと思うのならば、いちばん簡単な方法としては
Bの部分が終わったら、Aの部分と同じ物を、Bの下に続ければよいと思います。
Aの部分を My Command で定義してしまい、それを、Bの下につければよいと
思います。
別の方法としては、面倒ですが、カウンターをフラグとして使う方法です。
現在のAの部分を、My Commnadでひとつに纏めておきます。
そして、新たな、Aの部分は無限にリピートする用にしておいて
Counter を使って、Counterが0の時は先ほど作った My Comannd を
作動をさせるようにしておきます。
そして、C の部分でタッチセンサーが押されたら、カウンターを+1(Add Counter たしか) します。
また、Bの部分でタッチセンサーが放されたら、カウンターをリセット(0にして)
してまた、Aの中である、ループの状態を操作するようにします。
分かります〜?。
いずれにせよ、繰り返しになりますが RCX CODE は P1の部分とS1の部分が
実は同時に実行されてる事と、「S1]の部分をサブルーチン的に考えないように
することです。
あの分かりにくい説明にこんなにも親切に
答えてくれて本当にありがとうございます。
感謝・感謝です。
ということは、俺が考えているように
タッチセンサがオンでライトセンサがオン
の時は行動1。みたいなことはRCX-CODEでは
できないということですね。
それがしたかったらNQCみたいな言語を用いて
プログラムをしないといけないという
ことですか???
●まさ さんへ
できないとは書いていないと思うんですが。 ..........
RCXCODEで、貴方の望むような動かし方をしたいと思うのであれば、
貴方が初めに書いた方法ではうまく行かないと思います。
ですから、まささんが2番目に書きこんだ、問題の対応策と思い2つの
方法を書いてみました。
その方法を使えば、まささんが2番目に書いた問題をクリアできると思
いますので、ぜひ実験してみてください。
> タッチセンサがオンでライトセンサがオン
> の時は行動1。みたいなことはRCX-CODEでは
> できないということですね。
できると思いますよ。
なるほど。分かりました。
がんばって作ってみます。
教えていただいて本当にありがとうございました。