Skip to content

fygar256/supertext

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Supertext.py console module for linux terminal in python3

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'を出力すると、改行し、 カーソル位置だけが変わります。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages