<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>etoys本を使った作品(2)</title><revhistory><revision><revnumber>15</revnumber><date>2012-07-20 00:23:00</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>14</revnumber><date>2012-07-19 05:43:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>13</revnumber><date>2012-07-19 05:39:59</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>12</revnumber><date>2012-07-19 05:36:04</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2012-07-19 02:51:02</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2012-07-19 02:41:55</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2012-07-19 02:26:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2012-07-19 02:14:59</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2012-07-19 01:54:02</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2012-07-19 01:34:05</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2012-07-17 07:12:00</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2012-07-17 03:01:21</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2012-07-16 13:19:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2012-07-16 13:14:05</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2012-07-16 13:08:37</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>本を使った作品(2)</title><para>本を使った作品を作ります。 </para><para>前回の内容 </para><itemizedlist><listitem><para>全体の構成を考える </para></listitem><listitem><para>それぞれのページを作る </para></listitem><listitem><para>ページ内のスクリプトを作る </para></listitem></itemizedlist><para>今回の内容 </para><itemizedlist><listitem><para>ページの進め方を考える </para></listitem><listitem><para>ページを初期化するスクリプト </para></listitem><listitem><para>ページを変えるスクリプト </para></listitem></itemizedlist><para>次回の予定 </para><itemizedlist><listitem><para>全体の調整 </para></listitem><listitem><para>その他 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><section><title>ページの進め方を考える</title><para>前回、本全体の構成を考えたことと思います。 </para><para>ここではページの進め方を考えます。 </para><itemizedlist><listitem override="none"><para>本のコントロールを使うのではなく 各ページに描かれているものを操作するなどの 方法でページを進めます。 </para></listitem></itemizedlist><para>どのページに進むかは、自由に指定できます。 </para><para>１つのページから複数のページに進むことを考えてもよい。 </para><para>いくつかの例をあげます。 </para><section><title>例１</title><itemizedlist><listitem override="none"><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>あるオブジェクトをクリックしたら、ページを進める。</para></entry></row></tbody></tgroup></informaltable></listitem></itemizedlist><para>最初のページでは（本を読む人にとって）この方法が分かりやすい。 </para></section><section><title>例２（例１の応用）</title><itemizedlist><listitem override="none"><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>どのオブジェクトをクリックするかにより、どのページに進むかが変わる。</para></entry></row></tbody></tgroup></informaltable></listitem></itemizedlist><para>何かの動作が完了してから、 あるオブジェクトをクリックするとページが進む。 動作が完了するまでは進めない。 </para></section><section><title>例３</title><itemizedlist><listitem override="none"><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>生き物が左端から右端まで移動し終わったら、ページを進める。</para></entry></row></tbody></tgroup></informaltable></listitem></itemizedlist><para>本を読むように自動的に進むページ </para><itemizedlist><listitem override="none"><para>所要時間や動きを調整すると有効 </para></listitem></itemizedlist></section><section><title>例４</title><itemizedlist><listitem override="none"><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>ジョイスティックなどを用いたゲーム的な場面をクリアしたときにページを進める。</para></entry></row></tbody></tgroup></informaltable></listitem></itemizedlist><para>その他 </para><itemizedlist><listitem override="none"><para>複数の条件を使ったり </para></listitem><listitem override="none"><para>例１～４を組みあわせて使う </para></listitem></itemizedlist><para>のも面白いと思います。 </para></section><section><title>例５</title><itemizedlist><listitem override="none"><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>一定時間経過したら、ページを進める。</para></entry></row></tbody></tgroup></informaltable></listitem></itemizedlist><para>時間はカウンタを使って計ります。 </para><!--rule (<hr>) is not applicable to DocBook--></section></section><section><title>ページを初期化するスクリプト</title><para>ページが変わったときは 初期化の作業が必要です。 </para><para>たとえば次のような処理を行います。 </para><itemizedlist><listitem><para>主人公など動くものを指定の位置に移動する </para></listitem><listitem><para>スクリプトをスタートする </para></listitem><listitem><para>変数の値を指定する </para></listitem></itemizedlist><para>それぞれのページに初期化のスクリプトを </para><itemizedlist><listitem override="none"><para><ulink url="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys本を使った作品(2)/~masahiko/moin.cgi/etoys%E6%99%AE%E9%80%9A%E3%81%AE%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E3%81%86#">普通のオブジェクトをボタンとして使う</ulink> </para></listitem></itemizedlist><para>方法で作成します。 </para><para>ボタンらしくない普通のオブジェクトのスクリプトとして作成してよい。 </para><section><title>例</title><para>本の３ページ目の初期化スクリプトを 花のスクリプトとして作成した例です。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book40.png"/></imageobject><textobject><phrase>book40.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section></section><section><title>ページを変えるスクリプト</title><para>ページを変えるだけなら 本のページを指定するだけで済みますが 移った先のページの初期化も合わせて行うこと。 </para><para>初期化を行わないと、何回も読むことができなくなります。 </para><section><title>例１</title><para>あるオブジェクトをクリックすると、別のページに移動する例です。 </para><para>クリックするオブジェクトにより、異なるページに移動することもできます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book41.png"/></imageobject><textobject><phrase>book41.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>例２</title><para>主人公が動いて、目的の場所（りんごのところ）に着いたら 別のページに移動する例です。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book42.png"/></imageobject><textobject><phrase>book42.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section></section><section><title>ページを変えるスクリプト作成上の注意</title><para>ページを変える処理の部分では </para><itemizedlist><listitem><para>本のページを指定する </para></listitem><listitem><para>移った先のページの初期化をする </para></listitem></itemizedlist><para>の２つを行います。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book43.png"/></imageobject><textobject><phrase>book43.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><section><title>注意１</title><para>複数のオブジェクトからタイルを配置する必要があります。 </para><para>異なるページにあるオブジェクトもあります。 </para></section><section><title>注意２</title><para>ページを変える処理はページを変えるときに<emphasis role="strong">１回だけ</emphasis>行うことに注意してください。 </para><itemizedlist><listitem override="none"><para>チクタクで動作させるのではありません。 </para></listitem></itemizedlist><para>他のスクリプトを１回だけ行うには ビューアの<emphasis role="strong">スクリプトの中</emphasis>にある 行いたいスクリプトをドラッグして配置します。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book44.png"/></imageobject><textobject><phrase>book44.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>ビューアの<emphasis role="strong">スクリプティングの中</emphasis>にある <emphasis role="strong">スクリプトを実行する</emphasis>のタイルを使っても同じです。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book45.png"/></imageobject><textobject><phrase>book45.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>次の２つの違いに注意してください。 </para><itemizedlist><listitem><para><emphasis role="strong">スクリプトを実行する</emphasis>のタイルは指定のスクリプトを１回実行させます。 </para></listitem><listitem><para><emphasis role="strong">スタートする</emphasis>のタイルは指定のスクリプトをチクタクにします。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section></section><section><title>スクリプトの状態と動作</title><para>スクリプトは </para><itemizedlist><listitem><para>チクタクで動作させるもの </para></listitem><listitem><para>１回だけ実行されるもの </para></listitem><listitem><para>他から呼び出して使うもの </para></listitem></itemizedlist><para>に分けられます。 </para><para>どんなときに実行されるかにより、設定が異なります。 </para><itemizedlist><listitem><para>チクタク　１秒間に８回実行されます。 </para></listitem><listitem><para>ノーマル　他から呼び出されるものは、通常は停止しています。 </para></listitem><listitem><para>マウスアップ　クリックしたとき(1回)動作します。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>他のバージョンのeToysにおける注意</title><para>eToysのバージョンによっては 別のページにあるオブジェクトのビューアを表示しようとして、 本のページを変えると開いていたビューアやスクリプトが消えてしまうことがあります。 </para><itemizedlist><listitem override="none"><para>無くなったわけではありません。 </para></listitem><listitem override="none"><para>もとのページに戻って、再度表示させれば現れます。 </para></listitem></itemizedlist><para>このような場合には スクリプトを作成するオブジェクトがあるページを開いたままで 作業をしてください。 </para><para>他のページにあるオブジェクトのビューアを表示させるには <emphasis role="strong">プレイヤー一覧</emphasis>を表示させ、 望みのオブジェクトの<emphasis role="strong">目のマーク</emphasis>をクリックします。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>デバッグ時の注意</title><para>動作を確認するために 元のページに戻ろうとして 本のページを変えても すぐに次のページに進んでしまうことがあります。 </para><para>たとえば上の<emphasis role="strong">例２</emphasis> で示したスクリプトを使った場合、 主人公がりんごとぶつかったらページ３に進みます。 </para><para>ページ３に進んだとき、 主人公のいる元のページはこのような状態になっています。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book46.png"/></imageobject><textobject><phrase>book46.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>このページを表示させようとページを変更しても 一瞬表示されるだけで すぐにページが進められてしまいます。 主人公のスクリプトがチクタクで動作しているからです。 </para><para>このページを表示させるには プレイヤー一覧から、そのページで動作しているオブジェクトのビューアを表示させ、 スクリプトの動作を止めてから ページを変えます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E6%9C%AC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BD%9C%E5%93%81%282%29?action=AttachFile&amp;do=get&amp;target=book47.png"/></imageobject><textobject><phrase>book47.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section></section></article>