xbasip
パッケージconsole
モジュールscreen(disp_size, page_mode, res=1, disp_on=True)
disp_size
-- 表示画面サイズ
page_size
-- 実画面(ページ)のサイズおよび色数、ページ数
res
-- スキャン
disp_on
-- グラフィック画面の表示ON/OFF
width(columns)
columns
-- 表示桁数
console(start, lines, fkey)
start
-- スクロール開始行(0~31)lines
-- スクロール行数(1~32)fkey
-- ファンクションキー表示
cls(all_clear=False)
all_clear
locate(x, y, cur_on=None)
x
-- X座標y
-- Y座標cur_on
-- カーソル表示スイッチ
pos()
csrlin()
color(pal)
pal
-- 色/属性コード
tpalet(pal=None, color=None)
pal
-- パレット番号
color
-- カラーコード
tpalet2(pal=None, color=None)
pal
-- パレット番号
color
-- カラーコード
inkey(wait=True)
wait
inkeyS(wait=True)
wait
''
を返しますinkey0()
戻り値
-- キャラクタコードkeyinp()
戻り値
keysns()
戻り値
sftsns()
戻り値
bitsns(group)
group
-- キーコードグループ(0x0~0xe)戻り値
グループ | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 |
---|---|---|---|---|---|---|---|---|
0x0 | 6& | 5% | 4$ | 3# | 2" | 1! | ESC | 未定義 |
0x1 | BS | \| | ^~ | -= | 0 | 9) | 8( | 7' |
0x2 | U | Y | T | R | E | W | Q | TAB |
0x3 | S | A | CR | [{ | @` | P | O | I |
0x4 | ;+ | L | K | J | H | G | F | D |
0x5 | N | B | V | C | X | Z | ]} | :* |
0x6 | DEL | HOME | SPACE | _ | /? | .> | ,< | M |
0x7 | CLR | ↓ | → | ↑ | ← | UNDO | R_DN | R_UP |
0x8 | 4 | + | 9 | 8 | 7 | - | * | / |
0x9 | 0 | ENTER | 3 | 2 | 1 | = | 6 | 5 |
0xa | XF3 | XF2 | XF1 | HELP | 登録 | 記号 | . | , |
0xb | ひら | INS | CAPS | コード | ローマ字 | かな | XF5 | XF4 |
0xc | F5 | F4 | F3 | F2 | F1 | COPY | BREAK | 全角 |
0xd | 未定義 | 未定義 | 未定義 | F10 | F9 | F8 | F7 | F6 |
0xe | 未定義 | 未定義 | 未定義 | 未定義 | OPT.2 | OPT.1 | CTRL | SHIFT |
0xf | 未定義 | 未定義 | 未定義 | 未定義 | 未定義 | 未定義 | 未定義 | 未定義 |
keyflush()
key(fn, buf=None)
fn
-- ファンクションキー番号
buf
-- 定義文字列
戻り値
funckey_on()
funckey_off()
cursor_on()
cursor_off()
deffont(code, buf, font_size=1)
code
-- 外字文字コード
buf
-- フォントデータ(bytearrayもしくはbytes)。1バイトあたり8画素font_size
-- フォントサイズ
getfont(code, buf=None, font_size=1)
code
-- 文字コードbuf
-- データの格納先(bytearray)。省略時は内部で確保しますfont_size
-- フォントサイズ
戻り値
-- tupleで (w, h, buf)を返します
beep()
end(msg=None)
msg
-- 終了メッセージ
priority(sp, tx, gr)
sp
-- スプライト/BGの優先度
tx
-- テキスト/マウスカーソルの優先度
gr
-- グラフィックの優先度
crtmod(mode, disp_on=True)
mode
-- CRTモードdisp_on
-- グラフィック画面の表示ON/OFF
CRTモード | 実画面 | 表示画面 | 色数 | 枚数 | KHz |
---|---|---|---|---|---|
0 | 1024×1024 | 512×512 | 16 | 1 | 31 |
1 | 1024×1024 | 512×512 | 16 | 1 | 15 |
2 | 1024×1024 | 256×256 | 16 | 1 | 31 |
3 | 1024×1024 | 256×256 | 16 | 1 | 15 |
4 | 512×512 | 512×512 | 16 | 4 | 31 |
5 | 512×512 | 512×512 | 16 | 4 | 15 |
6 | 512×512 | 256×256 | 16 | 4 | 31 |
7 | 512×512 | 256×256 | 16 | 4 | 15 |
8 | 512×512 | 512×512 | 256 | 2 | 31 |
9 | 512×512 | 512×512 | 256 | 2 | 15 |
10 | 512×512 | 256×256 | 256 | 2 | 31 |
11 | 512×512 | 256×256 | 256 | 2 | 15 |
12 | 512×512 | 512×512 | 65536 | 1 | 31 |
13 | 512×512 | 512×512 | 65536 | 1 | 15 |
14 | 512×512 | 256×256 | 65536 | 1 | 31 |
15 | 512×512 | 256×256 | 65536 | 1 | 15 |
16 | 1024×1024 | 768×512 | 16 | 1 | 31 |
表示画面
実画面
4プレーンのビットマップで構成されていますが、通常のテキスト表示にはプレーン0、1のみを使用し、プレーン2、3はマウスカーソルやソフトキーボードに割り当てられています。そのため、color()では実質4色しか使用できません。
カーソルキーはファンクションキーとしてユーザー定義可能です。そのため、inkey()で読み出される値はユーザーにより異なってしまいます。プログラムの最初にkey()により再定義することで解決します。key()で定義したファンクションキーはend()で終了する際に元の定義に戻ります。下記の例はカーソルキーをテンキー相当に定義します。
key(25, "8") # UP
key(26, "4") # LEFT
key(27, "6") # RIGHT
key(28, "2") # DOWN
キー入力がバッファにたまって扱いにくい場合がありますが、inkey()の前にkeyflush()でバッファをクリアすることができます。
print("何かキーを押してください")
keyflush()
k = inkey()
inkey()系の関数は、キーデータバッファを経由する事やリピート動作によってタイムラグがあるなど、アクションゲームにはあまり向いていません。複数キーの同時判定もできるbitsns()が有効です。
外字フォントを定義することにより、print()を使ってユーザー定義のキャラクタを表示することが可能です。
deffont(0x0ec40, b"\xff"*8+b"\x77"*8+b"\x33"*8+b"\x11"*8)
print(chr(0xec40))
deffont()で定義した外字フォントはend()で終了する際に元の定義に戻ります。