ページへ戻る

− Links

 印刷 

blike​/man​/p0002 のバックアップ差分(No.5) :: OSASK計画

osaskwiki:blike/man/p0002 のバックアップ差分(No.5)

« Prev[4]  Next »[5]
4: 2011-03-09 (水) 11:44:03 k-tan[6] ソース[7] 5: 2011-03-10 (木) 13:31:03 k-tan[6] ソース[8]
Line 12: Line 12:
--線を引く。色は事前に color() か setCol() で指定しておくこと。 --線を引く。色は事前に color() か setCol() で指定しておくこと。
--アルゴリズムの関係で、drawLine(x0, y0, x1, y1) と drawLine(x1, y1, x0, y0) が厳密には重ならない場合もある。とはいえ、ズレは1ピクセル程度である。 --アルゴリズムの関係で、drawLine(x0, y0, x1, y1) と drawLine(x1, y1, x0, y0) が厳密には重ならない場合もある。とはいえ、ズレは1ピクセル程度である。
----これがいやなら bball00a のようにすればいいだろう。+---これがいやなら bball00a.c のようにすればいいだろう。
 if (x0 <= t[j].x)  if (x0 <= t[j].x)
     drawLine(x0, y0, t[j].x, t[j].y);      drawLine(x0, y0, t[j].x, t[j].y);
Line 58: Line 58:
---これはフラッシュ忘れを分かりやすくする。リリースモードにするとフラッシュ忘れが分かりにくくなる代わりに(忘れていても結構それなりに画面に反映されてしまうことがある)、メモリが節約され、速度も向上する。 ---これはフラッシュ忘れを分かりやすくする。リリースモードにするとフラッシュ忘れが分かりにくくなる代わりに(忘れていても結構それなりに画面に反映されてしまうことがある)、メモリが節約され、速度も向上する。
---リリースモードにしたいときは、一番最初に setMode(BL_RELEASE); と書くのが良いだろう。 ---リリースモードにしたいときは、一番最初に setMode(BL_RELEASE); と書くのが良いだろう。
 +---デバッグが終わる前にリリースモードにするべきではない。
-[01f以降] openVWin(int n, int sx, int sy) -[01f以降] openVWin(int n, int sx, int sy)
Line 73: Line 74:
-[01f以降] copyRct1(int sx, int sy, int n0, int x0, int y0, int n1, int x1, int y1, int ic) -[01f以降] copyRct1(int sx, int sy, int n0, int x0, int y0, int n1, int x1, int y1, int ic)
--ウィンドウのある領域の画像を、別のウィンドウの同じ大きさの領域にコピーする。その際、 ic で指定した色が透明色として扱われる。 --ウィンドウのある領域の画像を、別のウィンドウの同じ大きさの領域にコピーする。その際、 ic で指定した色が透明色として扱われる。
 +
 +-[01f以降] drawPtrn(int sx, int sy, int x, int y, char *c, char *p)
 +--ドット絵を描く。sxとsyは絵の大きさ。xとyは絵を描く座標。cは配色や絵の名前を指定するための文字列で、pは絵の内容を表す文字列である。以下に例を示す。
 + drawPtrn(8, 8, 100, 100, "%name=sample ○=#000000 ●=#FFFFFF",
 +     "●●●●●●●●"
 +     "●○○○○○○●"
 +     "●○●●●●○●"
 +     "●○●○○●○●"
 +     "●○●○○●○●"
 +     "●○●●●●○●"
 +     "●○○○○○○●"
 +     "●●●●●●●●"
 + );
 +--この例では全角文字を使ったが、 test021a.c のように半角でもよい。
 +--絵の名前はエラー時にのみ使われるので、エラーが起きないのなら指定しなくてもよい。
 +--この関数は文字列をちまちまと解釈するのであまり高速ではない。もし何度も表示するのなら、裏画面に一度これで描いておいて、あとはそこからcopyRct0するのがいいだろう。
 +--色指定は、 #hhhhhh の形式の代わりに 0xhhhhhh を使うこともできる。多分そうしたほうが初心者には教えやすい(getPixして色比較するときに、if文中に #FFFFFF とは書けないから)。
 +--ちなみに色 #80000000 は透明色として扱われ、描画されない。
*** そのほかの関数群 [#g0dd6fe4] *** そのほかの関数群 [#g0dd6fe4]
« Prev[4]  Next »[5]