ロックオブジェクト
並列処理用のロックオブジェクトを管理します。
lock.singleton実行中のプログラムの同時起動を禁止する
GUI
GUIを管理します。ウィンドウ作成やスクリーンモード切替、ダイアログボックスやマウス・キー入力取得等。
gui.captionウィンドウのタイトルにtextを設定する
gui.create指定したサイズでアプリケーションウィンドウを作成する
gui.dirdialogディレクトリを選択するダイアログを表示する
gui.doeventsウィンドウのメッセージ処理をする
gui.getclickマウスがクリックされたかどうかを取得する
gui.getcommandline起動時のコマンドラインを文字列で返す
gui.getdocdirドキュメント保存用のディレクトリ名を返す
gui.getdropfilelistドラッグアンドドロップされたファイル名をテーブルtblに格納する
gui.getexedir実行プログラム自身のディレクトリ名を返す
gui.getexename実行プログラム自身のファイル名を返す
gui.getfilelistファイル名のリストを取得する
gui.gethinstanceHINSTANCEをライトユーザーデータで返す
gui.gethwndHWNDをライトユーザーデータで返す
gui.getkeyキーが押されているかどうかを取得する
gui.getmouse現在のマウスカーソル位置を取得する
gui.gettempdirテンポラリファイル用ディレクトリ名を返す
gui.gettimer現在のタイマ値を取得する
gui.input入力用のダイアログを表示し、文字列を一行入力する
gui.loaddialogファイルをロードするダイアログボックスを表示する
gui.okbox「OK」ボタンの出るメッセージボックスを作る
gui.savedialogファイルを保存するダイアログボックスを表示する
gui.screenmodeスクリーンモードを切り替える
gui.setclipboardクリップボードに指定文字列をコピーする
gui.shell拡張子に関連付けられたアプリケーションでファイルを開く
gui.sleep指定ミリ秒実行をスリープする
gui.yesnobox「はい」「いいえ」ボタンの出るメッセージボックスを作る
描画
描画を管理します。
draw.allテクスチャの内容をそのまま転送する
draw.beginscene描画を開始する
draw.endscene描画を終了し、画面に結果を表示する
draw.rectテクスチャの内容を切り抜いて転送する
draw.rectltテクスチャの内容を拡縮・回転して転送する
draw.setblendブレンディングモードを設定する
draw.tri2d任意の二次元三角形を描画する
トランジションエフェクト実行
トランジションエフェクトを実行します。
transitionモジュールの関数の使い方はどれも似ています。
これらはdraw.beginsceneとdraw.endsceneの間で使います。
fromtexnumにエフェクト元の画像、totexnumにエフェクト先のテクスチャ番号を指定します。
テクスチャはどちらも画面サイズと同じである必要があります。
rateにトランジションの進み具合を0.0~1.0で指定します。
0.0はエフェクト前の画像と同じ、1.0はエフェクト後の画像と同じで、その間の値を指定すると、その割合で混ざった画像を出力します。
transition.fadeクロスフェードトランジションの結果を画面に表示する
transition.faderuleルール画像を使ったトランジションの結果を画面に表示する
transition.scrolldownスクロール下トランジションの結果を画面に表示する
transition.scrollleftスクロール左トランジションの結果を画面に表示する
transition.scrollrightスクロール右トランジションの結果を画面に表示する
transition.scrollupスクロール上トランジションの結果を画面に表示する
テクスチャデータ
テクスチャデータを管理します。
texnum:テクスチャ番号1~1023
テクスチャ機能はビデオカードのメモリに保存されるイメージを扱います。
drawモジュールの描画関数から使われて、画面に描画されます。
texture.copyrectビットマップの一部をテクスチャにコピーする
texture.create指定サイズのテクスチャを作成する
texture.deleteテクスチャを削除する
texture.fillテクスチャを指定色で塗りつぶしする
texture.frombitmapビットマップからテクスチャを作成する
texture.getsizeテクスチャの大きさを取得する
texture.loadテクスチャに画像をロードする
texture.lockテクスチャの指定した領域をロックし、ライトユーザーデータとして取得する
texture.saveテクスチャ内容を指定ファイル名でセーブする
texture.unlockロックしたテクスチャを解放する
サウンド
サウンドを管理します。対応フォーマットはOggのみです。
chnum:チャンネル番号、1~255
時間の単位は秒で統一しています(ミリ秒ではないので注意)
sound.fadeoout指定チャンネルの音をフェードアウトさせる
sound.isplaying指定チャンネルが演奏中か確認する
sound.pan指定チャンネルの音を左右に偏らせる
sound.pause指定チャンネルの再生を一時停止する
sound.play指定チャンネルでOggファイルを再生する
sound.resume指定チャンネルの再生を再開する
sound.stop指定チャンネルの演奏を終了する
sound.volume指定チャンネルの音量を変更する
ムービー
ムービーを管理します。
正式対応フォーマットはMPEG1です。
メディアプレイヤーが再生するものは再生できるはずですが、多様なコーデック全てをサポート対象には出来ませんので、コーデック回りのサポートは自己責任でお願いします。
movie.playムービーファイルを再生する
ビットマップ
システムメモリ内のビットマップを管理します。
bmpnum:ビットマップ番号、1~1023
システムメモリ内でCPUによって処理されるビットマップイメージです。
画像の加工や、スクリーンショットの保存、フォントの出力先などに使います。
bitmap.beginsceneビットマップをレンダリングターゲットとして描画する
bitmap.create指定サイズのビットマップをメモリ内に作成する
bitmap.deleteビットマップを削除する
bitmap.dupビットマップにビットマップの内容をそのままコピーする
bitmap.endscene描画処理を終了し、結果をビットマップに格納する
bitmap.fill指定した色でビットマップを塗りつぶす
bitmap.fromtextureビットマップにテクスチャの内容をコピーする
bitmap.getdataライトユーザーデータとしてビットマップの内容を取得する
bitmap.getsizeビットマップのサイズを取得する
bitmap.joinxビットマップの右にビットマップを結合する
bitmap.joinyビットマップの下にビットマップを結合する
bitmap.loadファイルから画像を読み込む
bitmap.resizeビットマップを拡大縮小する
bitmap.reverseビットマップを反転する
bitmap.saveビットマップの内容をファイルに書き込む
bitmap.trimビットマップの矩形領域を切り取る
フォント描画
ビットマップにフォントを描画するモジュールです。
font.define描画に使うフォントをセットする
font.drawビットマップの指定位置に文字列を指定色で描画する
font.tobitmapビットマップの指定位置に文字を指定色で描画する
font.totextureテクスチャの指定位置に文字を指定色で描画する
データベース
データベースを管理するモジュールです。
dbnum:データベース番号1~255
database.closeデータベースを閉じる
database.escapeSQL向けにエスケープする
database.exec指定したSQLを実行する
database.openデータベースを開く
文字コード変換
文字コードの変換を扱います。
encoding.ansi_to_utf8SJIS文字コードの文字列をUTF-8に変換する
encoding.utf8_to_ansiUTF-8文字コードの文字列をSJISに変換する
encoding.utf8_to_utf16UTF-8文字コードの文字列をUTF-16キャラクターコードの配列に変換する
コンソール
コンソールを管理します。
console.closeコンソールを閉じる
console.openコンソールを開く
console.printコンソールに文字列を一行ずつ出力する
console.readlineコンソールから文字列の入力を一行受け付ける
console.writeコンソールに文字列を出力する
アーカイブファイル
アーカイブファイルを管理します。
bitmapやtextureやsoundはこのモジュールを使わなくてもアーカイブ内のデータに対応しています。
このモジュールは、それら以外でアーカイブ内のデータを扱うのに必要です。
今のところ、読み込めるのはテキストデータだけです。
arc.dofileアーカイブ内からLuaスクリプトファイルをロードして実行する
arc.readファイルポインタ位置から、そのファイル全体を読み込む
arc.seekアーカイブ内からファイル名を検索し、ファイルポインタをその先頭に移動する
パース処理
文字列の効率的なパース処理を提供します。
parserは内部状態を持っています。入れ子な呼び出しをするときはpushとpopを活用してください。
parser.get先頭から指定数の文字を取得する
parser.id次の単語が識別子名であれば文字列として取得する
parser.integer整数の値を取得する
parser.pop現在の実行状態を終了し、ひとつ前の状態を復帰する
parser.push現在の実行状態を待避する
parser.qstr次の単語が二重引用符で囲まれた文字列であれば取得する
parser.setパースしたい文字列を設定する
parser.trim文字列の先頭から指定文字数を削除する
parser.trimspaceスペースや改行やタブを読み飛ばす
コールバック
SGE.exeが内部処理をするときに、デフォルト処理を変更したい場合、コールバック関数を登録するテーブルです。
初期状態ではcallback={}であるため、全てのコールバック関数がnilであり、デフォルト処理が実行されます。
callback.licenseライセンス表示の動作を変更する
callback.oncloseウィンドウを閉じるボタンを押したときの動作を変更する

