<?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変数を使った動き</title><revhistory><revision><revnumber>6</revnumber><date>2012-06-29 00:15:58</date><authorinitials>masahiko</authorinitials><revremark>.</revremark></revision><revision><revnumber>5</revnumber><date>2012-06-21 05:35:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2012-06-13 03:03:51</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2012-06-13 02:48:50</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2012-06-12 13:02:25</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2012-06-12 12:58:59</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>変数を使った動き</title><para>変数を使うといろいろな動きをつけることができます。 </para><para>ピョンピョンはねる動きを例として説明します。 </para><!--rule (<hr>) is not applicable to DocBook--><section><title>準備</title><para>x座標に足したり引いたりすることで、左右に動かすことができました。 </para><para>右に移動し、ウインドウの右端をすぎたら 左端から現れるスクリプトです。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8B%95%E3%81%8D?action=AttachFile&amp;do=get&amp;target=idoryo01.png"/></imageobject><textobject><phrase>idoryo01.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>速さは１０になっていますが、 これを変数で表すことにします。 </para><para>数値型の変数を作成し、名前を「x移動量」としました。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8B%95%E3%81%8D?action=AttachFile&amp;do=get&amp;target=idoryo02.png"/></imageobject><textobject><phrase>idoryo02.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>スクリプト内で数値を記述していた箇所を <emphasis role="strong">変数名</emphasis>に修正します。 </para><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%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8B%95%E3%81%8D?action=AttachFile&amp;do=get&amp;target=idoryo03.png"/></imageobject><textobject><phrase>idoryo03.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>変数「x移動量」の値が１０の場合は 最初の例と同じ動作になります。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>縦方向の動き</title><para>数値型の変数をもう１つ作成し、名前を「y移動量」としました。 </para><para>「y移動量」の値が０のときは y座標にy移動量を加えても上下方向の変化はありません。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8B%95%E3%81%8D?action=AttachFile&amp;do=get&amp;target=idoryo04.png"/></imageobject><textobject><phrase>idoryo04.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>重力を考える</title><para>地球上では下方向に重力加速度がつねに加わっています。 </para><para>これをシミュレートするために次のように記述します。 </para><para>ピョンと跳ね始めるとき </para><itemizedlist><listitem override="none"><para>「y移動量」をプラスの値に設定します。 </para></listitem><listitem override="none"><para>地面に当たったことを判定して行っています。 </para></listitem></itemizedlist><para>空中にいるとき </para><itemizedlist><listitem override="none"><para>チクタクごとに「y移動量」の値を１減らします。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8B%95%E3%81%8D?action=AttachFile&amp;do=get&amp;target=idoryo05.png"/></imageobject><textobject><phrase>idoryo05.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%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8B%95%E3%81%8D?action=AttachFile&amp;do=get&amp;target=idoryo06.png"/></imageobject><textobject><phrase>idoryo06.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><section><title>応用</title><para>例では、 地面に当たったときに跳ねるようにしていますが、 y座標で判定するように修正してみましょう。 </para><para>いろいろな動きを考えてみましょう。 </para></section></section></section></article>