gameライブラリは現在、動作環境(-eオプション)が「exe」のときのみ使えます。 他の環境向けに使用するとコンパイルエラーになります。

 game@ChipInfo

マップチップを扱うクラスです。

 game@ChipInfo.backFriction



背景の摩擦係数のプロパティです。

var backFriction: float

 game@ChipInfo.flowX



横方向の流れの加速度のプロパティです。

var flowX: float

 game@ChipInfo.flowY



縦方向の流れの加速度のプロパティです。

var flowY: float

 game@ChipInfo.fluidFriction



流体の摩擦係数のプロパティです。

var fluidFriction: float

 game@ChipInfo.repulsion



衝突時の反発係数のプロパティです。

var repulsion: float

 game@ChipInfo.shape



マップチップの形状のプロパティです。

var shape: game@Shape

 game@ChipInfo.solidFriction



衝突時の摩擦係数のプロパティです。

var solidFriction: float

 game@Direction

方向を表す列挙型です。
名前説明
%bottom
%left
%none方向なし
%right
%top

 game@Map

マップチップが集まったマップを扱うクラスです。

 game@Map.find



マップチップを検索するメソッドです。

find(x: &int, y: &int, value: int): bool

xマップチップの座標Xを格納する変数
yマップチップの座標Yを格納する変数
value検索するマップチップ
戻り値見つかったらtrue、見つからなかったらfalse
複数存在した場合、Yが小さいものが優先されて、Yが同じならXが小さいものが優先されて返ります。
見つからなかった場合、xとyには-1が入り、falseが返ります。

 game@Map.get



マップチップを取得するメソッドです。

func get(x: int, y: int): int

x座標X
y座標Y
戻り値マップチップ
xやyがマップの範囲外だった場合、範囲内になるようにクランプして取得します。

 game@Map.set



マップチップを設定するメソッドです。

func set(x: int, y: int, value: int)

x座標X
y座標Y
valueマップチップ
xやyがマップの範囲外だった場合、何もせずにメソッドを抜けます。

 game@Rect

四角形クラスです。

 game@Rect.backFriction



背景の摩擦係数を適用するメソッドです。

func backFriction(backFriction_: float)

backFriction_背景の摩擦係数
backFriction_は速度に応じた割合で指定します。 0なら摩擦がなく、1なら停止するほどの摩擦になります。
複数適用された背景の摩擦係数のうち、最も強いものが採用されます。

 game@Rect.fluidFriction



流体の摩擦係数を適用するメソッドです。

func fluidFriction(fluidFriction_: float)

fluidFriction_流体の摩擦係数
fluidFriction_は速度をどれだけの割合維持するかで指定します。 0なら停止し、1なら摩擦がありません。
複数適用された流体の摩擦係数のうち、最も強いものが採用されます。

 game@Rect.height



四角形の高さのプロパティです。

var height: float

 game@Rect.hitBottom



四角形が下に衝突しているかどうかを取得するメソッドです。

func hitBottom(): bool

戻り値衝突していればtrue、衝突していなければfalse

 game@Rect.hitLeft



四角形が左に衝突しているかどうかを取得するメソッドです。

func hitLeft(): bool

戻り値衝突していればtrue、衝突していなければfalse

 game@Rect.hitRight



四角形が右に衝突しているかどうかを取得するメソッドです。

func hitRight(): bool

戻り値衝突していればtrue、衝突していなければfalse

 game@Rect.hitTop



四角形が上に衝突しているかどうかを取得するメソッドです。

func hitTop(): bool

戻り値衝突していればtrue、衝突していなければfalse

 game@Rect.move



四角形を速度に応じて移動させるメソッドです。

func move(maxVelo: float)

maxVelo最大速度。 0.0を渡すと無制限になる
maxVeloに0.0より大きい値を指定すると、速度がmaxVeloを超えないようにクランプされます。
このメソッドを呼ぶと衝突情報がリセットされます。 このメソッドを呼んだ後に、各種衝突関数を呼んでからupdateメソッドを呼ぶと、蓄積された衝突情報をもとに衝突判定が行われます。

 game@Rect.update



四角形の衝突を反映させるメソッドです。

func update()

moveメソッドを呼んでからこのメソッドを呼ぶまでに蓄積された衝突情報をもとに、衝突判定を行います。

 game@Rect.veloX



四角形の速度Xのプロパティです。

var veloX: float

 game@Rect.veloY



四角形の速度Yのプロパティです。

var veloY: float

 game@Rect.width



四角形の幅のプロパティです。

var width: float

 game@Rect.x



四角形の位置Xのプロパティです。

var x: float

 game@Rect.y