Ver.1.0.0.1【関数】

arc.dofile

アーカイブファイル

arc.dofile(filename)

●引数
文字列Luaスクリプトファイル名

アーカイブ内からLuaスクリプトファイルfilenameをロードして実行します。


/
page top / list / main

Ver.1.0.0.1【関数】

arc.read

アーカイブファイル

str=arc.read(tailadd)

●引数
文字列末端付加文字列
●戻り値
文字列ファイルポインタ位置からの内容全体

seekによって移動されたファイルポインタ位置から、そのファイル全体を読み込んで文字列で返します。
tailaddは省略できます。文字列を指定すると、文字列の末尾にその文字列を加えます。


/
page top / list / main

Ver.1.0.0.1【関数】

arc.seek

アーカイブファイル

ret=arc.seek(filename)

●引数
文字列ファイル名
●戻り値
真偽値true:ファイルあり、false:なし

アーカイブ内からファイル名filenameを検索し、ファイルポインタをその先頭に移動します。
ファイルが存在した場合はtrue、無かった場合はfalseを返します。
ファイルがアーカイブ内ではなく裸で存在した場合も、問題なく動作します。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.beginscene

ビットマップ

bitmap.beginscene(bmpnum)

●引数
数値ビットマップ番号(1~1023)

ビットマップbmpnumをレンダリングターゲットとして描画します。
draw.beginscene()とdraw.endscene()の間で使える描画命令をここでも使えます。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.create

ビットマップ

bitmap.create(bmpnum,width,height)

●引数
数値ビットマップ番号(1~1023)
数値
数値高さ

指定サイズのビットマップをメモリ内に作成します。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.delete

ビットマップ

bitmap.delete(bmpnum)

●引数
数値ビットマップ番号(1~1023)

ビットマップを削除します。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.dup

ビットマップ

bitmap.dup(destbmpnum,srcbmpnum)

●引数
数値コピー先ビットマップ番号(1~1023)
数値コピー元ビットマップ番号(1~1023)

ビットマップdestbmpnumにビットマップsrcbmpnumの内容をそのままコピーします。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.endscene

ビットマップ

bitmap.endscene()

描画処理を終了し、結果をビットマップに格納します。
レンダリングターゲットになるビットマップは常にひとつだけなので、
endscene()には引数はありません(つけても無視されます)。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.fill

ビットマップ

bitmap.fill(bmpnum,color)

●引数
数値ビットマップ番号(1~1023)
数値色(ARGB32)

ARGB32bitで指定した色でビットマップを塗りつぶします。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.fromtexture

ビットマップ

bitmap.fromtexture(bmpnum,texnum)

●引数
数値ビットマップ番号(1~1023)
数値テクスチャ番号(1~1023)

