This website is available for multi language.

ブロックをずっと動かすには

ブロックプログラムは上から下に1つずつ実行されていきます。

ということは、一番下まで行くと終わってしまいます。

今回は終わらせずにずっとプログラムを動かす方法を紹介します。

ずっと動くと何がいいのか。

例えば、ボタンが押されるまで待ったり、カメラに人間が映るまで待ったりなど、何かを「待つ」ときにループを使います。
つまり、「ループを使って起きるまでずっと繰り返しチェックする」ということになります。

繰り返し

ブロックの中には「画面に文字を出す」など何かをするブロックの他に、ブロックの動きを決めるためのブロックがあります。「ループ」もその1つです。

「ループ」にあるブロックはブロックの中にブロックを入れることができます。

入れたらどうなるかというと、入れたブロックも同じように上から実行されますが、一番下まで行くとまたループの上まで戻ってもう一度実行されます。

前回まで作っていたobnizにつないだあとにコンソールに文字が出るブロックにループを入れてみましょう。

ループの中を見るといくつかのループがあります。今回は「ずっと 実行」と書かれているものを使います。
これが中に入れたブロックを繰り返しずっと実行するというブロックです。

これをobnizにつながったあとに入れて、その中にコンソールに文字を表示するものを入れてみます。
こうすれば、ずっと画面に文字が出続けます。

<!-- Block Program Example -->
<xml xmlns="http://www.w3.org/1999/xhtml">
  <variables>
    <variable type="obniz" id="X2:3=S(hsdv0mk{aavHW">obniz</variable>
    <variable type="UIButton" id="80uQ37Yg!_RM@zbm[`cF">button</variable>
    <variable type="UIButton" id="#7$4fAkr(P%;.%JaKIy`">backbutton</variable>
    <variable type="UIButton" id="akidXEU*0XQ}VT^!o6Sp">rightbutton</variable>
    <variable type="UIButton" id="KBvD*sLV+fD7(ieEkq5x">leftbutton</variable>
    <variable type="" id="hpvY$6K[tgY$$/L_8%xc">count</variable>
    <variable type="dcmotor" id="V?6USN(jVhQ,P{82]/*M">dcmotor</variable>
    <variable type="airobotkit" id="Jk=/mw~HxfZs@VDVmFYY">airobotkit</variable>
    <variable type="led" id="!MAt1@Dsy)#f.p,K@;=%">led</variable>
  </variables>
  <block type="obniz_connect" id="Z8!^LPO*[5?q{e*57()u" x="154" y="225">
    <field name="obniz" id="X2:3=S(hsdv0mk{aavHW" variabletype="obniz">obniz</field>
    <value name="obniz_id">
      <shadow type="text" id="XmI_$os3vVOeQ~scg106">
        <field name="TEXT">OBNIZ_ID_HERE</field>
      </shadow>
    </value>
    <next>
      <block type="obniz_util_repeat" id="p0}Pg~s6Ds*c4`8cB]0`">
        <statement name="DO">
          <block type="obniz_debug_text" id="e+()Yb@2p51R(`z-n?)x">
            <value name="text">
              <shadow type="text" id="1dT(c-7Cr9sl;{nI,z9J">
                <field name="TEXT">つながった</field>
              </shadow>
            </value>
          </block>
        </statement>
      </block>
    </next>
  </block>
</xml>

そして、実行するとこの下にある画像のようにobnizにつながったあとプログラムの画面上に”つながった”という文字が大量に表示されると思います。

これで、プログラムを終わらせずにずっと動かすことに成功しました!

ループの種類

「ループ」の中には 「ずっと実行」以外にもブロックがあります。例えば、これはある回数だけループするというブロックです。10なら10回だけ実行します

このループはある条件が揃ってるときだけループするというブロックです。

そして、こちらはループではないのですが、ある時間だけ待つブロックになります。
ループというのはずっと繰り返すことになるので、スマホやPCにとってとても負担が大きいのです。
何もしない時間を与えて休ませることでバッテリーの消費を防ぐことができます。
待ち時間が入ってもよいのであれば、このブロックを繰り返しの中に入れるとバッテリーにとって良いです。



Next : UIボタンと連動させよう

最短で翌日に届きます

obniz BoardはAmazonや公式ストアから購入できます。最短で当日出荷いたします。
取り扱い店舗はこちらから。

製品紹介

フォーラム

obnizフォーラムでは、obnizユーザー同士で意見交換することができます。
疑問・質問もお気軽にどうぞ。

フォーラム

お問い合わせ

製品・サービスに関するお問い合わせや、導入・開発のご相談など、お気軽にお問い合わせください。

お問い合わせフォーム