四角形の位置Yのプロパティです。

var y: float

 game@Roll

時刻に応じて出来事を起こすクラスです。

 game@Roll.proceed



時刻を進めるメソッドです。

func proceed(speed: float): bool

speed進める時刻
戻り値すべての出来事が発生したらtrue、まだ発生していない出来事が残っていたらfalse
時刻が進むことにより出来事が発生します。
発生条件ビルド例外コード
speedが0より小さいdbgのみ0xE9170006

 game@Roll.reset



時刻をリセットするメソッドです。

func reset()

すべての出来事も発生していない状態に戻ります。

 game@Shape

マップチップの形状を表す列挙型です。
名前説明
%none空白
%oneWayBottom下方向への一方通行
%oneWayLeft左方向への一方通行
%oneWayRight右方向への一方通行
%oneWayTop上方向への一方通行
%rect四角形
%triLeftBottom左下が斜辺の三角形
%triLeftTop左上が斜辺の三角形
%triRightBottom右下が斜辺の三角形
%triRightTop右上が斜辺の三角形

 game@hitMapRect

マップと四角形の衝突判定をする関数です。

func hitMapRect(map: game@Map, rect: game@Rect, chipInfoCallback: func<(int, game@ChipInfo)>, hitCallback: func<(int, int, game@Direction)>)

mapマップ
rect四角形
chipInfoCallbackマップチップの情報が返るコールバック関数
衝突した情報はrectに書き込まれ、rect.updateメソッドを呼び出すと反映されます。
マップチップと衝突があるたびchipInfoCallbackが呼び出されます。

chipInfoCallback


func 関数名(chip: int, info: game@ChipInfo)

chipマップチップの種類
infoマップチップの情報

 game@hitRectRect

四角形と四角形の衝突判定をする関数です。

func hitRectRect(rect1: game@Rect, rect2: game@Rect, weight1: float, weight2: float, repulsion: float, solidFriction: float): game@Direction

rect1四角形1
rect2四角形2
weight1四角形1の質量
weight2四角形2の質量
repulsion衝突時の反発係数
solidFriction衝突時の摩擦係数
戻り値衝突した方向
衝突した情報はrect1およびrect2に書き込まれ、rect1.updateおよびrect2.updateメソッドを呼び出すとそれぞれ反映されます。

 game@makeMap

マップをファイルから作成する関数です。

func makeMap(path: []char, chipWidth: float, chipHeight: float): game@Map

pathマップデータが書かれたファイル
chipWidth1つのマップチップの幅
chipHeight1つのマップチップの高さ
戻り値マップクラスのインスタンス
マップデータのファイルの書式は、カンマおよび改行区切りで先頭から順に「1行あたりのマップチップの個数w」「1列あたりのマップチップの個数h」「マップチップ(0,0)」「マップチップ(1,0)」「マップチップ(2,0)」…「マップチップ(w-1,0)」「マップチップ(0,1)」…「マップチップ(w-1,h-1)」です。 マップチップにはint型の任意の値が指定できます。
発生条件ビルド例外コード
pathのファイルが開けないdbgおよびrls0xE9170007

 game@makeMapEmpty

マップを空の状態で作成する関数です。

func makeMapEmpty(mapWidth: int, mapHeight: int, chipWidth: float, chipHeight: float): game@Map

mapWidth1行あたりのマップチップの個数
mapHeight1列あたりのマップチップの個数
chipWidth1つのマップチップの幅
chipHeight1つのマップチップの高さ
戻り値マップクラスのインスタンス
各マップチップの値は「0」に設定されます。

 game@makeRoll

時刻に応じて出来事を起こすクラスをファイルから作成する関数です。

func makeRoll(path: []char, rollCallback: func<(float, [][]char)>): @Roll

pathファイルパス
rollCallback出来事が発生するたびに呼ばれるコールバック関数
戻り値時刻に応じて出来事を起こすクラスのインスタンス
ファイルの書式は、カンマおよび改行区切りで先頭から順に「出来事の数(N)」「出来事1が発生する時刻」「出来事1のパラメータの数(M)」「出来事1のパラメータ1」…「出来事1のパラメータM」…「出来事Nが発生する時刻」「出来事Nのパラメータの数(M)」「出来事Nのパラメータ1」…「出来事NのパラメータM」です。 時刻はfloat、パラメータは[]char型で指定します。
発生条件ビルド例外コード
pathのファイルが開けないdbgおよびrls0xE9170007

rollCallback

このコールバック関数内に出来事の具体的な処理を書きます。

func 関数名(time: float, params: [][]char)

time出来事が発生することになっていた時刻
paramsパラメータの配列
1714152291jaf