ビットマップbmpnumにテクスチャtexnumの内容をコピーします。
比較的重い操作なので、多用しないようにしましょう。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.getdata

ビットマップ

userdata=bitmap.getdata(bmpnum)

●引数
数値ビットマップ番号(1~1023)
●戻り値
ライトユーザーデータDIBDATA

ライトユーザーデータとしてビットマップbmpnumの内容を取得します。
次の構造体へのポインタが得られるので、DLL等へ渡せます。
struct DIBDATA {
  unsigned char *bits;
  int width;
  int height;
};
画像は内部的にすべてARGB32ビットで処理されています。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.getsize

ビットマップ

w,h=bitmap.getsize(bmpnum)

●引数
数値ビットマップ番号(1~1023)
●戻り値
整数
整数高さ

ビットマップのサイズを取得します。ビットマップが作成されてない場合は両方にnilを返します。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.joinx

ビットマップ

bitmap.joinx(destbmpnum,srcbmpnum)

●引数
数値結合先ビットマップ番号(1~1023)
数値追加ビットマップ番号(1~1023)

ビットマップdestbmpnumの右にsrcbmpnumをくっつけて、destbmpnumに格納します。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.joiny

ビットマップ

bitmap.joiny(destbmpnum,srcbmpnum)

●引数
数値結合先ビットマップ番号(1~1023)
数値追加ビットマップ番号(1~1023)

ビットマップdestbmpnumの下にsrcbmpnumをくっつけて、destbmpnumに格納します。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.load

ビットマップ

bitmap.load(bmpnum,filename)

●引数
数値ビットマップ番号(1~1023)
文字列ファイル名

ファイルfilenameから画像を読み込みます。現在のところPNG,JPEG形式にのみ対応しています。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.resize

ビットマップ

bitmap.resize(bmpnum,new_w,new_h)

●引数
数値ビットマップ番号(1~1023)
数値拡大縮小後幅
数値拡大縮小後高さ

ビットマップを拡大縮小します。動的にスクリーンショットのサムネイル等を作るときに使えます。
速度重視で画質はよくないので、決まった画像の縮小がしたい場合はフォトショップなどをお勧めします。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.reverse

ビットマップ

bitmap.reverse(bmpnum,x_flag,y_flag)

●引数
数値ビットマップ番号(1~1023)
真偽値true:左右反転、false:反転なし
真偽値true:上下反転、false:反転なし

ビットマップを反転します。x_flag=trueで左右反転、y_flag=trueで上下反転です。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.save

ビットマップ

bitmap.save(bmpnum,filename)

●引数
数値ビットマップ番号(1~1023)
文字列ファイル名

ビットマップの内容をファイルfilenameに書き込みます。現在のところPNG形式にのみ対応しています。


/
page top / list / main

Ver.1.0.0.1【関数】

bitmap.trim

ビットマップ

bitmap.trim(bmpnum,lx,ly,rx,ry)

●引数
数値ビットマップ番号(1~1023)
数値切り取りX左上座標
数値切り取りY左上座標
数値切り取りX右下座標
数値切り取りY右下座標

ビットマップの矩形領域を切り取って外の部分を捨てます。


/
page top / list / main

Ver.1.0.0.1【データ】

callback.license

コールバック

callback.license

関数を登録することで、Alt+Lキーを押したときに表示されるライセンス表示の動作を変更できます。
他国語対応したり、ダイアログではなくゲーム画面上で表示したり、ライセンスが必要なものが増えた場合に使います。


/
page top / list / main

Ver.1.0.0.1【データ】

callback.onclose

コールバック

callback.onclose

関数を登録することで、Windowsのウィンドウを閉じるボタンを押したときの動作を変更できます。
ここでは無名関数を渡していますが、もちろん普通に作った関数を登録することも出来ます。
関数は、引数無し、戻り値はブーリアンでtrueならば終了、falseならば動作続行です。
他国語対応したり、ダイアログではなくゲーム画面上で終了確認したいときに使います。

例)
閉じるときのダイアログメッセージをカスタマイズするサンプルです。
callback.onclose=function () return gui.yesnobox("exit?","exit dialog") end

/
page top / list / main

Ver.1.0.0.1【関数】

console.close

コンソール

console.close()

コンソールを閉じます(プログラムが終了するわけではありません)。


/
page top / list / main

Ver.1.0.0.1【関数】

console.open

コンソール

console.open()

コンソールをオープンします。この関数を使わなくても、読み書き系命令を使うと自動で呼ばれます。


/
page top / list / main

Ver.1.0.0.1【関数】

console.print

コンソール

console.print(val1[,val2,...])

●引数
文字列化可能なデータ出力対象データ(複数指定可能)

コンソールに引数の値を文字列化したものを末尾に改行をつけて出力します。複数指定すると順に一行ずつ表示します。


/
page top / list / main

Ver.1.0.0.1【関数】

console.readline

コンソール

str=console.readline()

●戻り値
文字列入力された文字列

コンソールから文字列の入力を一行受け付け、戻り値として返します。


/
page top / list / main

Ver.1.0.0.1【関数】

console.write

コンソール

console.write(val)

●引数
文字列化可能なデータ出力対象データ

コンソールに引数の値を文字列化したものを出力します。末尾に改行をつけません。


/
page top / list / main

Ver.1.0.0.1【関数】

database.close

データベース

database.close(dbnum)

●引数
数値データベース番号(1~255)

データベースを閉じます。


/
page top / list / main

Ver.1.0.0.1【関数】

database.escape

データベース

outstr=database.escape(instr)

●引数
文字列エスケープ前SQL
●戻り値
文字列エスケープ後SQL

instrの文字列内の'をSQLに渡せるようにエスケープした文字列outstrを返します。


/
page top / list / main

Ver.1.0.0.1【関数】

database.exec

データベース

tbl,row,col=database.exec(dbnum,sqlstr)

