EGSRで使用する全てのモジュール・クラスは全てEGSRモジュールに属している
なお、特に説明していない限り、本モジュールで使われる単位は、
座標:ピクセル単位
時間:フレーム単位
となっている。
スクリプトを実行しているホストOSの名前を返す。
Windows系統の場合は"win"
その他の場合は"other"と返す
ウィンドウのタイトルをtitleに変更する
画面、入力デバイスを一括して更新する
EGSR上で起こった例外クラス。 どのような種類のエラーでもEGSRErrorクラスの例外として返す
座標情報を管理するクラス
EGSR::Pointクラスのコンストラクタ
x, yはそれぞれX座標、Y座標を示す
座標x, yをそれぞれ返す
クラス内に格納している情報を[x,y]の配列として返す
サイズ情報を管理するクラス
EGSR::Sizeクラスのコンストラクタ
w, hはそれぞれ幅、高を示す
幅w, 高さhをそれぞれ返す
クラス内に格納している情報を[w,h]の配列として返す
矩形情報を管理するクラス
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")で判別するため、
使用するフォントファイル名には気をつけること
なお、テキストには以下のマクロが使用できる
但し、マクロ名は必ず半角小文字とすること
標準で使用するフォントを返す
標準で使用するフォントを登録する
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で示しているビットマップ領域の指定領域に描画する
描画の始点はx,yで、行間のスペースをspで、描画領域の高さをhで指定する
描画領域に描ききれなかった文字列を返す
drawMultiLineTextMildメソッドは、フォント描画する際にアンチエイリアスを行う
但し、フォントのサイズが24未満のときは何故かフォントが崩れるので、内部でdrawMultiLineTextを呼び出して回避している
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を指定した幅・高さで作成する
(ここ以降の描画命令は、Ruby/SDLリファレンスマニュアルで使用できる描画メソッドを抜粋・編集しています)
x,yの位置のピクセルの値を返す。
x,yの位置のピクセルの値をpixelにする。つまり、x,yの位置にpixelの色の点を打つ。
色がcolorの線を(x1,y1)から(x2,y2)まで描く。
色がcolorの長方形を描く。中はぬりつぶさない。
指定された長方形の領域をcolorでぬりつぶす。
色がcolorの円を描く。中はぬりつぶさない。
色がcolorの円を描き、中をぬりつぶす。
色がcolorの楕円を描く。中はぬりつぶさない。
色がcolorの楕円を描く。中をぬりつぶす。。
色がcolorのアンチエリアスした線を(x1,y1)から(x2,y2)まで描く。
色がcolorのアンチエリアスした円を描く。
色がcolorのアンチエリアスした円を描き、中をぬりつぶす。
色がcolorのアンチエリアスした楕円を描く。
アルファブレンドした直線を描く。
アルファブレンドした長方形を描く。
アルファブレンドした長方形を描き、中をぬりつぶす。
アルファブレンドした円を描く。
アルファブレンドした円を描き、中をぬりつぶす。
アルファブレンドした楕円を描く。
アルファブレンドした楕円を描き、中をぬりつぶす。
アルファブレンド、アンチエリアスした直線を描く。
アルファブレンド、アンチエリアスした円を描く。
アルファブレンド、アンチエリアスした楕円を描く。
(x1,y1)から(x4,y4)へのベジエ曲線を(x2,y2),(x3,y3)をコントロールポイントとしてcolorで指定した色で描く。levelは4から7くらいが普通。
(x1,y1)から(x4,y4)へのアンチエイリアスしたベジエ曲線を(x2,y2), (x3,y3)をコントロールポイントとしてcolorで指定した色で描く。 levelは4から7くらいが普通。
(x1,y1)から(x4,y4)へのベジエ曲線を(x2,y2), (x3,y3)をコントロールポイントとしてcolorで指定した色、alphaで指定したアルファ値で描く。levelは4から7くらいが普通。
(x1,y1)から(x4,y4)へのアンチエイリアスしたベジエ曲線を(x2,y2), (x3,y3)をコントロールポイントとしてcolorで指定した色、alphaで指定したアルファ値で描く。levelは4から7くらいが普通。
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だと完全に透明になる
また、nilを指定するとα値を持つ画像として認識する画像と見なす
今までに登録しているスプライトの一覧を返す
EGSRが内部で利用している
スプライトを表示させる画面上のX,Y座標を取得・設定する
スプライト表示させる際に重ね合わせの基準となる深度を取得・設定する
深度が大きいほど手前に表示される
深度が同じスプライトが複数存在するときは、登録順に描画される
スプライトに登録している画像の幅と高さを取得する
スプライト画像中で、画面に表示させたい部分の左上を示すX,Y座標を取得・設定する
スプライト画像中で、画面に表示させたい部分の幅と高さを取得・設定する
スプライト表示の可否を示すフラグを取得・設定する
スプライトを回転させるときの角度を取得・設定する
スプライトを拡大・縮小させるときのX,Y座標の倍率を取得・設定する
スプライトを回転・拡大・縮小させるときの中心のX,Y座標を取得・設定する
画面に文字を描画したいときのフォント(EGSR::Fontクラスのインスタンス)を取得・設定する
画面に文字を描画したいときの文字列を取得・設定する
画面に文字を描画するかどうかのフラグを取得・設定する
現在表示できるコンテキストを取得・設定する
ここではEGSR::ContextDataインスタンスの配列として構成され、
この配列にインスタンスを追加することによって描画する文字列を追加したり
文字色・フォントサイズの変更を指示する
この配列を使用しての描画はEGSR::Screen.updateメソッドで行われる
画面に文字を1文字ずつ表示したいために、EGSR::ContextDataクラスの
構成を変更するかどうか示すフラグを取得・設定する
trueにすると、ContextDataクラスのインスタンスは1文字ずつ格納される
ContextDataインスタンス配列中に格納されている要素を返す
本メソッドを呼び出す度に配列の先頭から順に要素を返す
viewContext配列の全ての要素を消去する
nextContextメソッドで取り出す要素の順番を再び先頭に戻す
コンテキスト配列情報を取得・設定する
EGSR内部で使用
文字を描画する領域の範囲の左上X座標、Y座標、幅(W)、高さ(H)を取得・設定する
後述のviewPortとは独立して設定する
文字を描画する領域の範囲をまとめて設定する
引数はそれぞれtextAreaX, textAreaY, textAreaW, textAreaHに対応している
スプライトに描画させる際のメソッドのブロック(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を返す
スプライト領域を開放する
画面に文字を表示する際に使われる表示単位を示すクラス
実際の構成はこのクラスの配列となる
この組み合わせで、文字の表示を制御する
また、EGSR::Font.textScrollプロパティをtrueにしたとき、
配列の構成が文字列単位から文字単位に変更される
dataプロパティ(後述)が文字列を示す定数
Stringクラスのインスタンスが格納されている
dataプロパティが描画文字色を示す定数
[r,b,g]で構成される配列が格納されている
dataプロパティが描画フォントサイズを示す定数
数値が格納されている
文字列表示の一時停止を指示する定数
描画する文字列中に{pause}マクロが組み込まれているときに使われる
従うかどうかはユーザ次第
文字列表示の一時停止を指示する定数
描画する文字列中に{pause}マクロが組み込まれているときに使われる
従うかどうかはユーザ次第
文字列の改行を指示する定数
配列中に組み込むと自動的に改行して描画する
文字を表示する際のウェイト(フレーム単位)を指定する定数
数値が格納されている
従うかどうかはユーザ次第
表示を一定時間止める際にその値(フレーム単位)を指示する定数
数値が格納されている
従うかどうかはユーザ次第
コンテキストの最後尾を指示する定数
新しいContextDataクラスのインスタンスを返す
EGSR内部で使用する
codeプロパティが定数CRのContextDataインスタンスを返す
codeプロパティが定数EOTのContextDataインスタンスを返す
ContextDataインスタンスの機能を示す値を取得するプロパティ
上記定数のどれかが格納されている
codeプロパティに対応したデータを格納するプロパティ
内容は上記定数を参照
コンテキストコンパイラ本体
このコンパイラを使うと、コンテキスト配列を取得できる
但し、最後尾にEOTが含まれていないところに注意
コンテキスト配列に変換するためのコンパイルを行う
contextには、コンパイル対象の文字列を設定する
flagは、文字列を1文字ずつ分割して配列を形成するかを指定するフラグ
ビットマップイメージを敷き詰めたような表示を実装するクラス
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クラスのオブジェクトを指定する
fnameで指定する画像に透明度を持つ画像ファイルを使う場合、アンチエイリアス等は消えてしまいますのでご注意下さい
表示するウィンドウに属するスプライトの一覧を返す
ウィンドウに対するクライアント領域の表示開始位置のX,Y座標を返す/設定する
クライアント領域が実際の表示領域よりはみ出している場合はページカーソルを自動的に表示する
ウィンドウのクライアント表示領域の幅・高さを取得・設定する
clientSizeメソッドは、[w,h]の配列として返す
ウィンドウから見たクライアント領域への長さを返す
実際は、窓枠の左上領域の幅と同じ
ウィンドウから見たクライアント領域への高さを返す
実際は、窓枠の左上領域の高さと同じ
クライアント領域を表示するための画像を登録する
px,pyには透明色となるピクセルの座標を渡す
ウィンドウのポーズ画像を表示させるときに、アニメーションするときのフレーム数を取得・設定する
ウィンドウ中の選択カーソルを表示の可否を示すフラグを取得・設定する
選択カーソルのアニメーションを行う際のフレーム数を取得・設定する
選択カーソルを表示させるときの方向を取得・設定する
方向が左・上・右・下の順で値が0〜3になる
選択カーソルを表示する際のクライアント領域のX,Y座標を取得・設定する
ページカーソルのアニメーションを行う際のフレーム数を取得・設定する
文字描画のポーズを行うかどうかのフラグを取得・設定する
ウィンドウを表示させる画面上のX,Y座標を取得・設定する
ウィンドウを表示させる深度を取得・設定する
setDPsメソッドは背景・クライアント・窓枠それぞれの深度を設定する
dp=メソッドでは各スプライトの深度は同じ値になる
dpメソッドでは[窓枠,クライアント,背景]の各深度を返す
ウィンドウ表示の可否を示すフラグを取得・設定する
ウィンドウの背景領域に対する透明度を取得・設定する
ウィンドウに描画する文字列を取得・設定する
また、Fontクラスで説明したマクロも使用できる
画面に文字を描画するかどうかのフラグを取得・設定する
現在表示できるコンテキストを取得・設定する
ここではEGSR::ContextDataインスタンスの配列として構成され、
この配列にインスタンスを追加することによって描画する文字列を追加したり
文字色・フォントサイズの変更を指示する
この配列を使用しての描画はEGSR::Screen.updateメソッドで行われる
画面に文字を1文字ずつ表示したいために、EGSR::ContextDataクラスの
構成を変更するかどうか示すフラグを取得・設定する
trueにすると、ContextDataクラスのインスタンスは1文字ずつ格納される
ContextDataインスタンス配列中に格納されている要素を返す
本メソッドを呼び出す度に配列の先頭から順に要素を返す
viewContext配列の全ての要素を消去する
nextContextメソッドで取り出す要素の順番を再び先頭に戻す
ウィンドウに描画する際に使うフォント(EGSR::Fontクラスのインスタンス)を取得・設定する
ウィンドウに描画する命令のブロック(Procクラスのインスタンス)を取得・設定する
ウィンドウに使われる各種スプライトや画像領域を開放する
所定のマップチップとマップデータを元にマップ画像を作成するクラス
x=メソッド、y=メソッドを使用してマップをスクロールさせることができる
マップ内部には各レイヤが存在しており、そのレイヤを別々の深度で重ね合わせることが出来る
レイヤは配列として存在しており、Mapクラスのインスタンス作成時にマップチップファイル名を渡した順番に作成している
(各レイヤの深度が同じ時は、配列のインデックスの若い方が手前に表示される)
なお、画像を作成しない(マップチップファイル名の代わりにnilを渡した)レイヤを「イベントレイヤ」と呼び、各種イベントを起こすためのコードナンバーを格納するレイヤとして機能する
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座標を示す
alphaは、マップチップ画像状での透明度を設定する。nilのときはblistで指定したファイルを透明度付き画像と認識する
loopx,loopyは、X軸方向、Y軸方向にマップを無限スクロールさせるかを示すフラグ
falseの場合、マップが各端に到達するとスクロールが止まる
mnameは、マップに表示したいコードナンバーを収めたcsvファイル名を指定する
このとき、csvファイルに存在するレイヤはイベントレイヤが一番先頭になることに注意すること
blistには、各レイヤに表示するマップチップファイル名を指定する
ファイル名の代わりにnilを渡すと、イベントマップレイヤとして認識する
インスタンスに含まれるマップ名を返す
layersメソッドは、インスタンスに格納されているレイヤ情報の一覧を返す
layerメソッドは、idx番目のレイヤ情報を取得する(イベントレイヤ含む)
マップを画面に表示する際の左上X,Y座標を取得・設定する
マップ画像の幅・高さを取得する
但し、ピクセル単位ではなくマップチップ単位となる
各レイヤの深度を取得・設定する
dpメソッドは、各レイヤの深度を配列形式で返す
dp=メソッドは、各レイヤの深度を同一値で設定する
setDPsメソッドは、各レイヤの深度を別々に指定する
マップを表示されているかを示すフラグを取得・設定する
マップチップ単位の座標から、idxで示す対象のレイヤ上にあるマップチップコードを取得する
イベントの有無を判別するする際に使用する
マップで使用されているマップチップのピクセル数を返す
キャラクターのマップチップ上の座標を求める際に使用する
マップを実現する際に使用するメモリ領域を開放する