Tsuikyo をもうちょっと使うガイド

ワードを管理する

今までは Tsuikyo にひとつだけワードを登録していましたが,複数ワードを登録することもできます.

var members = ["みるふぃーゆ", "みんと", "ヴぁにら", "ふぉるて", "らんふぁ"];
for(var i = 0; i < members.length; i++){
	ts.add(members[i]);
}

この場合,add() した結果の TsuikyoWord をそれぞれ配列に入れて自分で管理するとかしてもいいんです*1が,後からワードを add した順に 0 オリジンでついている ID を指定して TsuikyoWord を改めて取得することもできます.

var mint = ts.setTarget(1);
alert(mint.getKeyString());	// => "minto"
alert(mint.id);			// => 1

mint.id のように TsuikyoWord から ID を逆に知ることもできます.

また setTarget() すると Tsuikyo インスタンスを直接 TsuikyoWord のように扱うことができるようにもなったりします.

ts.setTarget(4);
alert(ts.getHiraganaString());	// => "らんふぁ"

これはなんかまあオブジェクト指向とかよくわからんという人向けの救済措置というか以前のバージョンの名残というか,微妙な機能です.わかる人はかっこよく TsuikyoWord インスタンスへの参照を操れば特に困らないと思います.

わかる人はわかるように,付属のワード管理機能は今のところおまけ程度のもので貧弱なので,たくさんワードを突っ込んでおいてデータベース的に使うというよりは,今画面に出ていてすぐにでも打てるワード数個だけを Tsuikyo に add() して,それが終わったら一旦 clear() するだとか,1 セット 15 ワードと決まっているならその 15 ワードを始めにまとめて add() してセットが終われば結果表示後に clear() するとか,その程度の使い方を意図しています.

より高度なワード管理がしたい場合は,実現したいゲームに合う形でワードを持ってきて,適宜 Tsuikyo に add() して利用するようなラッパーを書くといいと思います*2

判定柔軟度を変更する

デフォルトでは一旦特定の変換定義でひらがなを打ち始めてしまっても,他の入力方法で受理しなおすことができる超柔軟判定モード (cancelable) になってます.

これはこれで偉大なんですが,タイパー文化圏においてさえまだ一般的じゃない上にミスタイプ判定のタイミングが難しいとか問題点もあるので,__TOD とか e-typing 的な,柔軟に入力を受け付けるけどいったんある入力方法で入力を初めてしまったら後戻りはできませんよという普通の柔軟入力モード (flex) 等に変更することもできます.

Tsuikyo インスタンスを作る際に

ts = new Tsuikyo("roma", "flex");

とするか,Tsuikyo インスタンスに任意のタイミングで

ts.setDefaultFlex("flex");

とするなどすれば,次から add() するワードはその判定モード(ここでは Flex モード)になります.

他にも TsuikyoWord レベルで,

ts.add("ほげ", "", "roma", "flex");

のように add() 時に指定するとか,

word.setFlex("flex");

のように既に作ってある TsuikyoWord に対して設定を変更することなどもできます,が,そんな気持ち悪いことは普通はしないでしょうから new するときにコンストラクタ引数でやってしまうのがスマートです.

仮に打鍵してみる

実際に打鍵として処理はしないけど,ある打鍵をあるワードに送ったらどういう結果になるのかが知りたい場合,

word.strokeTest("h");

と strokeTest() 使えばできます.こう書くと何に使うんだって感じですが,画面にたくさんワードが表示されるタイプのゲーム (moguratic とかね) の判定をやるのに便利です.

*1: というかそういうことが自然にできる人ならぜひそうすべきです.
*2: 一応 add() には若干コストがあるので可能なら事前に add() しておいたほうがいいと思う.