●引数
数値データベース番号(1~255)
文字列SQL
●戻り値
テーブル結果(二次元配列)
整数行数
整数列数

指定したSQLを実行し、テーブルが戻った場合はtblに返します。rowとcolにはそれぞれ行数と列数が返ります。
エラーが出た場合にはtblに文字列"error"を返します。
tblは、要素が全部文字列の、tbl[1][1]~tbk[row][col]の二次元配列になっています。
複数のSQLを一度に実行するときはなるべくトランザクションでやりましょう。


/
page top / list / main

Ver.1.0.0.1【関数】

database.open

データベース

database.open(dbnum,filename)

●引数
数値データベース番号(1~255)
文字列ファイル名

データベースをオープンします。SGE.exeは内部的にSQLiteを使っています。
ファイル名に""を指定すると、メモリ内にデータベースを作ります(高速ですが保存されません)。


/
page top / list / main

Ver.1.0.0.1【関数】
おーる
draw.all

描画

draw.all(texnum,dlx,dly,alpha)

●引数
数値テクスチャ番号(1~1023)
数値画面X座標
数値画面Y座標
数値アルファ値

テクスチャの内容をそのまま画面のdlx,dlyにアルファ値alphaで表示します。


/
page top / list / main

Ver.1.0.0.1【関数】
びぎんしーん
draw.beginscene

描画

draw.beginscene()

描画を開始します。


/
page top / list / main

Ver.1.0.0.1【関数】
えんどしーん
draw.endscene

描画

draw.endscene()

描画を終了し、画面に結果を表示します。


/
page top / list / main

Ver.1.0.0.1【関数】
れくと、れくたんぐる
draw.rect

描画

draw.rect(texnum,dlx,dly,width,height,slx,sly,alpha)

●引数
数値テクスチャ番号(1~1023)
数値画面X座標
数値画面Y座標
数値転送幅
数値転送高さ
数値テクスチャX座標
数値テクスチャY座標
数値アルファ値

テクスチャの座標slx,slyから幅width,heightの画像を画面のdlx,dlyにアルファ値alphaで転送します。


/
page top / list / main

Ver.1.0.0.1【関数】
れくとえるてぃー、れくたんぐるりにあとらんすふぉーむ
draw.rectlt

描画

draw.rectlt(texnum,dcx,dcy,slx,sly,sw,sh,xsize,ysize,rot,alpha)

●引数
数値テクスチャ番号(1~1023)
数値画面X中心座標
数値画面Y中心座標
数値テクスチャX座標
数値テクスチャY座標
数値転送幅
数値転送高さ
数値アルファ値

テクスチャの座標slx,sly、幅sw,shの領域を、画面の中心座標dcx,dcyに、横倍率xsize、縦倍率ysize、回転角rot、
アルファ値alphaで転送します。ちなみにltはlinear transform(一次変換)の略です。


/
page top / list / main

Ver.1.0.0.1【関数】
せっとぶれんど
draw.setblend

描画

draw.setblend(mode)

●引数
数値ブレンディングモード(0:通常、1:加算)

ブレンディングモードを設定します。現状では0=通常ブレンド、1=加算ブレンドが実装されています。


/
page top / list / main

Ver.1.0.0.1【関数】
とらいつーでぃー、とらいあんぐるつーでぃめんしょん
draw.tri2d

描画

draw.tri2d(texnum,p1dx,p1dy,p1sx,p1sy,p1col,p2dx,p2dy,p2sx,p2sy,p2col,p3dx,p3dy,p3sx,p3sy,p3col)

●引数
数値テクスチャ番号(1~1023)
数値画面頂点X座標
数値画面頂点Y座標
数値テクスチャ頂点X座標
数値テクスチャ頂点Y座標
数値頂点カラー
数値画面頂点X座標
数値画面頂点Y座標
数値テクスチャ頂点X座標
数値テクスチャ頂点Y座標
数値頂点カラー
数値画面頂点X座標
数値画面頂点Y座標
数値テクスチャ頂点X座標
数値テクスチャ頂点Y座標
数値頂点カラー

任意の二次元三角形を描画します。頂点カラー指定で細かい色変換もできます。
テクスチャ(p1sx,p1sy) - (p2sx,p2sy) - (p3sx,p3sy) の三角形の画像を、
画面(p1dx,p1dy) - (p2dx,p2dy) - (p3dx,p3dy)に転送します。
頂点カラーは、三点にそれぞれp1col p2col p3colが対応し、ARGB32ビットで指定します。
特に色変換をする必要がない場合は0xFFFFFFFFを指定しておいてください。


/
page top / list / main

Ver.1.0.0.1【関数】

encoding.ansi_to_utf8

文字コード変換

utf8str=encoding.ansi_to_utf8(ansistr)

●引数
文字列文字列(SJIS)
●戻り値
文字列文字列(UTF-8)

(日本語の場合)SJIS文字コードの文字列をUTF-8に変換します。


/
page top / list / main

Ver.1.0.0.1【関数】

encoding.utf8_to_ansi

文字コード変換

ansistr=encoding.utf8_to_ansi(utf8str)

●引数
文字列文字列(UTF-8)
●戻り値
文字列文字列(SJIS)

(日本語の場合)UTF-8文字コードの文字列をSJISに変換します。


/
page top / list / main

Ver.1.0.0.1【関数】

encoding.utf8_to_utf16

文字コード変換

utf16array=encoding.utf8_to_utf16(utf8str)

●引数
文字列文字列(UTF-8)
●戻り値
テーブル文字コード配列(UTF-16)

UTF-8文字コードの文字列をUTF-16キャラクターコードの配列に変換します。
font.charがUTF16を要求するので、そのときに使います。


/
page top / list / main

Ver.1.0.0.1【関数】

font.define

フォント描画

font.define({name="MS ゴシック",width=22,height=22})

●引数
テーブルフォント情報

