この件については以前から少しずつ書いてたりメモしてましたが、
どうにも漠然としすぎて前に進まないので、メモとして残しておきます。
自分用のメモなので、わかりにくいところがあります。注意。
◆ キー数の集約に関する一般化
似たキーをまとめて集中管理してしまう方法。
現在は15keyをベースに、5, 7, 7i, 9, 11, 13keyを管理しています。
上記の方法では
「7key-4key-4key」という構成を取っているため、
「7key-7key」の組み合わせである14ikeyには対応できません。
今のソースで集中管理化を進めるなら、
グルーピングされている中での最大キーは「8key」なので、
「8key-8key-8key-8key」というように
8keyを1つのグループとしてしまい、これを拡張してしまうのがいい気がします。
数字もきれいになりますしね。
※例えば11keyなら、7keyと4keyのグループ。
9keyなら、5keyと4keyのグループに分けます。
(本当は7keyを4key-3keyに分ける方法もあります。
きちんとやるならこっちの方がベターかも)
ここでいう8keyは、7key+Enterの形を指します。
8keyの1グループでは、
4key, 5key, 7key, 7ikey(+ Scratch)
が使えるとすると、
11ikey = [5key+giko]-[4key+iyo]
11jkey = [5key+Scratch]-[4key+Scratch]
12key = [7key+Scratch]-[4key]
14ikey = [7ikey]-[7key]
16ikey = [7ikey]-[5key]-[4key]
17key = [5key]-[4key]-[5key]-[4key]
とすれば統一が図れそうだと。
代替キー考慮も、とりあえず1グループ8枠あれば足りそうな。
不安ならわかりやすく1グループ10key分でもいいですけどね。
それぞれのグループごとに
スクロール位置、代替キー、オートの有無が設定できれば
十分かなという気がします。
グループ化することで、オートの設定が煩雑になるのをまず抑えます。
ステップゾーンの種類は矢印とAAのざっくり2種類。
矢印とAAで挙動を変えたいなら、
あらかじめどこが矢印、どこがAAになるかを決めておいて
AA側にフラグを立てておけば、
例えばAAは表示倍率を横80%にするといったこともまとめてできるかと。
例) グループA = [矢印, 矢印, AA, 矢印, 矢印, AA]
⇒ if(グループA[番号] == “AA”) 表示倍率 = 80%;
ステップゾーンの位置については、
一番左の矢印の位置とグループ全体の幅がどれくらいかを把握しておけば
自動でステップゾーン位置も決められそうです。
AAの場合は余裕を持たせる必要がありそうですが。
キーの設定は、基本的にこれらのグループの組み合わせになります。
11keyみたいなのがいるので、グループごとのスクロール方向は
キー別に設定することになります。
例) 11key定義 = [グループ1(7key), グループ2(4key)]
11keyスクロール = [グループ1(Reverse), グループ2(Default)]
とりあえず一旦ここまで。次はもう少し具体的に書けたらなと。
最近のコメント