DS版OsoScriptを作った
あれもこれもと一通りの機能を付けていたら、こんな時間になってしまいました。でも低機能です。ColdFireに持って行くためのテスト版というところでしょうか。今までブログに書いてきた機能は実装されています。
とりあえず、NDS版用に新規実装した命令を説明します。
printコマンド print( 表示画面, X, Y, テキスト, 文字色 );
printは、任意の画面に文字を表示します。ただし、日本語はS-JISです。
rgbコマンド rgb( 赤, 緑, 青 );
rgbは、色を指定します。NDSは0〜31の階調の表示色となります。
lineコマンド line( 描画画面, X0,Y0, X1,Y1, 色 );
lineは、(X0,Y0)-(X1,Y1)の座標に指定色で線を引きます。
clsコマンド cls( 描画画面, 色 );
clsは、指定色に画面を塗りつぶします。
randコマンド rand( 数値 );
randは、0〜(指定値-1)までの整数をランダムに発生します。
touchkeyコマンド touchkey();
touchkeyは、押されているボタンやペンタッチ状況を取得します。
KEY_A: BIT(0) KEY_DOWN: BIT(7)
KEY_B: BIT(1) KEY_R: BIT(8)
KEY_SELECT: BIT(2) KEY_L: BIT(9)
KEY_START: BIT(3) KEY_X: BIT(10)
KEY_RIGHT: BIT(4) KEY_Y: BIT(11)
KEY_LEFT: BIT(5) KEY_TOUCH: BIT(12)
KEY_UP: BIT(6) KEY_LID: BIT(13)
touchxコマンド touchx();
touchxは、ペンタッチしているX座標を取得します。タッチしていない場合は、最後にタッチされた値を返します。
touchyコマンド touchy();
touchyは、ペンタッチしているY座標を取得します。タッチしていない場合は、最後にタッチされた値を返します。
lcdswapコマンド lcdswap();
lcdswapは、上画面と下画面を入れ替えます。
bmpconnectコマンド bmpconnect( bmpファイル名 );
bmpconnectは、BMPファイルをスクリプトから読み出せるようにします。ただし、読めるBMPファイルは24ビットと8ビットデータに限ります。色データは読み込み時に15ビットに減色します。
cpygコマンド cpyg( 元画面, 先画面, X, Y, 幅, 高さ, 元のX座標, 元のY座標 );
cpygは、任意の画面上の画像を指定画面の任意の位置に貼り付けます。
setmainコマンド setmain( 数値 );
setmainは、表裏2画面あるメイン画面のどちらを表にするかを指定します。0と1で画面が入れ替わりダブルバッファのような使い方ができます。また、画素のマスクビットBIT(15)を0にすると、透過し表画面から裏画面が見えます。
connectmemコマンド connectmem( ファイル名, 接続モード );
connectmemは、任意のファイルをMem領域を使ってスクリプトから読み書きできるようにします。接続モードとは、ファイルオープンを"rb+"(0で指定)にするか"wb+"(1で指定)にするか設定できます。予め読み込ませたいデータがある場合は、0を指定してください。1の場合は新規にファイルを作成することができます。
readコマンド read( ファイルアドレス, メモリアドレス, サイズ );
readは、コネクトしたファイルからメモリにデータを取得します。ただし、取得できるのはMem領域という領域にのみです。この領域は256×192×2バイトあります。
writeコマンド write( メモリアドレス, ファイルアドレス, サイズ );
writeは、コネクトしたファイルにMem領域内のデータを書き込みできます。
boxコマンド box( 画面, X0, Y0, X1, Y1, 色, 塗りつぶし );
boxは、画面に(X0,Y0)-(X1,Y1)で囲まれる領域にボックスを描きます。塗りつぶし値=1としたとき、ボックスの中を塗りつぶします。
pointコマンド point( 画面, X, Y );
pointは、画面の任意の位置の色を取得します。ここで、画面にMem領域を指定した場合、Mem領域のデータを取得することが可能です。ただし、1ピクセルは2バイトなので、取得値、アドレス共に、2バイト単位です。
colorswapコマンド colorswap( 画面, X0, Y0, X1, Y1, 元色, 変更色 );
colorswapは、画面の(X0,Y0)-(X1,Y1)に指定された領域内の元色に当たる色を変更色に入れ替えます。ここで、透過色にしたい色を0に入れ替えれば透過画素になります。
pixelコマンド pixel( 画面, X, Y, 色 );
pixelは、画面の任意の場所の画素の色を設定できます。ここで、画面にMem領域を指定した場合、Mem領域にデータを書き込むことが可能です。ただし、1ピクセルは2バイトなので、取得値、アドレス共に、2バイト単位です。
クリスマスプレゼントには遅れましたが、明日、公開したいと思います。
本当にやりたいこと
(ブログの終わりにやりたいことを書いておきたいと思います)
- 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
- Androidプログラム
- Web系のプログラム