描画に使うフォントをセットします。
Luaの文法では、テーブル一つが引数の時は drawset{name="MS ゴシック",width=22,height=22}とも書けます。


/
page top / list / main

Ver.1.0.0.1【関数】

font.draw

フォント描画

font.draw(bmpnum,x,y,str,color)

●引数
数値ビットマップ番号(1~1023)
数値描画先X座標
数値描画先Y座標
文字列文字列(UTF-16)
数値文字色

ビットマップbmpnumに文字列を書きます。禁則等の機能はありません。単にいっぱいになったら折り返すだけです。
字を書くときに、対象矩形部分を透明黒で塗りつぶしません。地に色がある場合はそこに重ね合わせます。
ざっくりと文字画像テーブルが欲しいときや、仮素材作成や、デバッグ時の出力が欲しいときにつかうものです。
ゲーム本編で使うフォントはtobitmapやtotextureで細かく書くべきでしょう。


/
page top / list / main

Ver.1.0.0.1【関数】

font.tobitmap

フォント描画

font.tobitmap(bmpnum,x,y,code,color)

●引数
数値ビットマップ番号(1~1023)
数値描画先X座標
数値描画先Y座標
数値UTF-16の文字コード
数値文字色

ビットマップbmpnumの位置x,yに、UTF-16の文字コードcodeで示される1文字を色colorで書きます。
なお、字を書くときに、対象矩形部分を透明黒で塗りつぶします。
(つまり、重ね合わせ素材として字だけのビットマップを作ることを想定しています。)
一文字ずつ描画するときに使う関数です。


/
page top / list / main

Ver.1.0.0.1【関数】

font.totexture

フォント描画

font.totexture(texnum,x,y,code,color)

●引数
数値テクスチャ番号(1~1023)
数値描画先X座標
数値描画先Y座標
数値文字コード(UTF-16)
数値文字色

テクスチャtexnumの位置x,yに、UTF-16の文字コードcodeで示される1文字を色colorで書きます。
なお、字を書くときに、対象矩形部分を透明黒で塗りつぶします。
(つまり、重ね合わせ素材として字だけのテクスチャを作ることを想定しています。)
一文字ずつ描画するときに使う関数です。


/
page top / list / main

Ver.1.0.0.1【関数】
きゃぷしょん
gui.caption

GUI

gui.caption(text)

●引数
文字列ウィンドウのタイトル

ウィンドウのタイトルにtextを設定します。


/
page top / list / main

Ver.1.0.0.1【関数】
くりえいと
gui.create

GUI

gui.create(width,height,gdimode)

●引数
数値アプリケーションウィンドウ幅
数値アプリケーションウィンドウ高さ
真偽値true:GDIモードで起動,false:DirectGraphicsを利用

指定したサイズでアプリケーションウィンドウを作成します。
コンソールアプリケーション以外を作る場合は必ず必要です。他の描画/GUI系命令を実行する前に使ってください。
gdimode=trueで呼び出すとGDIモードで起動します。その場合、一切DirectGraphicsを使いません。
GDIモードで作成した場合、draw.tri2d命令は何も描画しなくなります。
Luaの文法上、gdimodeを指定せずに呼ぶとnilを指定したのと同じになりますので、DirectGraphicsモードになります。

例)
SVGAサイズで起動
gui.create(800, 600)
例)
VGAサイズかつGDIモードで起動
gui.create(640, 480, true)

/
page top / list / main

Ver.1.0.0.1【関数】
でぃるだいあろぐ、でぃれくとりだいあろぐ
gui.dirdialog

GUI

dirname=gui.dirdialog()

●戻り値
文字列ディレクトリ名

ディレクトリを選択するダイアログを表示し、ディレクトリ名を取得します。


/
page top / list / main

Ver.1.0.0.1【関数】
どぅいべんつ
gui.doevents

GUI

gui.doevents()

ウィンドウのメッセージ処理をします。ウィンドウを閉じるとこの関数中でプログラムが終了することがあります。
この命令を呼ばないとメッセージ処理されません。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとくりっく
gui.getclick

GUI

l,r,w,ld,rd=gui.getclick()

●戻り値
真偽値true:左クリックあり、false:なし
真偽値true:右クリックあり、false:なし
真偽値true:左ボタンダウンあり、false:なし
真偽値true:右ボタンダウンあり、false:なし
整数-1:ホイールアップ、0:なし、1:ホイールダウン

マウスがクリックされたかどうかを取得します。
l,rは一度クリックしてボタンをあげたときにtrue、そうでなければfalse
ld,rdはボタンを押し下げているときにtrue、そうでなければfalse
wは、ホイールアップで-1、ホイールダウンで1が返ります。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとこまんどらいん
gui.getcommandline

GUI

str=gui.getcommandline()

●戻り値
文字列コマンドライン

起動時のコマンドラインを文字列で返します。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとどっくでぃる、げっとどきゅめんとでぃれくとり
gui.getdocdir

GUI

dirname=gui.getdocdir(newdir)

●引数
文字列マイドキュメントのサブディレクトリ名
●戻り値
文字列ドキュメント保存用のディレクトリ名(フルパス)

ドキュメント保存用のディレクトリ名を返します。
newdirに何も指定しなければ(nilであれば)、通常ならマイドキュメントのフォルダを返します。
newdirにフォルダ名を指定した場合は、マイドキュメントにそのフォルダを掘ってそのフルパスを返します。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとどろっぷふぁいるりすと
gui.getdropfilelist

GUI

tbl=gui.getdropfilelist()

●戻り値
テーブルドラッグアンドドロップされたファイル名のリスト

ドラッグアンドドロップされたファイル名をテーブルtblに格納します。
N個のファイルを取得すると、tbl[1]~tbl[N]にファイル名が入ります。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとえぐぜでぃる、げっとえぐぜきゅーとでぃれくとり
gui.getexedir

GUI

