海月玲二
2012-04-16(月)

無題

最近店で見かけてはじめて知ったんだが,iPhone用のキーボードって英語キーボードなんだな.そういやMacも英語キーボードが基本だったけど,あれはどっちみち少数派だったから別にどうということもなかったと思う.でも,最近急速に増えたiPhoneユーザーって,いざキーボードを買ってみたら普段使ってるPCと違う,というのは使いにくかったりしないのかな.結局たいした問題ではないんだろうか.あるいはそもそもPCなんか使ってないとか.どっちにしろ,それでなんとかなってるなら,実のところ日本語キーボードってわざわざ作らなくてもよかったんじゃないだろうか.

どうでもいいが最近職場のPCでうっかりdvorakの運指をしそうになるようになった.だいぶdvorakにも慣れてきたようだ.

2012-04-18(水)

無題

Androidにおける,ハードキーのshiftやaltの扱いがよくわからない件,いいかげん真面目に調べてみたところやっと謎がとけた.覚え書きとしてまとめておく.

(1)ハードウェアのshiftやらaltやらは普通に個別のキーコードを持つ普通のキーであり,その入力イベントをどうするかは基本的にはアプリの勝手.
(2)MetaKeyKeyListener#handleKeyDown()とかgetMetaState()とかは,現状のメタキー状態やキーイベントを受けとって,新しい状態やメタキーマスクを計算して返してくれるだけのメソッド.これを使う場合,メタキー状態はIME(やアプリ)側で管理する.
(3)それとは別に,EditTextとか(正確に言うとEditableが)が持っているメタキー状態がある.シフト状態を表す三角印を表示したり,alt+bsで全消しをしたりするのは,この状態にもとづいてEditTextとかが勝手にやっている(!).
(4)(2)と(3)は別に何も関係なく,それぞれ別個に変化できる(!!).
(5)(2)によるメタキー状態の計算は,いわゆるsticky shiftになっていないようだ.しかし(3)によるメタキー状態のほうはstickyになっているようである(!!!).

これは参った.原理的に二系統あるんだったのか.どうもわけがわからないはずだ.つまり,シフト状態の三角印とかをちゃんと機能させるには,内部で管理しているメタキー状態の変化にあわせて,InputConnectionにもキーイベントを送ってやらないといけない.

あと最初いくら(2)の系統で管理しようとしてもうまくいってないように思えたのは,どうも(5)の事実のせいだったようだ.エミュレータにしろIS01にしろ,shiftと同時押しなんかしないから気づかなかった.結局,sticky shiftにしたければ自前で管理するしかないんだろうか.どうもandroidはハードキーをあまり使わせたくない雰囲気が否めないよな.

いつぞやのandroid用wizもどきの続編.職業がちょっと増えたり,武器にレンジの概念ができたりしたほかは,システム的にはおおむね同じ.というわけで,同じように楽しめました.おわり.

wiz系のゲームもそれなりに好きだが,この手のゲームでよく話題になる「全部クリアしたけど延々レベルを上げたりアイテムを集めたりする」というのはあまりやらないな.村正だの聖なる鎧だのもほとんど見たことない.今回は,たまたま手裏剣だけは出たけど.

戦闘も嫌いではないが,どっちかというといろいろ仕掛けのある迷宮を探検すること自体が好きなのだ.今回など,おまけの2フロアが複雑,かつオートマップ魔法禁止エリアが広かったので,方眼紙に手書きで地図を描いてしまった.ちゃんと地図ができて,なんで迷ったのか理由がわかったりするとなかなか楽しい.仮にもスマートフォンのゲームとは思えんが.