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