dirname=gui.getexedir()

●戻り値
文字列このプログラム自身のディレクトリ名(フルパス)

exeファイルがおいてあるディレクトリ名を返します。
SGE.exeは実行時に自動でディレクトリを移動しますので、起動時のカレントディレクトリでもあります。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとえぐぜねーむ、げっとえぐぜきゅーとねーむ
gui.getexename

GUI

filename=gui.getexename()

●戻り値
文字列このプログラム自身のファイル名(exeファイル名のみ)

実行しているこのプログラム自身のファイル名を返します(フルパスではなくexeファイル名のみです)
SGE.exeから他の名前に変更していても正しく返します。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとふぁいるりすと
gui.getfilelist

GUI

filelist=gui.getfilelist(dirname)

●引数
文字列ディレクトリ
●戻り値
テーブルファイル名のリスト

ディレクトリdirname内のすべてのフォルダとサブフォルダ内のファイルを走査し、ファイル名のリストを取得します


/
page top / list / main

Ver.1.0.0.1【関数】
げっとえいちいんすたんす、げっとはんどるいんすたんす
gui.gethinstance

GUI

userdata=gui.gethinstance()

●戻り値
ライトユーザーデータHINSTANCE

Win32APIで定義されているインスタンスハンドルHINSTANCEをライトユーザーデータで返します。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとえいちだぶりゅーえぬでぃー、げっとはんどるうぃんどう
gui.gethwnd

GUI

userdata=gui.gethwnd()

●戻り値
ライトユーザーデータHWND

Win32APIで定義されているウィンドウハンドルHWNDをライトユーザーデータで返します。


/
page top / list / main

Ver.1.0.0.1【関数】
げっときー
gui.getkey

GUI

ret=gui.getkey(keycode)

●引数
文字列キーコード
●戻り値
真偽値true:キーが押されている、false:離されている

keycodeで指定したキーが押されていればtrue、離されていればfalseが返ります。
keycodeには半角英字のほか、
"SPACE"(もしくは" ")、"ESC"、"CTRL"、"UP"、"DOWN"、"LEFT"、"RIGHT"、"F1"~"F12"、
"RETURN"(もしくは"ENTER")、"PAGEUP"、"PAGEDOWN"、"SHIFT"
が指定できます。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとまうす
gui.getmouse

GUI

x,y=gui.getmouse()

●戻り値
整数マウスカーソルX座標
整数マウスカーソルY座標

現在のマウスカーソル位置を取得します。画面外の場合はnilが返ります。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとてんぷでぃる、げっとてんぽらりでぃれくとり
gui.gettempdir

GUI

dirname=gui.gettempdir()

●戻り値
文字列テンポラリファイル用ディレクトリ名(フルパス)

テンポラリファイル用ディレクトリ名を返します。


/
page top / list / main

Ver.1.0.0.1【関数】
げっとたいまー
gui.gettimer

GUI

time=gui.gettimer()

●戻り値
整数Windows起動後経過した時間(ミリ秒)

現在のタイマ値を取得します。タイマ値は、Windows起動後経過した時間をミリ秒単位で表したものです。
32bit非負整数で返しますので、だいたい49日ほどでループします。


/
page top / list / main

Ver.1.0.0.1【関数】
いんぷっと
gui.input

GUI

str=gui.input(text,title)

●引数
文字列文字列の説明
文字列タイトル
●戻り値
文字列入力された文字列

入力用のダイアログを表示し、文字列を一行入力します。textは文字列の説明です。
titleはウィンドウのタイトルです。省略できます(その場合「入力」になります)。


/
page top / list / main

Ver.1.0.0.1【関数】
ろーどだいあろぐ
gui.loaddialog

GUI

filename=gui.loaddialog(ext)

●引数
文字列拡張子(.不要)
●戻り値
文字列ロードファイル名

ファイルをロードするダイアログボックスを表示し、ロードファイル名を取得します。extは拡張子です。


/
page top / list / main

Ver.1.0.0.1【関数】
おーけーぼっくす
gui.okbox

GUI

gui.okbox(text,caption)

●引数
文字列本文
文字列タイトル

「OK」ボタンの出るメッセージボックスを作ります。


/
page top / list / main

Ver.1.0.0.1【関数】
せーぶだいあろぐ
gui.savedialog

GUI

filename=gui.savedialog(ext,defaultname)

●引数
文字列拡張子(.不要)
文字列デフォルトのファイル名
●戻り値
文字列セーブファイル名

ファイルを保存するダイアログボックスを表示し、セーブファイル名を取得します。
extで拡張子、defaultnameでデフォルトのファイル名を指定します。
どちらも省略可能で、extを省略するとtxt,out.txt、defaultnameだけ省略するとout.(拡張子)になります。


/
page top / list / main

Ver.1.0.0.1【関数】
すくりーんもーど
gui.screenmode

GUI

gui.screenmode(flag)

●引数
真偽値true:フルスクリーンモード,false:ウィンドウモード

trueでフルスクリーンモード、falseでウィンドウモードになります。


/
page top / list / main

Ver.1.0.0.1【関数】
せっとくりっぷぼーど
gui.setclipboard

GUI

gui.setclipboard(str)

●引数
文字列コピーする文字列

クリップボードに指定文字列をコピーします。
このとき、文字列は普通のUTF-8で渡してください。内部でSJISに変換します。


/
page top / list / main

Ver.1.0.0.1【関数】
しぇる
gui.shell

GUI

gui.shell(filename)

●引数
文字列ファイル名

ファイル名の拡張子を調べ、エクスプローラで設定されているアプリケーションで開きます。

例)
ローカルHTMLファイルを指定して既定のブラウザで開きます。
gui.shell("help.html")

/
page top / list / main

Ver.1.0.0.1【関数】
すりーぷ
gui.sleep

GUI

gui.sleep(num)

●引数
数値スリープ時間(ミリ秒)

