2019年01月19日

「子供の科学」Raspbian 用の LÖVE (Love2D) 改良

 前回の続き。「子供の科学」バージョンの Raspbian(ジブン専用パソコン2)に LÖVE (Love2D) を入れてはみたが、キー入力に不具合があった。1回押したキーが、2度ずつ認識されてしまう。

20190119-1.png

 これは SDL2 に原因があって、既知の問題らしい。いくつか関連しそうな記事が見つかった。

 SDL2 の changeset で取り上げられている、ということは、もう修正されているのか? Raspbian の SDL2 は 2.0.5 なので、SDL2.0.8 をダウンロードしてビルドしてみた。けど、症状は治らない。

 きっとインプットメソッド絡みだろう、と当たりをつけて、調べてみる。「子供の科学」Raspbian では、日本語入力メソッドとして fcitx-mozc を使っている。SDL2.0.8 の configure ログを見てみると、fcitx が有効になってない。

$ ../configure
...
Using libudev       : YES
Using dbus          : YES
Using ime           : YES
Using ibus          : YES
Using fcitx         : NO    #  これだ!

 もう少し configure ログを詳しく見てみると、fcitx/frontend.h が見つからないのが原因らしい。

$ ../configure
...
checking for pkg-config... (cached) /usr/bin/pkg-config
checking fcitx/frontend.h usability... no
...

 これはアレだな、dev 系パッケージが入ってないやつだな。というわけで、fcitx-libs-dev パッケージをインストールする。

$ sudo apt-get install fcitx-libs-dev
...
$ ../configure
...
checking for pkg-config... (cached) /usr/bin/pkg-config
checking fcitx/frontend.h usability... yes
checking fcitx/frontend.h presence... yes
checking for fcitx/frontend.h... yes
...
Using libudev       : YES
Using dbus          : YES
Using ime           : YES
Using ibus          : YES
Using fcitx         : YES    #  よっしゃ。

 この SDL-2.0.8 と love-11.2 をまとめて、/usr/local/games/love 以下に置く。実行するには、下のスクリプトを /usr/bin/love として置いておく。

#!/bin/sh
export LD_LIBRARY_PATH=/usr/local/games/love/lib
/usr/local/games/love/bin/love "$@"

 アプリケーションやドキュメントアイコンを認識させるのにちょっと手こずったが、なんとかインストーラを作成できた。下に置いておきます。使い方は前回と同じ。

[love2dx-install.tgz (18.1 MB)] (2019/1/19 バージョン)

Posted at 2019年01月19日 17:27:56
email.png