サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2011-03-08 (火) 09:50:59 k-tan ソース
Line 1: Line 1:
 +TITLE:x 
 +* 上級者向けのblikeマニュアル(1) [#cd17d333] 
 +-(by [[K]], 2011.03.08) 
 +-C言語の文法が分からないという人を対象にはしていません。そういう人は[[blike/intro]]へ。 
 +*** キャラクタ系関数群 [#j298223e] 
 +-[01f以降] printf(const char *s, ...) 
 +--いわゆるprintf。しかしフォーマット記述子はなんでも全部使えるというわけではない。どのくらいのさじ加減にするかは検討中。 
 +--表示される文字は8x16ピクセルの固定ピッチフォントで、それ以外の文字が使いたいときは他の方法での表示を推奨する(グラフィック描画など)。 
 +-[01f以降] puts(const char *s) 
 +--文字列の表示。標準関数のputs()と同様に、出力後に改行が付加される。 
 +-[01f以降] bl_puts(const char *s) 
 +--文字列の表示。標準関数のputs()とは異なり、改行の付加はない(そういう意味でfputs()ふう)。 
 +-[01f以降] putc(int c) 
 +--文字の表示。 
 +-[01f以降] locate(int x, int y) 
 +--次回のprintfでの表示位置を指定。左上は(0,0)である。右下の座標はウィンドウサイズによる。デフォルトでは640x400なので、(79,24)が右下になる。 
 +-[01f以降] color(int c, int b) 
 +--テキスト表示のカラーを指定。cは文字色。bは背景色。それぞれ0~15が有効。-1などの無効な数値を指定すれば無視されるので、color(7, -1);などとすれば文字色だけの変更も可能。何番がどの色なのかは、以下を参照のこと。1~7が高輝度で、8~15が低輝度である。 
 + static int t[] = { 
 +     0x000000, 0x0000ff, 0x00ff00, 0x00ffff, 0xff0000, 0xff00ff, 0xffff00, 0xffffff, 
 +     0x5f5f5f, 0x0000af, 0x00af00, 0x00afaf, 0xaf0000, 0xaf00af, 0xafaf00, 0xafafaf 
 + }; 
 +*** キー・マウス入力関数群 [#m653c905] 
 +-[01f以降] int inkey() 
 +--blikeではキー入力はすべてキーバッファに貯められるが、そのキーバッファから1つ取り出す。もしキーバッファが空であれば0を返す。したがってこの関数を呼んでも処理はとまらない(それがgetc()とは違う)。 
 +--キーコード比較用に以下のマクロが#defineされている。 
 + #define KEY_ENTER  '\n' 
 + #define KEY_ESC    27 
 + #define KEY_BACKSPACE 8 
 + #define KEY_TAB    9 
 + #define KEY_LEFT    331 
 + #define KEY_RIGHT  333 
 + #define KEY_UP      328 
 + #define KEY_DOWN    336 
 + #define KEY_INS    338 
 + #define KEY_DEL    339 
 +--(これらの(変則的な)値は、blikeの旧バージョンとの互換性のため。旧バージョンではwin32の仕様に振り回されて適当に決めた。) 
 +-[01f以降] gets(char *s) 
 +--一行入力。これはカーソルが出て、入力を促す。 
 +-[01f以降] int bl_inkey(int flags) 
 +--これはもっと小回りのきくinkeyである。flagsには以下のものを指定できる(組み合わせたいときは | でつなぐ)。 
 + #define BL_WAITKEYF    0x00000001 
 + #define BL_WAITKEYNF    0x00000002 
 + #define BL_WAITKEY      0x00000003 
 + #define BL_GETKEY      0x00000004 
 + #define BL_CLEARREP    0x00000008 
 + #define BL_DELFFF      0x00000010 
 +--まず、何も指定しない場合、すなわち bl_inkey(0) を説明しよう。この場合、キーバッファの先頭の値を得ることができるが、この値はバッファから削除されない。つまりキーバッファをいじらずに、入力が来ているかどうかを確認できる。 
 +--BL_GETKEY を指定すれば、 inkey() と同じく取得した値をバッファから取り除く。 
 +--BL_WAITKEY を指定すれば、キーバッファが空の間は wait() するようになる。つまりキーが入力されるまで待つ。 
 +--BL_WAITKEYNF を指定すれば、キーバッファが空の間は waitNF() するようになる。つまりキーが入力されるまで待つ。 
 +--BL_WAITKEYF を指定すれば、inkey() 処理に先立って画面全域の flshWin() を行う。 
 +---ちなみに、フラグを見れば自明だが、 BL_WAITKEY = BL_WAITKEYF | BL_WAITKEYNF である。 
 +--BL_CLEARREP を指定すれば、過剰なキーリピートを削除する。ゲームなどではこれをやったほうがいいことが多い。逆にgetsみたいなものを自作したいときは、これをやらないほうがいい。 
 +--BL_BL_DELFFF を指定すれば、blikeが内部制御用に挿入している 0xfff のキーコードを返さないようになる。 
 +--inkey() に相当するのは、 bl_inkey(BL_GETKEY | BL_CLEARREP | BL_DELFFF) である。

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。