Wio Teriminalでネコ走らせてみた🐈の続きです。
謝辞
@Kyome さんから高解像度の画像があることを教えて頂きました。
教えて頂いた恩は、実装して返さねばいけませんので、高解像度画像を使うように改良してみました。
原作者に高解像度の画像の置き場所を教えて頂いたので利用してみた。省メモリのために2値画像。
— たかよひ (@TKawamorita) August 24, 2020
スプライトを使って高速描画。
なぜか画面下側にノイズが乗るけど...https://t.co/liilhzH8Cp#WioTerminal#LovyanGFX#RunCat pic.twitter.com/6N0dxoeYJr
ソース
こちらからドウゾ。
https://github.com/t-kawamorita/RunCat_for_WioTerminal
ポイント(って程でもないですが)
■ 自動化
ImageMagickやsedを使って、SVG画像をC言語のデータ定義に出力するスクリプトを書いた。
※これが一番時間かかった....
■ メモリ削減
SVG画像をPGMに変換したところ1ピクセルあたり1byteなのでWio Terminalで使用するとメモリ使用量が75%となった。
幾つかの解像度の画像を持つことが出来ないのでPBMに変換する。
それでも1ピクセルあたりのサイズは変わらないので、sedを使って8ピクセル分を正規表現をメモリ削減。
圧縮するかとも思ったが未対応。...
sed -e '1,3d' -e "s/ //g" -e "s/\(........\)/0b\1,/g" -e "s/^/ /" 入力ファイル
■ 描画のチラつき改善
320 x 206ピクセルの画像を1ピクセルずつ描画する体たらくなので描画のチラつきが発生するようになった。
スプライトを動的に作成しつつ、描画することでチラつきは、あまり感じなくなったかな?