Tutorial #4

応用編

ここでは、1つのボタン操作でSTART/STOPを行い、サイコロの目をランダムに変化させるプロジェクトを作成します。

サンプルプロジェクト

解説動画(前編)

解説動画(後編)

 TOMATEでは、描画エリアに描いたオブジェクトをひとまとめにして、図形データとして保存する機能を搭載しています。 

【作成手順】

  1. 新規ページに、四角と丸図形を使用して、1~6のサイコロの目を作成します。
     
  2. 作成した、「1」のサイコロをひとまとめに選択し、
    「メニュー:ファイル:部品を画像として保存」
    を選択します。
    同様に2~6のサイコロを画像として保存します。
     
  3. 「メニュー:ツール:メディア登録:イメージ画像」を選択すると、画像リストダイアログが開きます。
    2で作成した6個のサイコロのイメージファイルを登録します。
     
  4. 新しいページに、四角図形を2つ描画し、片方のスクリプト欄に img{[d1]} 、もう一方に img{[d2]} と入力します。
    変数欄に、d1=d2=1と記入すると、2つの四角オブジェクトにサイコロが描かれます。
     
  5. START/STOPボタンを描画し、スクリプト欄に以下のコマンドを入力し、変数欄に btn=0 と入力します。
dsp{ [btn] : 0=START, white, blue : 1=STOP, white, red } :

if{ (btn==0) :

    int{10 : cmd{ rnd{[d1]:1,6} : rnd{[d2]:1,6} : (btn=1) } } :

    cmd{ int{0: } : (btn=0) : var{d1, d2} }

}

【スクリプト解説】

  •  img{ } コマンドはオブジェクトにイメージ画像を表示するコマンドです。 番号(1-6)を指定すると、イメージ登録されている図形を表示します。 [変数]の指定もできます。
    表示されるイメージは、元図の縦横比を保った状態でオブジェクトサイズに合わせ表示されます。
    登録番号は、1~であることに注意してください。
    登録外の番号を指定すると何も表示されません。
     
  • dsp{ } は、[変数]の値に応じて、指定された文字列と配色でオブジェクトに表示するコマンドです。
    btn=0のとき青地に白文字で”START”と表示され、btn=1のとき赤地に白文字で”STOP”と表示されます。
     
  •  if{ } は、式の真偽値を判定し、真偽に割り当てられたコマンドを実行します。
    if{ (比較式) : 比較式が真のとき実行するコマンド : 偽のとき実行するコマンド }
    真偽はコロンで区切られるため、真偽のコマンドは1つのみ実行できます。
     
  • cmd{ } は、複数のコマンドを1つにまとめることができます。 if{}文中のコマンドは、真偽それぞれ1つのコマンドしか記載することができません。 int{}コマンドも同様です。
    このため、cmd{ }で複数コマンドを1つのコマンドにまとめています。
     
  • int{ } は、一定時間ごとに指定されたコマンドを実行します。 指定する時間はx1msとなり、0と指定すると停止します。 サンプルでは、10msと指定していますが、この値を大きくするとサイコロの回転が遅くなります。
     
  • rnd{ } は、指定した範囲の乱数を発生させ、[変数]に設定するコマンドです。
     
  •  var{ } は、指定した変数の値を output.txt へ出力するコマンドです。
    { }で括られ、変数の中身がカンマ区切りで出力されます。
    例) さいの目が1,2だった場合、
        var{ d1, d2 } → output.txt に {1,2}

作成したプロジェクトを実行すると、1の目のサイコロが2つ、「START」と表示されたボタンが1つ表示され、STARTボタンを押すと、STOP表示に切り替わり、サイコロが高速で回転し始めます。
STOPボタンを押すと、2つのサイコロがランダムの目で停止します。 このとき、 output.txt に止まったさいの目が {1,2} のように出力されます。

 ユーザープログラムにて、output.txt の文字列を読み込むことで、作成した画面のインターフェイスとして使用することができます。