ページへ戻る
印刷
blike/man/p0002
をテンプレートにして作成 ::
OSASK計画
osaskwiki
:blike/man/p0002 をテンプレートにして作成
開始行:
TITLE:x
* 上級者向けのblikeマニュアル(2)
-(by [[K]], 2011.03.08)
-このページはC言語の文法が分からないという人を対象にはし...
-ドライバ開発者向けの情報は[[blike/drv]]にあります。
*** グラフィック描画関数群
-[01f以降] setPix(int x, int y, int c)
--画面に点を打つ。cは色で0x000000~0xffffffが有効。
-[01f以降] drawLine(int x0, int y0, int x1, int y1)
--線を引く。色は事前に color() か setCol() で指定しておく...
--アルゴリズムの関係で、drawLine(x0, y0, x1, y1) と drawL...
---これがいやなら bball00a.c のようにすればいいだろう。
if (x0 <= t[j].x)
drawLine(x0, y0, t[j].x, t[j].y);
else
drawLine(t[j].x, t[j].y, x0, y0);
-[01f以降] drawRect(int sx, int sy, int x0, int y0)
--長方形を描く。sxとsyが大きさで、x0とy0は左上の頂点の座...
-[01f以降] fillRect(int sx, int sy, int x0, int y0)
--塗りつぶした長方形を描く。色は事前に color() か setCol(...
-[01f以降] fillOval(int sx, int sy, int x0, int y0)
--塗りつぶした楕円を描く。引数の意味するところは、この4パ...
-[01f以降] setCol(int c)
--描画色を設定する。0x000000~0xffffffが有効。これは文字...
-[01f以降] setBCol(int b)
--背景色を設定する。0x000000~0xffffffが有効。といっても...
-[01f以降] int iCol(int c)
--cは0~15が有効で、これを0x000000~0xffffffの整数に変換...
-[01f以降] int rgb(int r, int g, int b)
--r, g, b はそれぞれ0~255が有効。これらを0x000000~0xfff...
-[01f以降] drawStr(int x0, int y0, int rx, int ry, const ...
--文字列を描画する。printfとの違いは、描き始めの位置をピ...
--rxやryは倍率で、整数倍のみ指定できる。
-[01f以降] setMode(int flags)
--flagsは以下のものが指定できる。
#define BL_PSET 0x00000004
#define BL_PAND 0x00000005
#define BL_POR 0x00000006
#define BL_PXOR 0x00000007
#define BL_DBGFLSH 0x00000040
#define BL_RLSFLSH 0x00000060
#define BL_DEBUG BL_DBGFLSH
#define BL_RELEASE BL_RLSFLSH
--PSET, PAND, POR, PXOR はどれか一つを指定することができ...
---これらは setPix(), drawLine(), drawRect(), fillRect(),...
--DBGFLSH, RLSFLSH もどれか一つを指定することができる。デ...
---これはフラッシュ忘れを分かりやすくする。リリースモード...
---リリースモードにしたいときは、一番最初に setMode(BL_RE...
---デバッグが終わる前にリリースモードにするべきではない。
-[01f以降] openVWin(int n, int sx, int sy)
--裏画面(仮想画面)を準備する。n=0は表画面のことなので、...
--nは0~15が有効なので、裏画面は最大15枚持てるということ...
--裏画面は、背景やキャラクタなどを描いておいて、重ね合わ...
-[01f以降] slctWin(int n)
--描画関数がどの画面に対して描画を行うかを指定する。 open...
-[01f以降] copyRct0(int sx, int sy, int n0, int x0, int y...
--ウィンドウのある領域の画像を、別のウィンドウの同じ大き...
--n0とn1が同じウィンドウを指していてもよく、その場合は同...
-[01f以降] copyRct1(int sx, int sy, int n0, int x0, int y...
--ウィンドウのある領域の画像を、別のウィンドウの同じ大き...
-[01f以降] drawPtrn(int sx, int sy, int x, int y, char *c...
--ドット絵を描く。sxとsyは絵の大きさ。xとyは絵を描く座標...
drawPtrn(8, 8, 100, 100, "%name=sample ○=#000000 ●=#FFFF...
"●●●●●●●●"
"●○○○○○○●"
"●○●●●●○●"
"●○●○○●○●"
"●○●○○●○●"
"●○●●●●○●"
"●○○○○○○●"
"●●●●●●●●"
);
--この例では全角文字を使ったが、 test021a.c のように半角...
--絵の名前はエラー時にのみ使われるので、エラーが起きない...
--この関数は文字列をちまちまと解釈するのであまり高速では...
--色指定は、 #hhhhhh の形式の代わりに 0xhhhhhh を使うこと...
--ちなみに色 #80000000 は透明色として扱われ、描画されない。
*** そのほかの関数群
-[01f以降] int rnd(int n)
--0からn-1の範囲の乱数を返す。
-[01f以降] srand(int s)
--乱数のパターンを指定する。
*** 基本的なゲームの作り方
-実はゲームに限らず、この構造は頻出する。
準備の処理
for (;;) {
画面に描画など(動かないものは再描画しないようにする...
必要ならflshWinをやる(下でwaitを使うのならこれはや...
終了判定が成立すればbreak
waitかwaitNF
inkey
キー入力によっていろいろやる
キー入力によらない時間経過処理など(敵が動くとか)
}
終了処理
-inkeyの後にも描画やflshWinをする場合がある。
-ポイントは、画面を作り終わったらwaitして、waitの直後にin...
終了行:
TITLE:x
* 上級者向けのblikeマニュアル(2)
-(by [[K]], 2011.03.08)
-このページはC言語の文法が分からないという人を対象にはし...
-ドライバ開発者向けの情報は[[blike/drv]]にあります。
*** グラフィック描画関数群
-[01f以降] setPix(int x, int y, int c)
--画面に点を打つ。cは色で0x000000~0xffffffが有効。
-[01f以降] drawLine(int x0, int y0, int x1, int y1)
--線を引く。色は事前に color() か setCol() で指定しておく...
--アルゴリズムの関係で、drawLine(x0, y0, x1, y1) と drawL...
---これがいやなら bball00a.c のようにすればいいだろう。
if (x0 <= t[j].x)
drawLine(x0, y0, t[j].x, t[j].y);
else
drawLine(t[j].x, t[j].y, x0, y0);
-[01f以降] drawRect(int sx, int sy, int x0, int y0)
--長方形を描く。sxとsyが大きさで、x0とy0は左上の頂点の座...
-[01f以降] fillRect(int sx, int sy, int x0, int y0)
--塗りつぶした長方形を描く。色は事前に color() か setCol(...
-[01f以降] fillOval(int sx, int sy, int x0, int y0)
--塗りつぶした楕円を描く。引数の意味するところは、この4パ...
-[01f以降] setCol(int c)
--描画色を設定する。0x000000~0xffffffが有効。これは文字...
-[01f以降] setBCol(int b)
--背景色を設定する。0x000000~0xffffffが有効。といっても...
-[01f以降] int iCol(int c)
--cは0~15が有効で、これを0x000000~0xffffffの整数に変換...
-[01f以降] int rgb(int r, int g, int b)
--r, g, b はそれぞれ0~255が有効。これらを0x000000~0xfff...
-[01f以降] drawStr(int x0, int y0, int rx, int ry, const ...
--文字列を描画する。printfとの違いは、描き始めの位置をピ...
--rxやryは倍率で、整数倍のみ指定できる。
-[01f以降] setMode(int flags)
--flagsは以下のものが指定できる。
#define BL_PSET 0x00000004
#define BL_PAND 0x00000005
#define BL_POR 0x00000006
#define BL_PXOR 0x00000007
#define BL_DBGFLSH 0x00000040
#define BL_RLSFLSH 0x00000060
#define BL_DEBUG BL_DBGFLSH
#define BL_RELEASE BL_RLSFLSH
--PSET, PAND, POR, PXOR はどれか一つを指定することができ...
---これらは setPix(), drawLine(), drawRect(), fillRect(),...
--DBGFLSH, RLSFLSH もどれか一つを指定することができる。デ...
---これはフラッシュ忘れを分かりやすくする。リリースモード...
---リリースモードにしたいときは、一番最初に setMode(BL_RE...
---デバッグが終わる前にリリースモードにするべきではない。
-[01f以降] openVWin(int n, int sx, int sy)
--裏画面(仮想画面)を準備する。n=0は表画面のことなので、...
--nは0~15が有効なので、裏画面は最大15枚持てるということ...
--裏画面は、背景やキャラクタなどを描いておいて、重ね合わ...
-[01f以降] slctWin(int n)
--描画関数がどの画面に対して描画を行うかを指定する。 open...
-[01f以降] copyRct0(int sx, int sy, int n0, int x0, int y...
--ウィンドウのある領域の画像を、別のウィンドウの同じ大き...
--n0とn1が同じウィンドウを指していてもよく、その場合は同...
-[01f以降] copyRct1(int sx, int sy, int n0, int x0, int y...
--ウィンドウのある領域の画像を、別のウィンドウの同じ大き...
-[01f以降] drawPtrn(int sx, int sy, int x, int y, char *c...
--ドット絵を描く。sxとsyは絵の大きさ。xとyは絵を描く座標...
drawPtrn(8, 8, 100, 100, "%name=sample ○=#000000 ●=#FFFF...
"●●●●●●●●"
"●○○○○○○●"
"●○●●●●○●"
"●○●○○●○●"
"●○●○○●○●"
"●○●●●●○●"
"●○○○○○○●"
"●●●●●●●●"
);
--この例では全角文字を使ったが、 test021a.c のように半角...
--絵の名前はエラー時にのみ使われるので、エラーが起きない...
--この関数は文字列をちまちまと解釈するのであまり高速では...
--色指定は、 #hhhhhh の形式の代わりに 0xhhhhhh を使うこと...
--ちなみに色 #80000000 は透明色として扱われ、描画されない。
*** そのほかの関数群
-[01f以降] int rnd(int n)
--0からn-1の範囲の乱数を返す。
-[01f以降] srand(int s)
--乱数のパターンを指定する。
*** 基本的なゲームの作り方
-実はゲームに限らず、この構造は頻出する。
準備の処理
for (;;) {
画面に描画など(動かないものは再描画しないようにする...
必要ならflshWinをやる(下でwaitを使うのならこれはや...
終了判定が成立すればbreak
waitかwaitNF
inkey
キー入力によっていろいろやる
キー入力によらない時間経過処理など(敵が動くとか)
}
終了処理
-inkeyの後にも描画やflshWinをする場合がある。
-ポイントは、画面を作り終わったらwaitして、waitの直後にin...
ページ名: