風薙鳥 ゲーム制作日誌

SFML用素材アーカイブをAndroidに対応

私のSFML製ゲームは、独自のアーカイブ機能で、画像や効果音などの素材をひとまとめにしています。
配布する時にファイル数を減らしてすっきりさせる、簡単には素材を見られない、などの効果があります。

しかし、このアーカイブ機能は、今までAndroidでは使えませんでした。
C++から、素材の入っているassetsフォルダの中身を読み込む方法がわからなかったためです。

SFMLの標準機能はassetsフォルダにアクセスしているので、方法はあるはず、とSFMLのソースコードを読んでいました。
結果、ResourceStreamというクラスが、assetsフォルダのファイルを読み込んでいることがわかりました。
ただ、このクラスは非公開クラスなので、標準ではヘッダファイルが含まれていません。
ソースフォルダのヘッダファイルをincludeフォルダにコピーすることで、使えるようになりました。

ResourceStreamを使い、assetsフォルダに入れたアーカイブファイルから、画像を読み込み・表示を実現しました。

これで、Androidアプリを作る上での懸念のひとつを解消できました。
これを機に、「ばらまきパズル」のAndroid版を作るのもいいかも、と思ったりしてますが、ひとまず未定ということで。