<?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>34</revnumber><date>2012-06-29 00:17:31</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>33</revnumber><date>2012-06-22 01:47:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>32</revnumber><date>2012-06-22 01:45:46</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>31</revnumber><date>2012-06-22 01:40:14</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>30</revnumber><date>2012-06-21 06:20:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>29</revnumber><date>2012-06-21 06:20:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>28</revnumber><date>2012-06-21 06:13:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>27</revnumber><date>2012-06-21 06:05:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>26</revnumber><date>2012-06-21 06:04:03</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>25</revnumber><date>2012-06-21 06:02:34</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>24</revnumber><date>2012-06-21 05:52:59</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>23</revnumber><date>2012-06-21 05:52:05</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>22</revnumber><date>2012-06-21 05:50:29</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>21</revnumber><date>2011-06-30 12:46:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>20</revnumber><date>2011-06-28 12:51:37</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>19</revnumber><date>2011-06-28 12:50:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>18</revnumber><date>2011-06-28 12:45:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>17</revnumber><date>2011-06-28 12:43:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>16</revnumber><date>2011-06-28 12:16:06</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>15</revnumber><date>2011-06-28 12:06:54</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>14</revnumber><date>2011-06-28 12:03:58</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>13</revnumber><date>2011-06-28 03:55:20</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>12</revnumber><date>2011-06-28 03:47:31</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2011-06-28 03:42:01</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2011-06-28 03:01:28</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-06-28 02:54:56</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-06-28 02:42:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-06-28 02:37:55</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-06-28 02:35:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-06-28 02:33:00</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-06-28 02:22:48</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-06-28 02:14:49</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-06-28 02:05:54</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-06-28 02:02:54</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>前回分は <ulink url="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoysジョイスティックを使ったゲーム/~masahiko/moin.cgi/etoys%E7%9C%9F%E5%81%BD%E5%80%A4%E5%9E%8B%E3%81%AE%E5%A4%89%E6%95%B0%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B#">真偽値型の変数を利用する</ulink> のページを参照してください。 </para><para>画面例 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%B8%E3%83%A7%E3%82%A4%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B2%E3%83%BC%E3%83%A0?action=AttachFile&amp;do=get&amp;target=game31.png"/></imageobject><textobject><phrase>game31.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>ここまでできていました。 </para><itemizedlist><listitem override="none"><para>主人公をジョイスティックを使って動かす。 </para></listitem><listitem override="none"><para>いくつかある障害物のところは通れない。  </para></listitem><listitem override="none"><para>ゴールにたどり着いたら終わり。 </para></listitem><listitem override="none"><para>アイテムを取ると動作が変わる。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>今回追加分</title><itemizedlist><listitem override="none"><para>ゴール（またはアイテム、宝など）を守っている敵を配置する。 </para></listitem><listitem override="none"><para>敵にそれらしい動きをつける。 </para></listitem><listitem override="none"><para>主人公が敵とであったときの処理を記述する。 </para></listitem><listitem override="none"><para>ゲームバランスを調整する。 </para></listitem><listitem override="none"><para>他の人に遊んでもらえるように画面を整える。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>敵を配置し、動きをつける</title><para>ゴール（またはアイテム、宝など）を守っているような動きをつけましょう。 </para><para>動かし方は <ulink url="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoysジョイスティックを使ったゲーム/~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#">変数を使った動き</ulink> のページを参考にしてください。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>主人公が敵と当たったときの処理</title><para>これまで主人公の動作は（初期化を除いて） 主人公のスクリプトとして記述してきました。 </para><itemizedlist><listitem override="none"><para>主人公が敵と当たったときの処理は 敵を主体として考えれば、 敵のスクリプトとして記述することもできます。 </para></listitem></itemizedlist><para>今回は<emphasis role="strong">敵のスクリプト内に記述</emphasis>してみましょう。 </para><itemizedlist><listitem override="none"><para><emphasis role="strong">利点</emphasis> 正しく動作している主人公のスクリプトを 修正しなくてすみます。 </para></listitem></itemizedlist><para>主人公に関する命令を敵のスクリプト内に記述することになるので 注意して作成してください。 </para><section><title>例1</title><itemizedlist><listitem override="none"><para>主人公が敵と当たったとき、主人公を特定の位置に移動します。 </para></listitem></itemizedlist><para>敵を主語にして、文を書き直すとこうなります。 </para><itemizedlist><listitem override="none"><para>敵が主人公と当たったとき、主人公を特定の位置に移動します。 </para></listitem></itemizedlist><para>スクリプト </para><itemizedlist><listitem override="none"><para>この内容が敵のスクリプトのテストタイルに記述されています。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%B8%E3%83%A7%E3%82%A4%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B2%E3%83%BC%E3%83%A0?action=AttachFile&amp;do=get&amp;target=game42.png"/></imageobject><textobject><phrase>game42.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>例2</title><itemizedlist><listitem override="none"><para>敵が主人公と当たったとき、主人公を下方向に５０移動します。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%B8%E3%83%A7%E3%82%A4%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B2%E3%83%BC%E3%83%A0?action=AttachFile&amp;do=get&amp;target=game43.png"/></imageobject><textobject><phrase>game43.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>例3</title><itemizedlist><listitem override="none"><para>主人公が敵と当たったとき「アイテムをなくしてしまう」も面白いと思います。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section></section><section><title>ゲームバランスを調整する</title><para>ゲームとして楽しめる程度の難しさにしましょう。 </para><para>つぎのような点を調整するとよい。 </para><itemizedlist><listitem override="none"><para>敵の配置、動き方 </para></listitem><listitem override="none"><para>障害物の配置 </para></listitem><listitem override="none"><para>アイテムの位置 </para></listitem><listitem override="none"><para>主人公の初期位置 </para></listitem><listitem override="none"><para>主人公の移動速度 </para></listitem><listitem override="none"><para>主人公が敵と当たったときの処理 </para></listitem></itemizedlist><para>また、アイテムがどんなもので どんな効果があるのかを考るとよい。 例えば </para><itemizedlist><listitem override="none"><para>速く動けるようになる薬。 </para></listitem><listitem override="none"><para>敵を眠らせてしまう薬。 </para></listitem><listitem override="none"><para>扉のカギ。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>他の人に遊んでもらえるように画面を整える</title><para>スクリプト関係 </para><itemizedlist><listitem override="none"><para>スタートボタンを押すだけで何度でも遊ぶことができるように。 </para></listitem><listitem override="none"><para>ゴールについたら、クリアできたことを示す。 </para></listitem></itemizedlist><para>画面関係 </para><itemizedlist><listitem override="none"><para>障害物など動かないものは、動かせないようにする。 </para></listitem><listitem override="none"><para>スクリプトやビューアなどはたたんでおく。 </para></listitem></itemizedlist></section></section></article>