前回はキャラクターを表示して最初の挨拶(Hello, World!!)を表示しました.
第二回は,キャラクターにマウスで左クリックしたときの反応をつけたいと思います.
※第一回はこちらです.
1.ダウンロード
今回も必要なファイルを用意しましたのでここからダウンロードしてください.
キャラクターを実行する手順は前回とほとんど同じです.
2.kouza2を実行する
ダウンロードしたファイルkouza2を実行してください.
kouza2フォルダが作成されます.
3.キャラクターを実行する
kouza2フォルダの中に下のようなkouza2アイコンが表示されるので,それを実行します.

上手くできたら,キャララクターの画像を左クリックしてみてください.
下の画像の様に,吹き出しにメッセージが表示されます.

4.キャラクターの動きを見る
キャラクターの動きは前回と同様に,mhello.ayaファイルに書いてあります.
hello.ayaファイルをメモ帳などのテキストエディタで開きます.
今回で新しく加わった部分は以下の部分です.
--
action MouseUpL@( false )
{
Talk( "うにゃ?\n" );
}
--
マウスの左クリックにたいする反応をMouseUpLの{}の間に書くことが出来ます.
今回はメッセージとして"うにゃ?\n"を表示しています.
'\n'は改行を表わします.
5.キャラクターをカスタマイズする(メッセージに変化をつける)
今回のサンプルデータでは,何度クリックしてもおなじメッセージしか表示しません.
これではすぐに飽きてしまいますのでメッセージに変化をつけてみましょう.
まず,キャラクターを終了させてください.
次にhello.ayaを下のように変更します.
--
action MouseUpL@( false )
{
Talk( "うにゃ?\n" );
}
--
↑の部分を↓に変更します.
--
int Random( int x );
action MouseUpL@( false )
{
switch( Random( 3 ) )
{
case 0:
Talk( "うにゃ?\n" );
break;
case 1:
Talk( "にゃーどうかしたか?\n" );
break;
case 2:
Talk( "・・・・・・何?\n" );
break;
}
}
--
変更できたら実行して見ましょう.kouza2アイコン(下)を実行します.

今度は何度かクリックすると下の様にメッセージが変化します.
(メッセージ表示される順番には環境によって変化があります.)

6.キャラクターをカスタマイズする(メッセージを増やす)
メッセージが三つでは物足りないという人は,メッセージをもっと増やしてみましょう.
メッセージを増やすには,下の場所を変更してください.
メッセージの数を3個から4個に増やすなら,ランダム関数の引数を4に変更します.
--
switch( Random( 4 ) )
--
増やしたメッセージの数だけcaseを増やします.
下は4つ目のメッセージを増やす場合です.
4つ目ですが,caseの数字が3になっていることに注意してください.
--
case 3:
Talk( "4つ目のメッセージ\n" );
break;
--
メッセージを増やして4つにした場合のMouseUpLは,下の様になります.
--
action MouseUpL@( false )
{
switch( Random( 4 ) )
{
case 0:
Talk( "うにゃ?\n" );
break;
case 1:
Talk( "にゃーどうかしたか?\n" );
break;
case 2:
Talk( "・・・・・・何?\n" );
break;
case 3:
Talk( "4つ目のメッセージ\n" );
break;
}
}
--
7.新しい命令,関数の説明
初めて出てきた命令や関数を順番に説明していきましょう.まずは
--
int Random( int x );
--
これはランダム関数の1つで,サイコロのような働きをします.
0〜x-1までの整数のどれか1つを返します.
今回はランダム関数を下の様に使っています.この場合0,1,2のどれかを返します.
--
Random( 3 )
--
次はswitchです.
--
switch( Random( 3 ) )
--
switchは,()内の関数や変数の値に応じて行う処理を分岐する命令です.
この場合はランダム関数が0を返したらこの処理を,1を返したらあの処理を,という様にキャラクターの動きに変化をつけられます.
どのような処理を行うかは下の様に定義します.
--
case 0:
Talk( "うにゃ?\n" );
break;
--
"case 0"は,Random(3)が0を返した場合の処理を"case 0"の下に書くことを意味しています.
上の例ではTalk関数で吹き出しにメッセージ"うにゃ?\n"を表示します.
その下のbreak;は,ここで処理を終了することを意味しています.
break;をここに挿入して,その下のcase 1やcase 2の処理を実行させないようにします.
break;を挿入しないとどうなるか,一度実験してswitchの動きを理解するのも良いと思います.
8.まとめ
今回は,左クリックにたいする反応と,その反応に変化をつけてみました.
ランダム関数を用いて変化をつける方法は他の色々な場面で利用できます.
StartUpにもこの仕組みを組み込んで,挨拶に変化を持たせることも出来ます.
一度試してみてはどうでしょうか?