[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
お勉強モード(4択クイズ)部分のソースを書いています。
クイズデータの中から,ランダムに10問出題して,正解数によって得点を表示できるようにしてみました。
サンプルでは問題と答えのみですが,一行解説がつくようにしていきたいと思っています。また,正解/不正解で,表情が変化する仕様も検討中です。
以下にサンプルソースを載せておきます。つたないプログラムですが,何かの参考に…(参考にならないですね,すみません…)
==========================
AddItem("歴史の勉強をする")
{
int Quiz_Counter =1;
int Tokuten =0;
while( Quiz_Counter < 11 )
{
Talk("\e【第"+ itoa (Quiz_Counter)+"問!】\s\n");
int Quiz = Random(6);
if( Quiz == 0)
{
Talk("江戸幕府を開いたのは誰?");
AddItem("徳川家康")
{Talk("正解だよ");
Tokuten = Tokuten +10;}
AddItem("織田信長")
{Talk("ぶー");}
AddItem("豊臣秀吉")
{Talk("ぶー");}
AddItem("藤原道真")
{Talk("ぶー");}
Choice;
Quiz_Counter = Quiz_Counter +1;
}
else if( Quiz == 1 )
{
Talk("本能寺の変で暗殺されたのは?");
AddItem("徳川家康")
{Talk("ぶー");}
AddItem("織田信長")
{Talk("ピンポーン");
Tokuten = Tokuten +10;}
AddItem("豊臣秀吉")
{Talk("ぶー");}
AddItem("藤原道真")
{Talk("ぶー");}
Choice;
Quiz_Counter = Quiz_Counter +1;
}
else if( Quiz == 2 )
{
Talk("710年に奈良に作られたのは?");
AddItem("平安京")
{Talk("ぶー");}
AddItem("平城京")
{Talk("ピンポーン");
Tokuten = Tokuten +10;}
AddItem("北京")
{Talk("ぶー");}
AddItem("南京")
{Talk("ぶー");}
Choice;
Quiz_Counter = Quiz_Counter +1;
}
else if( Quiz == 3 )
{
Talk("1914年に起こったのは?");
AddItem("日露戦争")
{Talk("ぶー");}
AddItem("第一次世界大戦")
{Talk("ピンポーン");
Tokuten = Tokuten +10;}
AddItem("第二次世界大戦")
{Talk("ぶー");}
AddItem("ベトナム戦争")
{Talk("ぶー");}
Choice;
Quiz_Counter = Quiz_Counter +1;
}
else if( Quiz == 4 )
{
Talk("原爆fatmanが投下された場所は?");
AddItem("広島")
{Talk("ぶー");}
AddItem("長崎")
{Talk("ピンポーン");
Tokuten = Tokuten +10;}
AddItem("東京")
{Talk("ぶー");}
AddItem("大阪")
{Talk("ぶー");}
Choice;
Quiz_Counter = Quiz_Counter +1;
}
else
{
Talk("刀狩を行ったのは誰?");
AddItem("徳川家康")
{Talk("ぶー");}
AddItem("織田信長")
{Talk("ぶー");}
AddItem("豊臣秀吉")
{Talk("ピンポーン");
Tokuten = Tokuten +10;}
AddItem("藤原道真")
{Talk("ぶー");}
Choice;
Quiz_Counter = Quiz_Counter +1;
}
}
Talk("\eクイズ終了\s\n");
Talk("あなたの得点は"+ itoa (Tokuten) + "点でした。\n\s次回も頑張ってね");
}
サンプルキャラクター「未樹」を使って,初回起動時の動作スクリプトを書いてみました。
あえてユーザーのインフォメーションダイアログを使わずに,ユーザー情報を登録できるように書いてみました。性別と年齢層の設定をすることで,違ったアクションを起こすようにしています。もっとフラグを増やせば,さまざまな反応が楽しめるようになると思います。
やっと綾織ソースの書き方に慣れてきて,コンパイル時にエラーコードが出ることが少なくなってきました。
以下に今回書いたソースを掲載しておきます。
==============================
action StartUp@(false)
{
LoadBitmap("normal.hp3");
DisplayImage(2);
Talk( "あ,\sはじめまして!\s\nあたしは,あなたの話し相手になるために作られたデスクトップ用マスコット\s「未樹」と申します。これからよろしくお願いましますね。\c");
int Flag1 = 0;
Talk( "\eまずはじめにお名前を教えてくださいね。" );
string F_Name ="名無しの";
PutProperty("F_Name",F_Name);
string L_Name ="権兵衛";
PutProperty("L_Name",L_Name);
while(Flag1 == 0)
{
Talk( "\n■名字" );
F_Name = EditBox( 0, 16, "");
PutProperty("F_Name",F_Name);
Talk( GetProperty("F_Name"));
Talk( "\n■下のお名前" );
L_Name = EditBox( 0, 16, "");
PutProperty("L_Name",L_Name);
Talk( GetProperty("L_Name"));
Talk( "\w\e" +GetProperty("F_Name") + GetProperty("L_Name") +"さんですね。" );
AddItem("そうです")
{Flag1 = 1;}
AddItem("ちがいます")
{Talk( "\eもう一度名前を入力してくださいね。" );}
Choice;
}
int Flag2 = 0;
string Sexflag;
Talk( "\e性別はどっちですか?" );
while(Flag2 == 0)
{
AddItem("男性")
{Sexflag = "男";
PutProperty("Sexflag",Sexflag);
}
AddItem("女性")
{Sexflag = "女";
PutProperty("Sexflag",Sexflag);
}
Choice;
Talk(GetProperty("Sexflag") + "の方ですね?");
AddItem("そうだよ")
{Flag2 = 1;}
AddItem("いいえ…")
{Talk( "\eもう一度性別を教えてくださいね。" );}
Choice;
}
int Flag3 = 0;
string Yearsold;
Talk( "\e年令はおいくつぐらい何ですか?" );
while(Flag3 == 0)
{
AddItem("15才未満")
{Yearsold = "16才未満";
PutProperty("Yearsold",Yearsold);
if(Sexflag == "男")
{Talk("\eあたしにも弟ができたみたいで嬉しいな。ホントのお姉ちゃんみたいに甘えてくださいね。");}
else
{Talk("\eあたしにも妹ができたみたいで嬉しいな。お姉ちゃんって呼んでもいいですよ。");}
}
AddItem("16~18才")
{Yearsold = "16~18才";
PutProperty("Yearsold",Yearsold);
if(Sexflag == "男")
{Talk("\e同世代なんですね!\s\nお友達として仲良くしていきましょうね。");}
else
{Talk("\eあたしって,同世代の女の子の友達,少ないんですよ。\s\n仲良くしてくださいね!");}
}
AddItem("19~34才")
{Yearsold = "19~34才";
PutProperty("Yearsold",Yearsold);
if(Sexflag == "男")
{Talk("\eなんか,あたしにお兄ちゃんができたみたいで,ちょっとドキドキです。ずっとお兄ちゃんが欲しかったんですよ。恥ずかしいような,嬉しいような…");}
else
{Talk("\eなんか,あたしにお姉ちゃんができたみたいで,ちょっとドキドキです。ずっとお姉ちゃんが欲しかったんですよ。恥ずかしいような,嬉しいような…");}
}
AddItem("35才以上")
{Yearsold = "30才以上";
PutProperty("Yearsold",Yearsold);
Talk("\eあたし,大人の人と話しをするのが好きなんですよ。自分の知らないことをいっぱい教えてくれるし,冷静に物を判断してくれるし…。あたしにはお父さんもお母さんもいないから,親子みたいに仲良くして欲しいです。ってちょっとずうずうしいかな…");
}
Choice;
Flag3 = 1;
}
Talk("\c\e何て呼んだらいいですか?" );
int Flag4 = 0;
string User_Called;
while(Flag4 == 0)
{
if(Sexflag == "男")
{
AddItem(GetProperty("L_Name") +"さん")
{PutProperty("User_Called",GetProperty("L_Name") +"さん");}
AddItem(GetProperty("L_Name") +"くん")
{PutProperty("User_Called",GetProperty("L_Name") +"くん");}
AddItem("お兄ちゃん")
{PutProperty("User_Called","お兄ちゃん");}
AddItem("ご主人様")
{PutProperty("User_Called","ご主人様");}
AddItem("その他")
{User_Called = EditBox( 0, 16, "");
PutProperty("User_Called",User_Called);}
Choice;
}
else
{
AddItem(GetProperty("L_Name") +"さん")
{PutProperty("User_Called",GetProperty("L_Name") +"さん");}
AddItem(GetProperty("L_Name") +"ちゃん")
{PutProperty("User_Called",GetProperty("L_Name") +"ちゃん");}
AddItem("お姉ちゃん")
{PutProperty("User_Called","お姉ちゃん");}
AddItem("その他")
{User_Called = EditBox( 0, 16, "");
PutProperty("User_Called",User_Called);}
Choice;
}
Talk(GetProperty("User_Called") + "って呼びますね?");
AddItem("いいよ")
{Flag4 = 1;}
AddItem("うーん,やっぱり…")
{Talk( "\eえ,じゃあ,何て呼んだらいいですか?" );}
Choice;
}
Talk("\e\wこれから,よろしくね," +GetProperty("User_Called")+ "!");
}
04 | 2024/05 | 06 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
■本業の業務が多忙につき,たびたび沈黙することがありますが,ちょっとずつ更新していきますので,姫佳を可愛がってやってくださいませ。
■よろしくお願いいたします。