最終更新日 2024-09-25

数学関数

ScenarioModで特別に利用するための数学系関数がいくつか存在する。

数値が「0.5単位の目盛り」であると仮定して、そこへと数値を丸める関数

double round《二分の一吸着化》(double value)
void カスタム::On_プレイヤ担当ターン《メイン画面》() {

	double ret1 = round《二分の一吸着化》(1.77);

	デバッグ出力 << ret1 << endl;

	double ret2 = round《二分の一吸着化》(1.51);

	デバッグ出力 << ret2 << endl;

	double ret3 = round《二分の一吸着化》(-1.33);

	デバッグ出力 << ret3 << endl;
}
2.0
1.5
-1.5

2次元座標・2次元ベクトル

2D位置型
2Dベクトル型

これらは一般的な、vec2D、vector2D などと称されるような、各種言語でのライブラリと同じようなものであり、
ScenarioModで使いそうな範囲での「簡易版」と言える。

特別な関数として、ベクトルの方向を東西南北といった言葉に変換するための

string Get_8方位文字列(2Dベクトル型 v)
string Get_4方位文字列(2Dベクトル型 v)

といった関数が存在する。

城と城の位置関係や、戦争画面でのユニットとユニットの位置関係など、ベクトルの方向を言葉に直せるのは、
武将にセリフを言われる際に、便利に機能するだろう。

void カスタム::On_プレイヤ担当ターン《メイン画面》() {

	城グリッド位置型 pos1 = Get_城グリッド位置(城配列番号::春日山城);
	城グリッド位置型 pos2 = Get_城グリッド位置(城配列番号::小田原城);

	// 春日山 → 小田原へのベクトル
	城グリッドベクトル型 v城 = pos2 - pos1;

	2Dベクトル型 v汎(v城.X, v城.Y); // 城グリッドベクトル型から、汎用計算が可能な2Dベクトル型へ

	string str方向 = Get_8方位文字列(v汎);
	デバッグ出力 << str方向 << endl;
}

3次元座標・3次元ベクトル

3D位置型
3Dベクトル型

これらは一般的な、vec3D、vector3D などと称されるような、各種言語でのライブラリと同じようなものであり、
ScenarioModで使いそうな範囲での「簡易版」と言える。

ScenarioModでは、「3D効果音再生」関連で出てくる程度であるため、そちらを参照のこと。

より詳細を知るには...

「2D位置情報型」に関する主な所は以上となります。 詳しくは「2D位置情報型.h」「3D位置情報型.h」「補助ライブラリ.h」などを参照してください。