解いた問題

2/12/2012

k7script.elでもぞもぞ動かす

killer7というゲームソフトがあります。過去にプレイした中でもかなり気に入ってる部類です。
難解なストーリーと変にお洒落な雰囲気が何ともいえません。
このゲームはセリフが英語なので画面下に字幕が出るんですが、少し変わっています。
1. 文字の位置が微妙に動く。
2. 背景に陰影ができる。
3. 特定の文字の形が変化する。
といった謎の挙動。

少しだけ真似てみましょう。emacsで。


できた!駄作!
動作確認はなおざり。使い勝手もいまいち。
カレントバッファの内容をもぞもぞします。



参考にしたモノ
Emacsでドットエディターを作ってみた

上記の記事のdoteditor.elの関数を拝借して、
一定時間おきに画像を表現した16進数を毎回書き換えます。
パフォーマンスがアレ。

30日でできる! OS自作入門という本が手元にあったので
その中で使われてるフォントを改変して作ったデモ。







フォントの内容まで上げるのはアレかと思ったので、ザックリと使い方
コード中の font と adj にそれらしい値を読み込めば、動作します。
font は文字列のリストのリストです。文字列は、描画可能なhexを表しています。
文字コード?A番目には文字Aを描画するためのhexリストです。
例えば、(setq font (list (list hex-for-A0 hex-for-A1 hex-for-A2)
                                  (listhex-for-B0 hex-for-B1 hex-for-B2)))

adj はn番目のhexの次に描画すべきインデックス。
 例えば、(setq adj '((1 7 8)
                                  略
                             (0 2 7 8 9)))
これだと、0番目の次に1番目か7番目か8番目のどれか。デモだとその中からランダムに動きます。


コード


意外と見ていて楽しい。
でも、 run-with-idle-timer とかで入力が無い時に動かすような使い方しか思いつかない。

0 件のコメント :

コメントを投稿