supertext.pyは、昔の40x25ディスプレイのパソコンのキャラクタゲームを移植するためのコンソール用モジュールです。スクリーンに8*8ドットのオリジナルキャラクタを表示できます。
cursesでは、当時のグラフィックキャラクタを再現できないため、キャラクタエディタと共に作りました。
supertextは、カレントディレクトリからchars.txtというキャラクタパターンデータを読み込みます。chars.txtのある場所は、プログラム内の、path_to_charsという変数を変えることによって変更することができます。最初は、/home/gar/lib/chars.txtになっていますが、使用者個人の環境に合せ、任意のパスに変更してください。 $ ./supertext.pyで、画面上に使えるキャラクタコードテーブルを表示します。キャラクタは0x00~0xffまでの256種類あり、charactereditor.pyで編集できます。
メソッド:
setscreen(title) Supertextと画面を初期化します。このとき、
キャラクタパターンをファイルから読み込みます。
refresh() 画面をリフレッシュします。
リフレッシュするまで画面に変更を行っても表示されません。
quitsupertext() supertextから抜けます
locate(x,y) カーソル位置を(x,y)にセットする
color((r,g,b)) 文字の色をセットする
bgcolor((r,g,b)) 背景色をセットする
putstr(str) 文字列strを出力する。
putchar(char) キャラクタcharを出力する。
scrollup(x,y,w,h) スクリーン(x,y)の幅w,高さhのウィンドウをスクロールアップする
scrolldown(x,y,w,h) スクリーン(x,y)の幅w高さhのウィンドウをスクロールダウンする
getkey(k) キー入力を取得する。普通のgetkeyと違うところは、
これはある特定のキーが押されているかどうかを返す関数であること
です。返り値は1か0で、キーkが押下されていれば1を返す。
例えば、while(getkey('q')):で、'q'が押されるまでループします。
getkeys() キーボードの状態を取得する。返り値は、{ 'k':1,'e':0,'y':0 }
のような辞書で、上の例は、キーボードの'k'が押下されている状態を
示す。'e','y'のキーと他のキーは押下されていない。
clearscreen() スクリーンと仮想VRAMを消去する
peek(x,y) 仮想VRAMの位置(x,y)におけるキャラクタコードを返す
poke(x,y,c) 仮想VRAMの位置(x,y)にコードcを書き込み、画面上の位置(x,y)に
文字cを出力する。
sleep(t) tの間スリープする。tは0~3位の適当な値。(float)
sleepは、スリープしている間もキー入力を受け付け、
キーイベントの取零しやキーリピートによる不具合の発生を抑えます。
仮想VRAMは画面をクリアするとchr(0)で埋め尽くされ、文字を出力すると(x,y)の位置の仮想VRAMの値がその文字になります。但し、' '(Space)を出力すると、その位置の仮想VRAMの値がchr(0)になります。あと、特殊なコードは改行で、'\n'を出力すると、改行し、 カーソル位置だけが変わります。