指定ミリ秒実行をスリープします。


/
page top / list / main

Ver.1.0.0.1【関数】
いえすのーぼっくす
gui.yesnobox

GUI

ret=gui.yesnobox(text,caption)

●引数
文字列本文
文字列タイトル
●戻り値
真偽値true:はい、false:いいえ

「はい」「いいえ」ボタンの出るメッセージボックスを作り、flag=trueもしくはfalseで結果を返します。

例)
フルスクリーンにするか確認して結果に応じてモードを設定する
gui.screenmode(gui.yesnobox("フルスクリーンにしますか?", "フルスクリーン確認"))

gui.screenmode /
page top / list / main

Ver.1.0.0.1【関数】
しんぐるとん
lock.singleton

ロックオブジェクト

lock.singleton(function)

●引数
関数同時起動時処理

実行中のプログラムの同時起動を禁止します。
この命令を実行したときに、既に同じプログラムが動いていたら、関数functionを実行します。
関数functionは省略できます。その場合、同時起動エラーメッセージを表示して、プログラムを終了します。

例)
同時起動を許可しない。
lock.singleton()
例)
同時起動がある場合、多重起動確認を表示する。
lock.singleton(
  function()
    if not gui.yesnobox("既に起動中です。多重に起動しますか?", "多重起動確認") then
      os.exit()
    end
  end)

gui.yesnobox / os.exit /
page top / list / main

Ver.1.0.0.1【関数】

movie.play

ムービー

movie.play(filename,canskip)

●引数
文字列ファイル名(アーカイブ不可)
真偽値true:クリックでのスキップ許容、false:非許容

ムービーファイルを再生します。アーカイブの中からは再生できないので、生ファイルを指定して下さい。
canskipにtrueを指定すると、クリックによってムービー再生をスキップできます。falseではできません。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.get

パース処理

top,len=parser.get(n)

●引数
数値文字数
●戻り値
文字列取得結果文字列
整数取得結果文字数

先頭のn文字を取得します。削除はしません。文字列終端の場合""が返ります。nは省略可能で、その場合1になります。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.id

パース処理

id,len=parser.id()

●戻り値
文字列識別子名(なければnil)
整数文字数

次の単語が識別子名であれば文字列として取得、識別子名でなければnilを返します。削除はしません。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.integer

パース処理

number,len=parser.integer()

●戻り値
整数整数表記(なければnil)
整数文字数

整数の値を取得します。削除はしません。

例)

/
page top / list / main

Ver.1.0.0.1【関数】

parser.pop

パース処理

parser.pop()

現在の実行状態を終了し、ひとつ前の状態を復帰します。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.push

パース処理

parser.push()

現在の実行状態を待避します。新しいパーサには新しくsetで文字列を渡してください。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.qstr

パース処理

str,len=parser.qstr()

●戻り値
文字列文字列表記(なければnil)
整数文字数

次の単語がダブルクォーテーションマークで囲まれた文字列であれば取得します。削除はしません。
文字列中の\"は終端記号としては認識しません。""で囲んだ形で取得します(「"」を削りません)


/
page top / list / main

Ver.1.0.0.1【関数】

parser.set

パース処理

parser.set(srcstr)

●引数
文字列パース対象文字列

パースしたい文字列を渡します。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.trim

パース処理

parser.trim(len)

●引数
数値削除文字数

文字列の先頭len文字を削ります。識別子や文字列を読み込んだ後、この関数に戻ってきたlenを渡し、その文字数分削除するといいでしょう。


/
page top / list / main

Ver.1.0.0.1【関数】

parser.trimspace

パース処理

parser.trimspace()

スペースや改行やタブを読み飛ばします。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.fadeoout

サウンド

sound.fadeoout(chnum,time)

●引数
数値チャンネル番号(1~255)
数値効果時間(秒)

チャンネルchnumの音をフェードアウトさせて、停止します。単位は秒です。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.isplaying

サウンド

flag=sound.isplaying(chnum)

●引数
数値チャンネル番号(1~255)
●戻り値
真偽値true:演奏中、false:演奏なし

チャンネルchnumが演奏中ならtrue、演奏していなければfalseを返します。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.pan

サウンド

sound.pan(chnum,pan)

●引数
数値チャンネル番号(1~255)
数値パン(左←-10000~10000→右)

チャンネルchnumの音をパンします(ボリュームを左右に偏らせます)。0が真ん中です。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.pause

サウンド

sound.pause(chnum)

●引数
数値チャンネル番号(1~255)

チャンネルchnumの再生を一時停止します。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.play

サウンド

sound.play(chnum,{name="oggファイル名",loop=ループフラグ(true or false),looppoint=ループ位置(秒単位),fadein=フェードイン時間(秒単位),volume=ボリューム(0~-10000),pan=パン指定(-10000~10000)})

●引数
数値チャンネル番号(1~255)
テーブル初期値

チャンネルchnumでOggファイルを再生します。name以外の指定は省略できます。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.resume

サウンド

sound.resume(chnum)

●引数
数値チャンネル番号(1~255)

チャンネルchnumの再生を再開します。


/
page top / list / main

Ver.1.0.0.1【関数】

sound.stop

サウンド

sound.stop(chnum)

●引数
数値チャンネル番号(1~255)

チャンネルchnumの演奏を終了します


/
page top / list / main

Ver.1.0.0.1【関数】

sound.volume

サウンド

sound.volume(chnum,vol)

●引数
数値チャンネル番号(1~255)
数値音量(0~-10000)

チャンネルchnumのボリュームを変更します。0~-10000で、0が原音そのまま、-10000が無音です。


/
page top / list / main

Ver.1.0.0.1【関数】

texture.copyrect

テクスチャデータ

texture.copyrect(texnum,bmpnum,dx,dy,w,h,sx,sy)

●引数
数値テクスチャ番号(1~1023)
数値ビットマップ番号(1~1023)
数値テクスチャX座標
数値テクスチャY座標
数値転送幅
数値転送高さ
数値ビットマップX座標
数値ビットマップY座標

ビットマップbmpnumの一部をテクスチャtexnumにコピーします。
コピーする領域を、転送先テクスチャ左上の座標dx,dy、幅・高さw,h、転送元ビットマップの左上座標sx,syで指定します。
少しずつ文字を描画する時等に使います。


bitmap.create /
page top / list / main

Ver.1.0.0.1【関数】

texture.create

テクスチャデータ

texture.create(texnum,width,height)

●引数
数値テクスチャ番号(1~1023)
数値
数値高さ

幅width,heightのテクスチャtexnumを作成します。

例)

/
page top / list / main

Ver.1.0.0.1【関数】

texture.delete

テクスチャデータ

texture.delete(texnum)

●引数
数値テクスチャ番号(1~1023)

テクスチャtexnumを削除します。


/
page top / list / main

Ver.1.0.0.1【関数】

texture.fill

テクスチャデータ

texture.fill(texnum,color)

●引数
数値テクスチャ番号(1~1023)
数値色(ARGB32)

テクスチャtexnumをARGB32ビットで指定される色colorで塗りつぶします。


/
page top / list / main

Ver.1.0.0.1【関数】

texture.frombitmap

テクスチャデータ

texture.frombitmap(texnum,bmpnum)

●引数
数値テクスチャ番号(1~1023)
数値ビットマップ番号(1~1023)

ビットマップbmpnumからテクスチャtexnumを作成します。


bitmap.create /
page top / list / main

Ver.1.0.0.1【関数】

texture.getsize

テクスチャデータ

w,h=texture.getsize(texnum)

●引数
数値テクスチャ番号(1~1023)
●戻り値
整数
整数高さ

テクスチャの大きさを取得します。


/
page top / list / main

Ver.1.0.0.1【関数】

texture.load

テクスチャデータ

texture.load(texnum,filename)

●引数
数値テクスチャ番号(1~1023)
文字列画像ファイル名

テクスチャtexnumにfilenameの画像をロードします。現状PNG,JPEGファイルのみの対応です。


/
page top / list / main

Ver.1.0.0.1【関数】

texture.lock

テクスチャデータ

userdata=texture.lock(texnum,lx,ly,rx,ry)

●引数
数値テクスチャ番号(1~1023)
数値テクスチャX左上座標
数値テクスチャY左上座標
数値テクスチャX右下座標
数値テクスチャY右下座標
●戻り値
ライトユーザーデータD3DLOCKED_RECT構造体へのポインタ

テクスチャの指定した領域をロックし、ライトユーザーデータとして取得します。
D3DLOCKED_RECT構造体へのポインタが得られるので、DLL等へ渡せます。
なお、テクスチャのフォーマットはすべてD3DFMT_A8R8G8B8です。


/
page top / list / main

Ver.1.0.0.1【関数】

texture.save

テクスチャデータ

texture.save(texnum,filename)

●引数
数値テクスチャ番号(1~1023)
文字列ファイル名

テクスチャ内容をファイル名filenameでセーブします。


bitmap.create /
page top / list / main

Ver.1.0.0.1【関数】

texture.unlock

テクスチャデータ

texture.unlock(texnum)

●引数
数値テクスチャ番号(1~1023)

texture.lockでロックしたテクスチャを解放します。


/
page top / list / main

Ver.1.0.0.1【関数】

transition.fade

トランジションエフェクト実行

transition.fade(fromtexnum,totexnum,rate)

●引数
数値エフェクト元のテクスチャ番号
数値エフェクト先のテクスチャ番号
数値トランジションの進み具合(0.0~1.0)

クロスフェードトランジションの結果を画面に表示します。


/
page top / list / main

Ver.1.0.0.1【関数】

transition.faderule

トランジションエフェクト実行

transition.faderule(fromtexnum,totexnum,rate,rulebmpnum)

●引数
数値エフェクト元のテクスチャ番号
数値エフェクト先のテクスチャ番号
数値トランジションの進み具合(0.0~1.0)
数値ルール画像

ルール画像を使ったトランジションの結果を画面に表示します。
ルール画像がビットマップであることにご注意ください(これだけbitmap.loadでロードする)


bitmap.load /
page top / list / main

Ver.1.0.0.1【関数】

transition.scrolldown

トランジションエフェクト実行

transition.scrolldown(fromtexnum,totexnum,rate)

●引数
数値エフェクト元のテクスチャ番号
数値エフェクト先のテクスチャ番号
数値トランジションの進み具合(0.0~1.0)

それぞれスクロール上下左右トランジションの結果を画面に表示します。


/
page top / list / main

Ver.1.0.0.1【関数】

transition.scrollleft

トランジションエフェクト実行

transition.scrollleft(fromtexnum,totexnum,rate)

●引数
数値エフェクト元のテクスチャ番号
数値エフェクト先のテクスチャ番号
数値トランジションの進み具合(0.0~1.0)

それぞれスクロール上下左右トランジションの結果を画面に表示します。


/
page top / list / main

Ver.1.0.0.1【関数】

transition.scrollright

トランジションエフェクト実行

transition.scrollright(fromtexnum,totexnum,rate)

●引数
数値エフェクト元のテクスチャ番号
数値エフェクト先のテクスチャ番号
数値トランジションの進み具合(0.0~1.0)

それぞれスクロール上下左右トランジションの結果を画面に表示します。


/
page top / list / main

Ver.1.0.0.1【関数】

transition.scrollup

トランジションエフェクト実行

transition.scrollup(fromtexnum,totexnum,rate)

●引数
数値エフェクト元のテクスチャ番号
数値エフェクト先のテクスチャ番号
数値トランジションの進み具合(0.0~1.0)

それぞれスクロール上下左右トランジションの結果を画面に表示します。


/
page top / list / main