MSアドベンチャーSDK-コマンドレファレンス



5.2■ コマンド
5.2.31■ OnKey コマンド
5.2.32■ OnStall コマンド
5.2.33■ Performance コマンド
5.2.34■ Play コマンド
5.2.35■ Play_Video コマンド
5.2.36■ Precision コマンド
5.2.37■ Print コマンド
5.2.38■ Print_Time コマンド
5.2.39■ Rem コマンド
5.2.40■ Reset_Adventure コマンド
5.2.41■ Reset_Situation コマンド
5.2.42■ Return コマンド
5.2.43■ Scroll コマンド
5.2.44■ Set_Position コマンド
5.2.45■ South_Latitude コマンド
5.2.46■ Temperature コマンド
5.2.47■ Temperature, Delete コマンド
5.2.48■ Title コマンド
5.2.49■ Visibility コマンド
5.2.50■ Wait, Keypress コマンド
5.2.51■ Wait Message コマンド
5.2.52■ Weather コマンド
5.2.53■ Weather_Char コマンド
5.2.54■ West_Longitude コマンド
5.2.55■ While コマンド
5.2.56■ Winds コマンド
5.2.57■ Winds, Delete コマンド


5.2.31■ OnKey コマンド

ユーザーがkey-valueで指定されたキーを押した時にlabelにより指定された特別のサブルー
チンコールを行うことを指定します。

構文

OnKey key-value [GoSub label]

引数

key-value	Adv_Keysコマンドで定義された特定のkey値を指定します。
label		Labelコマンドで定義したラベル名を指定します。

参考

ラベルが指定されていない場合、Onkeyコマンドで指定されていたKey値はクリアされます。
OnKeyコマンドであるキーが横取りされている場合はWaitコマンドに対するキー押下には数
えられません。そして、有効なAdv_Keysリストがない場合は、フライトシミュレータに対す
るキー押下になりません。

Note: OnKeyコマンドはAdv_Keysで指定したキーであることが必要です。.

使用例

ADV_KEYS ADD, KV(CTRL "r")	'Restart adventure.
ADV_KEYS ADD, KV(CTRL "u")	'Quit, bail out of adventure.

ONKEY KV(CTRL "r") GOSUB subMKeys_r
ONKEY KV(CTRL "u") GOSUB subMKeys_u

subMKeys_r:

	PRINT "Restarting the current adventure."

	RESET_ADVENTURE

	RETURN

subMKeys_u:

	GOTO MAIN_END

	RETURN

MAIN_END:

	END



5.2.32■ OnStall コマンド

ユーザーの飛行機がストールした場合に特別のサブルーチンをコールする場合にそのラベル
名を指定します。

構文

OnStall [GoSub label]

引数
label名はLabelコマンドによって定義します。

参考

ラベル名が指定されなかった場合にはOnStall命令はクリアされます。

使用例

ONSTALL GOSUB subRecover

SubRecover:

	PRINT "Nose on the horizon, wings level, add power."

	RETURN



5.2.33■ Performance コマンド

APLインタープリターへのコールの頻度と一度のコールでいくつの命令を実行するかをセット
します。

構文

Performance keyword [command count]

引数
キーワードは以下の通りです。

LOW	1秒に1回。Invokes the interpreter once per second.
MEDIUM	1秒に6回Invokes the interpreter six times per second.
HIGH	1秒に18回Invokes the interpreter eighteen times per second.
FRAME	1フレーム毎に1回Invokes the interpreter between each frame.
DEFAULT	インタープリターに1秒に6回コールし、1コールで3コマンドを処理します。
(従って、1秒に18命令実行されます。)
command count	1コール毎のコマンド処理数を指定します。

参考

keyword がDEFAULTの時はcommand countを指定する必要はありません。

使用例

'Preferred setting for adventures.

PERFORMANCE HIGH 5



5.2.34■ Play コマンド

stringで指定された音声ファイルを再生します。

構文

Play string

参考

サウンドファイルはWindows標準の非圧縮の.wavフォーマットです。 .wavを指定してはいけ
ません。AdventuresとLessonsディレクトリーには各々 .wavサブディレクトリーがあります。
それぞれのサブディレクトリーが最初にサーチされADVWAV定義文字列で指定されたディレ
クトリーがこれに続きます。デフォルトではADVWAVE=ADV\WAVになっています。

PLAY ''''で再生は即座に停止されます。

使用例

'Plays the file: OH001.WAV.

PLAY "OH001"



5.2.35■ Play_Video コマンド

フライトシミュレータの .vidファイルを再生します。

構文

Play_Video string 

引数
stringはVideosディレクトリーのファイル名かパス付きのファイル名でなければなりません。

参考

ビデオの再生が終了するまでプログラムの実行は停止しています。

使用例

PLAY_VIDEO "Test.VID"



5.2.36■ Precision コマンド

Print and Scrollコマンドが使われた時に表示される数値の制度を制御します。

構文

Precision left, right-min, right-max

引数

left		表示する数値の小数点の左側の桁数を指定します。
		必要であれば0で埋めます。
right-min		表示する数値の小数点の右側の最低桁数を指定します。
		必要であれば0で埋めます。
right-max 	表示する数値の小数点の右側の最大桁数を指定します。

参考

デフォルト値はleft = 1, right-min = 0, right-max = 3でこれらの三つの値の最大値は
いずれも 9です。

以下の例はPrecisionに特定の設定した時に表示される結果を示します。

Value is 1, left=1, right-min=0, right-max=0, displays 1

Value is 1, left=1, right-min=0, right-max=2, displays 1

Value is 1, left=1, right-min=2, right-max=2, displays 1.00

Value is 1, left=3, right-min=0, right-max=0, displays 001

使用例

DECLARE iVAL

iVAL = 1.001

PRECISION 1, 0, 0

PRINT iVAL

Result: 1



5.2.37■ Print コマンド

メッセージウインドウへ出力します。

構文

Print print-list

引数
print-listは0またはそれ以上の項目です。各々の項目は文字列かコンマで仕切られた数式で
ある必要があります。もし、コンマで終っている時は次のPrintコマンドのテキストにコン
カチされます。(メッセージウインドウは新しいラインではなく、ラインの終わりに続きます。)

参考

複数の項目をコンマでコンカチした場合、各々のPrintコマンドはPrint_Timeコマンドによって
指定された表示時間を累積していきます。例えばPrint_Timeの値がデフォルトの5秒の時、
三つの別々のPrintコマンドは15秒表示されます。コンカチしたメッセージを出力する前に
Print_Timeの値を減らしたり、メッセージの後にWait_Messageコマンドを入れてメッセージ
の出力を待たせることにより増加させたりすることができます。

使用例

PRINT "Hello world."

PRINT "Hello world. ", "I am HAL."

DECLARE Test_Value

Test_Value = 123

PRINT "Test value is: ", Test_Value



5.2.38■ Print_Time コマンド

他のPrintやScrollコマンドによって中断されない場合に、Printコマンドによりメッセージを
表示する時間を指定します。

構文

Print_Time time

引数
timeは秒で指定します。デフォルトは5秒です。.

使用例

'Set the print time to 2 seconds.

PRINT_TIME 2

PRINT "Hello world."



5.2.39■ Rem コマンド

Remコマンドはコードにフルラインのコメントを付ける一つの方法です。BASICと同じ使い
方になります。Rem 以下の文字列は通常の文字列で引用符はキチンとつける必要があります。
それ以外の文法チェックは行われません。

構文

Rem comment

引数
commentはコメントテキストです。

使用例

REM This is a remark line. This line does not get executed.

'This is also a remark line. This line does not get executed.



5.2.40■ Reset_Adventure コマンド

実行中のアドベンチャーをリセットします。

構文

Reset_Adventure

使用例

ADV_KEYS ADD, KV(CTRL "r")	'Restart adventure.
ONKEY KV(CTRL "r") GOSUB subMKeys_r
subMKeys_r:

	PRINT "Restarting the current adventure."

	RESET_ADVENTURE

	RETURN



5.2.41■ Reset_Situation コマンド

シチュエーションをリセットします。

構文

Reset_Situation

使用例

Reset_Situation "FS98"



5.2.42■ Return コマンド

最後に実行されたGoSubコマンドに続く命令に復帰する。

構文

Return

使用例

GOSUB subTest

WHILE TRUE

	WAIT 1

ENDWHILE

SubTest:

	PRINT "I'll wait until you do something."

	RETURN



5.2.43■ Scroll コマンド

ScrollコマンドはPrintコマンドににていますがメッセージを一度に表示する替わりにメッ
セージウインドウ内を水平に移動させます。

構文

Scroll print-list

引数
print-listは0またはそれ以上の項目です。各々の項目は文字列かコンマで仕切られた数式で
ある必要があります。もし、コンマで終っている時は次のPrintコマンドのテキストにコン
カチされます。
(メッセージウインドウは新しいラインではなく、ラインの終わりに続きます。)

参考
Scrollコマンドは内部に400文字分のバッファーを持っています。コンマで終る一連の
Scroll文字列は400字以内である必要があります。スクリーンから出ていった文字はバッ
ファーからすぐに消去されます。 新しいScrollコマンドが実行された時にバッファーが
空でなければ、バッファーが空になるまで、Scrollコマンドの実行は停止されます。
これにより、メッセージテキストは一つのロジカルなScrollコマンドに結合できますが、
論理的に分けられたメッセージはコンマを付けないことにより別々に表示させること
もできます。
使用例

SCROLL "Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7", "Test8", "Test9"



5.2.44■ Set_Position コマンド

ユーザーの飛行機を指定された地上の位置に置きます。

構文

Set_Position latitude, longitude, altitude

引数
latitudeとlongitudeは度でaltitudeはフィートで示します。

使用例

'Set the airplane position to runway 18 at Meigs.

NORTH_LATITUDE

WEST_LONGITUDE

SET_POSITION 41:51:57.4981, 087:36:27.1326, 593



5.2.45■ South_Latitude コマンド

緯度を南緯で指定する宣言です。負で指定した時は北緯となります。

構文

South_Latitude

使用例

'Australia

SOUTH_LATITUDE

EAST_LONGITUDE

'Chile

SOUTH_LATITUDE

WEST_LONGITUDE



5.2.46■ Temperature コマンド

最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアに温度の
レイヤを設置したり変更したりします。

構文

Temperature layer, altitude, temp, range

引数
layer		レイヤーナンバーを指定します。
altitude		高度(MSL)をフィートで指定します。
temp		温度を摂氏で指定します。
range		昼夜の温度変化を摂氏で指定します。0と指定した時には昼夜の温度変化
		はありません。

Note: 昼夜の温度変化は全体に適用されます。この場合最新のレイヤーで指定した温度変化
が全体に適用されます。

使用例

TEMPERATURE 1, 33000, -40, 0



5.2.47■ Temperature, Delete コマンド

最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアの温度のレイ
ヤを削除します。

構文

Temperature layer, Delete

引数
Layerはレイヤー番号です。

使用例

TEMPERATURE 1, DELETE



5.2.48■ Title コマンド

ファイルヘダーのアドベンチャーのタイトルを指定します。タイトルは最大60文字です。
構文

Title string

使用例

TITLE "APLC sample code."



5.2.49■ Visibility コマンド

最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアの視界を
セットします。

構文

Visibility distance

引数
distanceはマイルで指定します。

参考

天候ダイアログボックスのビジビリティボックスは雷雲が指定されている時、または雲層
が指定されていない時には開きません。

使用例

VISIBILITY 50



5.2.50■ Wait, Keypress コマンド

特定のキーが押されるか、指定された時間(または両方で)アドベンチャーを停止します。
構文

Wait time, keypress

引数

time		アドベンチャーの停止時間を秒で指定します。
keypress	指定されたキーが押される事によりアドベンチャーを停止します。

参考

time 及び keypress 指定は両方共オプションです。但し、どちらかは指定する必要があり
ます。時間のみを指定した場合はどのキーが押されてもアドベンチャーは一定時間停止し
ます。keypressのみを指定した場合はユーザーがそのキーを押すまでアドベンチャーは
停止します。両方を指定した時には、アドベンチャーはキーが押されるか一定時間が経過
するいずれかの条件が満たされるまで停止します。

keypressを指定した場合、WaitはKey変数を押されたキーの値に変更するか制限時間が経過す
ると0に更新します。Wait 0, keypressを使用することにより、通常のプログラム実行中
にキーが押されたかチェックすることができます。keypressを指定していない時には
the Key変数はユーザーがキーを押した時には更新されますが、ユーザーがキーを押さな
かった時にはクリアされません。その結果、Keypressのない、一連のWaitコマンドを発行
した後、Key変数をチェックすることで、一連の動きの中でユーザーがキーを押したか
どうかをチェックすることができます。

Note: WaitコマンドはAdv_Keysによって指定されたキーしか使用できません。

使用例

WAIT 10

ADV_KEYS ADD, KV(CTRL "r")

WAIT 15, KEYPRESS



5.2.51■ Wait Message コマンド

最新のPrintコマンドやScrollコマンドによるスクリーンへのメッセージの表示が完了する
まで、プログラムの実行を停止します。

構文

Wait Message

使用例

SCROLL "Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7", "Test8", "Test9"

WAIT MESSAGE



5.2.52■ Weather コマンド

新しいフライトシミュレータの天候エリアの定義を開始します。

構文

Weather name, lat1, lon1, lat2, lon2

引数
name		天候エリアの名前を255文字までで指定します。
lat1, lon1	天候エリアの角の部分の緯度経度を指定します。
lat2, lon2	天候エリアの角の部分の緯度経度を指定します。

これ以外の天候エリアの位置の詳細は Weather_Charコマンドで定義します。

使用例

WEATHER "Jetstream", 34:00:00, 114:00:00, 41:00:00, 076:00:00



5.2.53■ Weather_Char コマンド

Weatherコマンドによって定義されたフライトシミュレータの天候エリアの位置と動きを
セットします。

構文

Weather_Char width, transition, course, speed

引数
width		天候システムの巾をマイルで指定します。
		(The Weatherコマンドは指定された巾の中心を通る開始点と終了点を示
		します。)
transition		天候システムの端で変化する部分の長さをマイルで指定します。
course		天候システムが動いている方向を磁気方位を用いて角度で指定します。
speed		天候システムが動いているスピードをノットで指定します。

使用例

WEATHER_CHAR 200,0,0,0



5.2.54■ West_Longitude コマンド

経度を西経で指定する宣言です。負で指定した時は東経となります。

構文

West_Longitude

使用例

'Canada

NORTH_LATITUDE

WEST_LONGITUDE

'Chile

SOUTH_LATITUDE

WEST_LONGITUD



5.2.55■ While コマンド

一般ループです。Whileコマンドは条件式が偽になるとマッチするEndWhileまで分岐します。

構文

While expression

使用例

WHILE PLANE_BANK > 5

	PRINT "Turning left."

ENDWHILE



5.2.56■ Winds コマンド

最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアの風の層を
作成したり変更したりします。

構文

Winds layer, base, top, type, direction, speed, turbulence

引数
layer		レイヤー番号を指定します。
base		風のレイヤーの底の高度(MSL)をフィートで指定します。
top		風のレイヤーの頂上の高度(MSL)をフィートで指定します。
type		風にタイプを"Steady"又は"Gusty"で指定します。
direction		風の向きを磁気方位を用いて角度で指定します。
speed		風速をノットで指定します。
turbulence	タービュランスファクターを0から255までで指定します。

使用例

WINDS 1, 31000, 39000, steady, 240, 110, 5



5.2.57■ Winds, Delete コマンド

最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアの風の層
を削除します。

構文

Winds layer, Delete

引数
layer はレイヤー番号です。

使用例

WINDS 1, DELETE



Last Update 1999/1/7