EGSRで使用する全てのモジュール・クラスは全てEGSRモジュールに属している
なお、特に説明していない限り、本モジュールで使われる単位は、
座標:ピクセル単位
時間:フレーム単位
となっている。
スクリプトを実行しているホストOSの名前を返す。
Windows系統の場合は"win"
Linux系統の場合は"linux"と返す
ウィンドウのタイトルをtitleに変更する
画面、入力デバイスを一括して更新する
EGSR上で起こった例外クラス。 どのような種類のエラーでもEGSRErrorクラスの例外として返す
EGSRで使用する矩形情報を管理するクラス
EGSR::Rectクラスのコンストラクタ
x, y, w, hはそれぞれ矩形の左上X座標、左上Y座標、矩形幅、矩形高を示す
矩形内のx, y, w, hを返す
クラス内に格納している情報を[x,y,w,h]の配列として返す
色情報を格納するクラス
Colorクラスのコンストラクタ
r,g,bは、赤、緑、青の各要素の値(0〜255)、
codeは、0x00rrggbbの各バイトの値を4バイトにまとめた値(以降、「カラーコード」とする)
ccとして与えられたカラーコードを赤、緑、青の各要素の配列に変換する
r, g, bとして与えられた各要素をカラーコードに変換する
Classクラスのオブジェクトに格納している赤、緑、青、コードの 値を返す
Classクラスのオブジェクトに格納している赤、緑、青の値を
[r, g, b]の配列として返す
スプライト全体を管理するクラス
画面にスプライトを一括して描画する際に用いる
EGSR内部で使用するため説明は割愛する
画面にテキストを描画する際に用いるフォントを管理するクラス
TrueTypeフォント、BDFフォントが使える
内部では、各フォントを拡張子("ttf/ttc","bdf")で判別するため、
使用するフォントファイル名には気をつけること
なお、テキストには以下のマクロが使用できる
{r, g, b, s}{テキスト}
括弧で囲まれた"テキスト"の描画色を[r,g,b]で与えた値に、
文字の大きさをsに変更して描画する。sが0のときはサイズを変えずに描画する
なお、サイズを変えた際に文字描画領域の範囲は考慮されていないことに注意する
標準で使用するフォントを返す
標準で使用するフォントを登録する
EGSR::systemFontメソッドを使用する際には必ず登録する必要がある
フォントファイル名fnameのフォントをサイズsize(デフォルトは16ピクセル)で使用できるように登録する
登録しているフォントがBDFの場合、文字コードを登録する
使用できるのはSDL::SJIS、SDL::EUC、SDL::JIS
登録しているフォントがBDFの場合、使用できるフォントを追加する
登録しているフォントの大きさを返す
登録しているフォントの大きさをszに変更する
文字列strを登録しているフォントで表示した時の横幅と高さを[w, h]の配列で返す
登録しているフォントの描画色をr,g,bの3要素で設定する
登録しているフォントの描画色を[r, g, b]の配列で返す
登録しているフォントがTrueTypeの場合、フォントのスタイルを設定する
nmでは標準スタイル、blではボールド、itでは斜体(イタリック)、ulでは下線(アンダーライン)を
使用するかどうか設定できる
登録しているフォントのスタイルを、[nm, bl, it, ul]の4要素の配列として返す
文字列strを、登録しているフォントで、dstで示しているビットマップ領域に1行描画する
描画の始点はx,yで指定する
描画したときの最大の高さ(16ドットと24どっとで描画したときは"24")を返す
drawTextMildメソッドは、フォント描画する際にアンチエイリアスを行う
複数行の文字列strを、登録しているフォントで、dstで示しているビットマップ領域の指定領域に描画する
描画の始点はx,yで、行間のスペースをspで、描画領域の高さをhで指定する
描画領域に描ききれなかった文字列を返す
drawMultiLineTextMildメソッドは、フォント描画する際にアンチエイリアスを行う
EGSRで表示する画面に関するモジュール
EGSRで使用する画面の幅を示す(値は640)
EGSRで使用する画面の高さを示す(値は480)
現在のFPS値を返す
EGSRで実行する際に設定している上限FPS値を返す
EGSRで実行する時に上限となるFPS値をvalに変更する valが0のときは、EGSRはFPS上限無しと認識する
画面左上にFPS値を表示するかを示すフラグを取得/設定する
EGSRで使用している画面オブジェクトを取得する
EGSR内部で使用するために用意している
画面の横幅を返す。EGSR::Screen.Width定数の値と同じ
画面の高さを返す。EGSR::Screen.Height定数の値と同じ
スプライト描画や描画命令、テキスト描画命令、エフェクトを一括して行う
画面の描画を停止する
freezeしている間は画面の更新が行われない
後述のtrasitionをしない限り停止している
画面の描画を停止しているかを示すフラグ
freeze中の画面の描画を再開する
画面をpatで示した段階、waitで与えた時間単位(フレーム数)で暗転・復帰させる
画面をpatで示した段階、waitで与えた時間単位(フレーム数)で白色に変化・復帰させる
画面にエフェクトが掛かっているか(fadeIn、fadeOut、whiteIn、whiteOut)を示すフラグ
画像領域を示すフラグ。スプライトもこのBitmapを使用して貼り付ける
実際はSDL::Surfaceクラスを継承したものなので、SDL::Surfaceクラスで定義されている描画命令を全てサポートする
但し、実装は後述のEGSR::Sprite.drawBlockプロパティにブロックとして登録した方が危険性が少ない
Bitmapを指定した幅・高さで作成する
EGSRで使用している入力デバイス情報を管理しているモジュール
入力デバイスはキーボードとジョイパッドを想定している
ジョイパッドの1〜6ボタンはキーボードのZ,X,C,A,S,Dキーに対応している
ジョイパッドの方向キーはテンキーの2,4,6,8に対応している
但し、キーボードのEscapeキー、Spaceキー、Enterキーはジョイパッドには対応していない
入力デバイス情報を更新する
方向キーを押している方向を[下,左,右,上]の4要素の数値の配列で示す
それぞれ、押しているときは1、押していないときは0を示す
方向キーを押した方向を[下,左,右,上]の4要素の数値の配列で示す
それぞれ、押したときは1、既に押したままか押していないときは0を示す
キーを押している間、triggerはずっと1のままだが、pushedでは押した瞬間のみ1となる
ボタンを押している箇所を[1番、2番、3番、4番、5番、6番]の6要素の数値の配列で示す
それぞれ、押しているときは1、押していないときは0を示す
ボタンを押してた箇所を[1番、2番、3番、4番、5番、6番]の6要素の数値の配列で示す
それぞれ、押したときは1、既に押したままか押していないときは0を示す
スペースキーを押しているときはtrueを返す
エンターキーを押しているときはtrueを返す
エスケープキーを押しているときはtrueを返す
スペースキーを押したときはtrueを返す
エンターキーを押したときはtrueを返す
エスケープキーを押したときはtrueを返す
ウィンドウの「x」ボタンを押した時などにtrueを返す
BGMを管理するクラス
ファイルはoggファイルの使用を奨励
mp3ファイルは使えない
fnameで指定したファイルをBGM用に登録する
loopsは、演奏をループするかどうかを示すフラグ
BGMの音量を設定する
BGMの演奏を開始する
今まで演奏していたBGMは停止する
msecで指定したミリ秒でフェードインしながらBGMの再生を開始する
指定のオブジェクトのBGMを演奏しているかのフラグ
現在演奏中のBGMを一時停止する
演奏中の曲が一時停止状態ならば演奏を再開する
BGMの演奏を停止する
msecで指定したミリ秒でフェードアウトしながらBGMの再生を停止する
wmodeは、フェードアウトしている間はプログラムを停止するかを示すフラグ
効果音を管理するクラス
ファイルはwaveファイルのみ
fnameで指定したファイルを効果音用に登録する
オブジェクトが管理する効果音を演奏する
オブジェクトが管理する効果音の演奏を停止する
オブジェクトが管理する効果音の大きさをvで指定する
スプライト全般を管理するクラス
Spriteクラスのオブジェクトを作成する
但し、描画領域は作成しない
描画メソッドを追加したり後で描画領域を追加する際に使用する
描画領域を作成し、それをもとにスプライトを作成する
幅はw、高さはhで設定する
px,pyを使って、透明色として指定する色が存在するビットマップ上の座標を指定する
どちらかが-1のときは透明色を指定しない
alphaを使って、描画時の透明度(アルファブレンディング)を0〜255の間で指定する
0だと完全に透明になる
既存のEGSR::Bitmapクラスのオブジェクトからスプライトを作成する
px,pyを使って、透明色として指定する色が存在するビットマップ上の座標を指定する
どちらかが-1のときは透明色を指定しない
alphaを使って、描画時の透明度(アルファブレンディング)を0〜255の間で指定する
0だと完全に透明になる
既存のEGSR::Bitmapクラスのオブジェクトからスプライトを作成する
ただし、createFromBitmapとの違いは、Bitmapオブジェクトがアンチエイリアスに対応していること
これを介して作られたオブジェクトは透明色や透明度は指定できない
既存のEGSR::Bitmapクラスのオブジェクトからプレーン形式のスプライトを作成する
「プレーン形式」は、後述のEGSR::Planeクラスを参照のこと
px,pyを使って、透明色として指定する色が存在するビットマップ上の座標を指定する
どちらかが-1のときは透明色を指定しない
alphaを使って、描画時の透明度(アルファブレンディング)を0〜255の間で指定する
0だと完全に透明になる
既存の画像ファイルからスプライトを作成する
px,pyを使って、透明色として指定する色が存在するビットマップ上の座標を指定する
どちらかが-1のときは透明色を指定しない
alphaを使って、描画時の透明度(アルファブレンディング)を0〜255の間で指定する
0だと完全に透明になる
アンチエイリアス情報が格納されている既存の画像ファイルからスプライトを作成する
ただし、loadとの違いは、Bitmapオブジェクトがアンチエイリアスに対応していること
これを介して作られたオブジェクトは透明色や透明度は指定できない
今までに登録しているスプライトの一覧を返す
EGSRが内部で利用している
スプライトを表示させる画面上のX,Y座標を取得・設定する
スプライト表示させる際に重ね合わせの基準となる深度を取得・設定する
深度が大きいほど手前に表示される
深度が同じスプライトが複数存在するときは、登録順に描画される
スプライトに登録している画像の幅と高さを取得する
スプライト画像中で、画面に表示させたい部分の左上を示すX,Y座標を取得・設定する
スプライト画像中で、画面に表示させたい部分の幅と高さを取得・設定する
スプライト表示の可否を示すフラグを取得・設定する
スプライトを回転させるときの角度を取得・設定する
スプライトを拡大・縮小させるときのX,Y座標の倍率を取得・設定する
スプライトを回転・拡大・縮小させるときの中心のX,Y座標を取得・設定する
画面に文字を描画したいときのフォント(EGSR::Fontクラスのインスタンス)を取得・設定する
画面に文字を描画したいときの文字列を取得・設定する
スプライト領域に画面に文字を描画したときに余った文字列を取得・設定する
大抵はEGSR::Screen.updateメソッドで内部的に呼ばれる
スプライト領域に文字を描画する際に取るマージンの幅(X)、高さ(Y)を取得・設定する
左上、右下ともに同じ値を使用する
スプライトに描画させる際のメソッドのブロック(Procクラスのインスタンス)を取得・設定する
スプライトを半透明にさせたいときの透明度を取得・設定する
0のときは完全に透明になり、255のときは完全に不透明になる
スプライトで使用している画像領域を返す
スプライトで使用する画像領域を登録する
スプライトオブジェクトがアンチエイリアスを使用して描画するかどうかを返す
trueならアンチエイリアスを使用した描画をするオブジェクト
スプライトにタイする当たり判定の範囲を指定する
スプライトの左上から[x(左上X座標),y(左上Y座標),w(範囲の幅),h(範囲の高さ)]
として設定する
「画面上」の当たり判定の範囲をEGSR::Rectクラスのオブジェクトとして返す
画面上のスプライトの表示範囲をEGSR::Rectクラスのオブジェクトとして返す
画面上のスプライトの表示範囲をEGSR::Rectクラスのオブジェクトとして登録する
スプライトの表示サイズをEGSR::Rectクラスのオブジェクトとして返す
EGSR::Screen.updateメソッド内部で使用するスプライト更新・描画メソッド
EGSR::Sprite#update=メソッドにProcクラスのオブジェクトを渡すこともでき、
update=メソッドでupdateメソッドにブロックを直接渡すことも出来る
ブロックの引数はスプライトオブジェクト本体が渡される
updateメソッドで実行するProcクラスのインスタンスオブジェクトを渡す
メソッドを実行するスプライトと引数として渡すスプライトとの
当たり判定が接触しているときはtrueを返す
スプライト領域を開放する
ビットマップイメージを敷き詰めたような表示を実装するクラス
x=メソッド、y=メソッドを使用することでスクロールする
プレーンを管理するインスタンスを作成する
fnameはプレーンを作成する画像ファイル名
px,pyは透明色を示すピクセルの座標
プレーン画像上で画面の左上に表示させる位置のX、Y座標の値を取得・設定する
プレーンに対して行う描画命令を記述したブロック(Procクラスのインスタンス)を取得・設定する
プレーン表示の可否を示すフラグを取得・設定する
プレーン表示の深度を示す値を取得・設定する
プレーンに使用しているスプライトオブジェクトを解放する
ウィンドウ用に表示する書くグラフィックの範囲を格納するクラス
ウィンドウの窓枠・背景に使用する各パーツの領域の範囲やカーソル用のパーツのアニメーションパターン数を定義する
アニメーションが可能なカーソルパーツの領域範囲は、実際に表示するパーツの大きさを指定するが、アニメーションする他のパーツはその下に格納する仕様となっている
構造体扱い
WindowParamクラスのインスタンスを生成する
各パラメータは、以下のlefttop〜pagepatの説明に対応している
EGSRが標準で所持しているWindowParamクラスのインスタンスを返す
窓枠の左上に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の上に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の右上に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の左に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の右に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の左下に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の下に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
窓枠の右下に描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
背景として描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
ポーズカーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス
ポーズカーソルのアニメーションパターン数
左向きの選択カーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
上向きの選択カーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
右向きの選択カーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
下向きの選択カーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
選択カーソルのアニメーションパターン数
左向きのページカーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
上向きのページカーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
右向きのページカーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
下向きのページカーソルとして描画するパーツの領域を示すEGSR::Rectクラスのインスタンス(アニメーションパターン1つ分)
ページカーソルのアニメーションパターン数
窓枠領域の幅を取得する
但し、各パーツの幅が同じときのみ有効
窓枠領域の高さを取得する
但し、各パーツの高さが同じときのみ有効
ポーズカーソルの幅を返す
ポーズカーソルの高さを返す
ウィンドウの左上からクライアント表示領域の左上までの幅を返す
但し、各パーツの幅が同じときのみ有効
ウィンドウの左上からクライアント表示領域の左上までの高さを返す
但し、各パーツの高さが同じときのみ有効
実際にウィンドウを描画するメソッド
クラス内部では、
・窓枠画像
・クライアント領域
・背景画像
の3つのスプライトが用意されている
窓枠と背景はインスタンス生成時に画像ファイル名とパラメータリスト(EGSR::WindowParamクラスのインスタンス)をもとに作成する
クライアント領域には、ユーザが作成したビットマップや、ウィンドウに表示する文字列、描画メソッドを格納する
ポーズカーソルは、文字の表示を待つ際に表示させるカーソルのことキーの入力があるまで待つ際に使う
選択カーソルは、コマンド選択などに利用するカーソル
ページカーソルは、クライアント領域が実際の領域から見て余っている場合に自動的に表示される
複数ページ存在しているコマンドウィンドウを実現するときに使う
EGSR::update内部で呼ばれる
ウィンドウクラスのインスタンスを作成する
fnameはウィンドウの窓枠などを格納したファイル名、px,pyは透明色のピクセルの座標、balphaは背景を透過させる値(0〜255)
cw、chはクライアント表示領域のサイズ、istitleには背景画像をタイル状に貼りつけるか拡大・縮小して貼りつけるかを示すフラグ、
paramsには引数で渡す画像ファイルに対する、窓枠・背景などのパラメータ値を示すEGSR::WindowParamsクラスのオブジェクトを指定する
表示するウィンドウに属するスプライトの一覧を返す
ウィンドウに対するクライアント領域の表示開始位置のX,Y座標を返す/設定する
クライアント領域が実際の表示領域よりはみ出している場合はページカーソルを自動的に表示する
ウィンドウのクライアント表示領域の幅・高さを返す
clientSizeメソッドは、[w,h]の配列として返す
ウィンドウから見たクライアント領域への長さを返す
実際は、窓枠の左上領域の幅と同じ
ウィンドウから見たクライアント領域への高さを返す
実際は、窓枠の左上領域の高さと同じ
クライアント領域を表示するための画像を登録する
px,pyには透明色となるピクセルの座標を渡す
ウィンドウのポーズ画像を表示させるときに、アニメーションするときのフレーム数を取得・設定する
ウィンドウ中の選択カーソルを表示の可否を示すフラグを取得・設定する
選択カーソルのアニメーションを行う際のフレーム数を取得・設定する
選択カーソルを表示させるときの方向を取得・設定する
方向が左・上・右・下の順で値が0〜3になる
選択カーソルを表示する際のクライアント領域のX,Y座標を取得・設定する
ページカーソルのアニメーションを行う際のフレーム数を取得・設定する
文字描画のポーズを行うかどうかのフラグを取得・設定する
ウィンドウを表示させる画面上のX,Y座標を取得・設定する
ウィンドウを表示させる深度を取得・設定する
setDPsメソッドは背景・クライアント・窓枠それぞれの深度を設定する
dp=メソッドでは各スプライトの深度は同じ値になる
dpメソッドでは[窓枠,クライアント,背景]の各深度を返す
ウィンドウ表示の可否を示すフラグを取得・設定する
ウィンドウの背景領域に対する透明度を取得・設定する
ウィンドウに描画する文字列を取得・設定する
また、Fontクラスで説明したマクロも使用できる
ウィンドウに文字列を描画した際に、クライアント領域からはみ出るために描画しなかった文字列を取得・設定する(ただし、rcontextを生成するのはEGSR::Screen.updateメソッド内部)
ウィンドウに描画する際に使うフォント(EGSR::Fontクラスのインスタンス)を取得・設定する
ウィンドウに描画する命令のブロック(Procクラスのインスタンス)を取得・設定する
ウィンドウに使われる各種スプライトや画像領域を開放する
所定のマップチップとマップデータを元にマップ画像を作成するクラス
x=メソッド、y=メソッドを使用してマップをスクロールさせることができる
マップ内部には各レイヤが存在しており、そのレイヤを別々の深度で重ね合わせることが出来る
なお、最後尾のレイヤ(一番手前に表示されるはずのレイヤ)は「イベントレイヤ」と呼び、実際には画像は作らずに各種イベントを起こすためのコードナンバーを格納するレイヤとして機能する
(但し、レイヤが1枚のみのときはマップの描画を行う)
Mapは、画面の更新毎にマップを表示してメモリの使用を抑えているが、かなりスクロールが遅くなる
MapFastは、マップ上の画像を全て描画して、その一部を表示しているため、描画は速いがメモリ消費量がかなり大きくなる
Map,MapFastクラスの各メソッド名は共通のため、Mapクラスのものを代表に説明する
なお、マップに使用するコードナンバーとマップチップ画像との関連は、「Platinum」というフリーのWindows用マップエディタの形式を採用している
実際のマップデータと表示画像(レイヤ)を扱うクラス
これらのクラスは、実際はEGSR::Map/MapFastクラス内部で使用しているため説明は割愛
マップ情報を格納するインスタンスを生成する
nameには、マップチップ名を設定する
tsizeはマップチップのコードナンバーの単位を示す(16もしくは256、標準は256)
tsizeの値は、マップチップの大きさに依らない
tsizeが16のときは0〜255、256のときは0〜65535がコードナンバーになる
tpixelsはマップチップ1枚のピクセル数を示す
特に指定は無いが、大抵は16ピクセルもしくは32ピクセルとなる
px,pyは、マップチップ画像状で透明色となるピクセルのX,Y座標を示す
loopx,loopyは、X軸方向、Y軸方向にマップを無限スクロールさせるかを示すフラグ
falseの場合、マップが各端に到達するとスクロールが止まる
mnameは、マップに表示したいコードナンバーを収めたcsvファイル名を指定する
このとき、csvファイルに存在するレイヤはイベントレイヤが一番先頭になることに注意すること
blistには、各レイヤに表示するマップチップファイル名を指定する
インスタンスに含まれるマップ名を返す
layersメソッドは、インスタンスに格納されているレイヤ情報の一覧を返す
layerメソッドは、表示順に手前からidx番目のレイヤ情報を取得する(イベントレイヤ含む)
lastLayerメドッドは、イベントレイヤを取得する
マップを画面に表示する際の左上X,Y座標を取得・設定する
マップ画像の幅・高さを取得する
但し、ピクセル単位ではなくマップチップ単位となる
各レイヤの深度を取得・設定する
dpメソッドは、各レイヤの深度を配列形式で返す
dp=メソッドは、各レイヤの深度を同一値で設定する
setDPsメソッドは、各レイヤの深度を別々に指定する
マップを表示されているかを示すフラグを取得・設定する
マップチップ上の座標から対応するマップチップコードを取得する
イベントの有無を判別するする際に使用する
マップを実現するさいに使用するスプライト領域を開放する