aclライブラリ(2021年版)

(0) はじめに

kcube.c : 112行 (ライブラリのsampleより)    invader.c : 162行 (ライブラリのsampleより)
http://k.osask.jp/files/pic20200831a.jpghttp://k.osask.jp/files/pic20200901a.jpg

(1) ダウンロード&インストール

[1-1]Windows版(32bit, 64bit両対応)

[1-2]SDL2.0版(Windowsでもこれでできますが、[1-1]のバージョンを使うほうが動作が軽くて快適です)

(2) その他のaclライブラリ利用例

(3) 主な提供関数

w = aOpenWin(xsiz, ysiz, title, mod)差異吸収00b~グラフィックウィンドウをオープンします。
w = aOpenWinEx(xsiz, ysiz, title, mod)差異吸収01a~拡張グラフィックウィンドウをオープンします。なおデフォルトでは、xsizやysizは拡張キャラクタの個数で指定するので、ピクセル数を16で割った数になります。
aFlushAll(w)差異吸収00b~グラフィックバッファの内容を実画面に反映させます。
aLeapFlushAll(w, msec)差異吸収00b~前回のflushからmsec以上の時間がたっていればflushします。もし時間がたっていなければ何もしません。
aWait(msec)差異吸収00b~指定された時間の間sleepします。
i = aInkey(w, mod)差異吸収00b~キー入力を検出します。
aSetPix(w, x, y, c)描画関数00b~グラフィックバッファに点を描画します
c = aRgb8(r, g, b)便利関数00b~RGB値(0~255)から、24bitカラーコードを生成します。
c = aGetPix(w, x, y)描画関数00b~ウィンドウ上の画素の色を取得します。
aFillRect(w, xsiz, ysiz, x0, y0, c)描画関数00b~グラフィックバッファに塗りつぶされた四角形を描画します。
aDrawRect(w, xsiz, ysiz, x0, y0, c)描画関数00b~グラフィックバッファに塗りつぶされていない四角形を描画します。
aDrawLine(w, x0, y0, x1, y1, c)描画関数00b~グラフィックバッファに直線を描画します。
aFillOval(w, xsiz, ysiz, x0, y0, c)描画関数00b~グラフィックバッファに塗りつぶされた楕円形を描画します。
aDrawFillOval(w, xsiz, ysiz, x0, y0, c)描画関数00b~グラフィックバッファに塗りつぶさていない楕円形を描画します。
aDrawStr(w, x, y, b, c, s)描画関数00b~文字列を描画します。
aFill(w, x, y, c)描画関数01a~指定された座標から同色で接続された領域を塗りつぶします。
aDrawOvalCent(w, x, y, a, b, c)描画関数01a~中心座標と半径を指定するaDrawOval()です。
aFillOvalCent(w, x, y, a, b, c)描画関数01a~中心座標と半径を指定するaFillOval()です。
aClrKeybuf(w)便利関数00b~キーバッファをクリアします。
i = aInkeyWait(w, mod)便利関数00b~何かキーが入力されるまでaWait()します。
fullCol = aGetPal(w, c)便利関数01a~[WinExのみ]カラーパレット番号から24bitカラーコードに変換します。
aEch(w, x, y, ch, c, b)描画関数01a~指定された座標に拡張キャラクタを描画します。
aCls(w, c)描画関数01a~ウィンドウの描画範囲全体をクリアします。
ch = aGetEch(w, x, y)描画関数01a~[WinExのみ]画面上の拡張キャラクタのキャラクタコードを取得します。
c = aGetEchCol(w, x, y)描画関数01a~[WinExのみ]画面上の拡張キャラクタの描画色を取得します。
b = aGetEchBak(w, x, y)描画関数01a~[WinExのみ]画面上の拡張キャラクタの背景色を取得します。
aEchBox(w, xsiz, ysiz, x, y, ch, c, b)描画関数01a~拡張キャラクタで矩形を描きます。
ch = aGetEchBox(w, xsiz, ysiz, x, y)描画関数01a~[WinExのみ]矩形範囲でaGetEch()します。すべて同じ値であればその値を返します。一つでも違う値があれば-1を返します。
c = aGetEchBoxCol(w, xsiz, ysiz, x, y)描画関数01a~[WinExのみ]矩形範囲でaGetEchCol()します。それ以外はaGetEchBox()と同じです。
b = aGetEchBoxBak(w, xsiz, ysiz, x, y)描画関数01a~[WinExのみ]矩形範囲でaGetEchBak()します。それ以外はaGetEchBox()と同じです。
aScroll(w, xsiz, ysiz, x, y, dx, dy, mod, ch, c, b)描画関数01a~矩形範囲を画面上で移動させます。
aGrPrintf(w, x, y, c, b, s,...)描画関数01a~グラフィックウィンドウに対するprintf()です。
aEchSav(w, x, y, ch, c, b)描画関数01a~[WinExのみ]描画前に描画範囲の内容を内部で保存するaEch()です。保存した内容は下記のaEchRst()で自動復元されます。
aEchRst(w)便利関数01a~[WinExのみ]aEchSav()で保存した内容を復元します。もし何も保存していなければ何もしません。
aWaitKey(w, keycode)便利関数01a~指定されたキーが入力されるまでaWait()します。
i = aInkey_waitRC(w, msec)便利関数01a~[WinExのみ]aClrKeybuf()して、aWait()して、aInkey()して、aEchRst()します。
i = aInkey_waitR(w, msec)便利関数01a~[WinExのみ]aWait()して、aInkey()して、aEchRst()します。
dx = aMoveDx(keycode)便利関数01a~もしkeycodeがカーソルの左右であれば-1か+1を返します。それ以外は0を返します。
dy = aMoveDy(keycode)便利関数01a~もしkeycodeがカーソルの上下であれば-1か+1を返します。それ以外は0を返します。
a = aSaturateInt(a, i0, i1)便利関数01a~もしaがi0より小さければi0を返します。i1より大きければi1を返します。i0~i1の値ならそのままaを返します。
aErrExit(s, ...)便利関数00b~エラーメッセージをvprintfで表示してexit(1)します。
q = aErrExitP0(p, s, ...)便利関数00b~もしp==0であれば、aErrExit()します。p!=0であれば、そのままpの値を返します。
p = aMalloc(siz)便利関数00b~比較的高速なmallocです。
aFree(p, siz)便利関数00b~比較的高速なfreeです。ただしaMallocしたときのサイズを指定する必要があります。
r = aXorShift32()便利関数01a~乱数を返します。
r = aRnd(n)便利関数01a~0~(n-1)の乱数を返します。
aArySetInt(a, i0, i1, v)便利関数01a~AInt a[]な配列に対して、a[i0~(i1-1)]=v;にします。
aAryMovInt(a, i1, i0, n)便利関数01a~a[i0]からn個の要素を、a[i1]以降に移動させます。
i = aMaxInt(i0, i1)便利関数01a~i0とi1のうち、大きいほうの値を返します。
i = aMinInt(i0, i1)便利関数01a~i0とi1のうち、小さいほうの値を返します。
ARep(n)便利マクロ01a~{ }の範囲をn回繰り返します。実体はfor文なので、break;やcontinue;もできます。
ARep0(n, i)便利マクロ01a~ループカウンタを指定できるARep()です。入れ子も可能です。
i = aArgMaxRndInt(a, i0, i1)便利関数01a~a[i0~(i1-1)]の中で最大値となるiを返す。もし最大となるiが複数あるときは、その中からランダムで選ぶ。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS