FS2000 APL SDK Commands



■コマンド
 Adv_Keys コマンド
 Assignment ステートメント
 Debug_Window コマンド
 Debug_Print コマンド
 Declare コマンド
 Description コマンド
 East_Longitude コマンド
 Else Command コマンド
 ElseIf...[Then] コマンド
 End コマンド
 EndIf コマンド
 EndWhile コマンド
 For...To コマンド
 GoSub コマンド
 GoTo コマンド
 If...[Then] コマンド
 Label コマンド
 Load_Situation コマンド
 Next コマンド
 North_Latitude コマンド
 On...GoSub コマンド
 On...GoTo コマンド
 OnCrash コマンド
 Onexp_Bool_Change...GoSub コマンド
 Onexp_Change...GoSub コマンド
 Onexp_Clear コマンド
 Onexp_True...GoSub コマンド
 OnKey コマンド
 OnStall コマンド
 Performance コマンド
 Play コマンド
 Play_Video コマンド
 Precision コマンド
 Print コマンド
 Print_Time コマンド
 Rem コマンド
 Reset_Adventure コマンド
 Reset_Situation コマンド
 Return コマンド
 Scroll コマンド
 Set_Position コマンド
 South_Latitude コマンド
 Title コマンド
 Wait, Keypress コマンド
 Wait Message コマンド
 Wait Play コマンド
 West_Longitude コマンド
 While コマンド




■コマンド

Adv_Keys コマンド

Adv_Keysコマンドはアドベンチャーによって使用されるキーリストを制御します。リスト
にあるキーはアドベンチャー内で使用できますが、フライトシミュレータでは有効ではあ
りません。リストにないキーはアドベンチャー内で有効ではありません。

OnKeyコマンドで使用するつもりのキーはAdv_Keysコマンドで登録しておく必要があります。

構文

Adv_Keys Add, key, ... 

キーリストに追加するキーを指定します。(複数指定も可)すでにリストにあるキーは無視さ
れます。

Adv_Keys Delete, key, ... 

キーリストから削除するキーを指定します。(複数指定も可)リストにないキーに対する指定
は無視されます。

Adv_Keys Clear

キーリストから全てのキーを削除します。 

使用例

ADV_KEYS ADD, KV(CTRL "r")

ADV_KEYS DELETE, KV(CTRL "r")

ADV_KEYS CLEAR

次の例の中でkeyと書かれている部分はKey値になります。構文上オプションは括弧[ ]で示さ
れています。

KV([CTRL] [SHIFT] "")

上記の例で以下の値がsingle characterの替わりに使用できます。 
KEYPAD0, KEYPAD1, KEYPAD2, KEYPAD3, KEYPAD4, KEYPAD5, KEYPAD6, KEYPAD7, KEYPAD8, KEYPAD9, 
KEYPADPERIOD, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12


Assignment ステートメント

変数 = 値。変数に特定の値を入れる。

使用例
DECLARE TargetAltitude
TargetAltitude = 500


Debug_Window コマンド

デバッグウインドウのオン、オフを行います。このコマンドで、アドベンチャーやレッスン
実行中にDEBUG_PRINT文の出力が別のウィンドウに表示されます。
なお、見たい変数についてはソースコード中に必ずDEBUG_PRINT文を入れておかないといけま
せん。

構文

Debug_Window on | off

on パラメータによりデバッグウインドウが開かれ、off パラメターにより閉じられます。
デフォルトはDebug_Window OFFです。

使用例

DEBUG_WINDOW ON


Debug_Print コマンド

デバッグウインドウへプリント出力する。

構文

Debug_Print print-list

引数
print-list は0又はそれ以上の項目で各々の項目はコンマで区切られた文字列または数値で表
します。コマンドの最後がコンマで終った場合はそのテキストは次のPrintコマンドにコンカ
チされます。(メッセージウインドウ上、改行は行われず、最後の行の続きに表示されます。)
詳しい説明はPrint コマンドを参照して下さい。

使用例

'飛行機の高度をデバッグウインドウに出力する
DEBUG_PRINT PLANE_ALT


Declare コマンド

後続で使用する特定の名前の新しい変数を一つまたは複数作成します。

構文

Declare variable, variable, ... 

引数
variableの名前は文字で始まり文字、数字、アンダースコアが使用できます。

使用例

DECLARE TargetAltitude, actual_alt, Current_Alt1


Description コマンド

アドベンチャーファイルのヘダーに記入するアドベンチャーの内容説明を指定します。この
内容説明はアドベンチャーとレッスンのダイアログボックスに表示されます。

構文

Description string

引数
stringはファイルヘダーに含まれることになる内容説明で、最大で255文字までです。複数行
の内容説明の場合にコンパイラーが各行に付加するスペースを含みます。

参考
Descriptionコマンドは制限文字数に達するまで、何回でも使用できます。
複数のDescriptionコマンドが使用された場合、各文字列の最後にスペースが自動的に追加さ
れます。このスペースも最大文字数にカウントされます。

使用例

DESCRIPTION "This is line one." 

DESCRIPTION "This is the second line." 

結果: This is line one. This is the second line. 


East_Longitude コマンド

経度を東経で指定する宣言です。負で指定した時は西経となります。
このコマンドは、レッスンやアドベンチャーが赤道や正子午線(又は180度線)を越える時がな
い場合に有効です。正の値となるので緯度経度の計算を行なう時に楽になります。

Note: デフォルトではNorth_LatitudeとWest_Longitudeになります。それ以外の場合は緯度、
経度変数を使用する前に指定しなければなりません。

構文

East_Longitude

使用例

'Turkey

NORTH_LATITUDE

EAST_LONGITUDE

'Australia

SOUTH_LATITUDE

EAST_LONGITUDE


Else Command コマンド

条件による実行です。Ifコマンドとマッチし、以前のElseIfコマンドが条件を満たさず、IFコ
マンドの引数が0でない場合は、次にマッチするElseIf、 Else、 EndIfまで Elseの後続のコマ
ンドが実行されます。

構文

ElseIf 条件 [Then] 

キーワードThenはオプションです。 

使用例

IF PLANE_ALT > 3000 THEN
	PRINT "Altitude is greater than 3,000." 
ELSEIF PLANE_ALT > 2000 THEN
        	PRINT "Altitude is greater than 2,000." 
ELSEIF PLANE_ALT > 1000
        	PRINT "Altitude is greater than 1,000." 
ELSE
        	PRINT "Altitude is less than 1,001." 
ENDIF


ElseIf...[Then] コマンド

後続の命令を条件付きで実行します。Ifコマンドとマッチし、以前のElseIfコマンドが条件
を満たさず、IFコマンドの引数が0でない場合は、次にマッチするElseIf、 Else、 EndIf
まで Elseの後続のコマンドが実行されます。

構文

ElseIf 条件 [Then] 

キーワードThenはオプションです。 

使用例

IF PLANE_ALT > 3000 THEN
	PRINT "Altitude is greater than 3,000." 
ELSEIF PLANE_ALT > 2000 THEN
        PRINT "Altitude is greater than 2,000." 
ELSEIF PLANE_ALT > 1000
        PRINT "Altitude is greater than 1,000." 
ELSE
        PRINT "Altitude is less than 1,001." 
ENDIF


End コマンド

アドベンチャーの論理的な終了マークです。Endコマンドが実行された時にはアドベンチャー
ドライバーはプログラムの最終に達した時と同様、実行を終了します。

構文

End

使用例

IF PLANE_ALT > 4000 THEN

	END

ELSE

	PRINT "Altitude is less than 4,001." 

ENDIF


EndIf コマンド

If構造の終了マークです。 

構文

EndIf

使用例

IF PLANE_ALT > 3000

	PRINT "Altitude is greater than 3,000." 

ENDIF


EndWhile コマンド

一般ループです。EndWhileコマンドはマッチするWhileに対し無条件で戻ります。

構文

EndWhile

使用例

WHILE PLANE_BANK > 5

	PRINT "Turning left." 

ENDWHILE


For...To コマンド/A>

繰り返しループです。For...To コマンドが含まれる行に続く行がマッチするNext
コマンドまで実行されます。 繰り替えし実行される回数は変数がexpression1から
expression2までの間でexpression3は増分です. 

構文

For variable = expression1 To expression2 [By expression3] 

引数

expression1     ループが開始される時の数を指定します。
expression2     ループが終了する時の数を指定します。
expression3     増分を指定します。これはオプションで指定されない時はデフォルトの
                増分は1になります。

参考

もし、expression1がexpression2より大きく、且つexpression3が負でない場合、
For...To.....Nextの間のコードは実行されません。ループが始まった時、expression2
とexpression3は一度だけ評価され、ループ中の変数の値の変更はループそれ自身
には影響を与えません。
BASICとの互換性維持の為にByの替わりにStepをつかっても構いません。

使用例

DECLARE Test_Value

'This example will print 2, 3, 4, 5, 6, 7, 8, 9, 10. 

FOR Test_Value = 2 TO 10

	PRINT "Test value = ",Test_Value

NEXT Test_Value

'This example will print 2, 4, 6, 8, 10. 

FOR Test_Value = 2 TO 10 BY 2

	PRINT "Test value = ",Test_Value

NEXT Test_Value

'This example will print 5, 4, 3, 2, 1. 

FOR Test_Value = 5 TO 1 BY -1

	PRINT "Test value = ",Test_Value

NEXT Test_Value


GoSub コマンド

サブルーチンをコールします。GoSubコマンドが使用された時には、特定のラベルのついた
部分まで飛び、Returnコマンドがでてくるまで、それが実行されます。 Returnコマンドが出
てきた所で、Gosubに続く所に実行ポイントが戻ります。

構文

GoSub label

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

参考

サブルーチンは50段階までのネストが認められます。

使用例

'もし、飛行機の高度が5000以上の時にはprint文が実行され、その後、END文が実行される。

IF PLANE_ALT > 5000 THEN

        GOSUB subAlt_5K

ENDIF

END

subAlt_5K: 

        PRINT "Altitude is greater than 5,000." 

        RETURN


GoTo コマンド

特定のラベルへの即時分岐コマンドです。

構文

GoTo label

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

参考

Goto以外の制御構造が望ましいですが、いくつかのタスクはGotoコマンドでないと実現で
きません。例えば、大きなエラーが発生した時、アドベンチャーを終了させるのに
GoTo MAIN_ENDコマンドを使用することができます。しかしながら、複数のGotoコマンド
を使用するとコードをトレースすることが困難になります。

使用例

'もし、飛行機の高度が5000以上であれば、END文をスキップしてPRINT文を実行し6000かど
うかをチェックします。

IF PLANE_ALT > 5000 THEN

        GOTO subAlt_5K

ENDIF

END

subAlt_5K: 

        PRINT "Altitude is greater than 5,000." 

IF PLANE_ALT = 6000 THEN

        PRINT "Aircraft altitude equals 6,000." 

ENDIF


If...[Then] コマンド

後続の命令を条件付きで実行します。条件文が0でなければ、If...[Then] コマンドは後続の
コマンドをマッチするElseIf, Else, EndIfがある部分まで実行します。

構文

If expression [ Then ] 

キーワードThenはオプションです。 

使用例

'この二つは同じ内容になります。

IF PLANE_ALT = 6000 THEN

        PRINT "Aircraft altitude equals 6,000." 

ENDIF

IF PLANE_ALT = 6000

        PRINT "Aircraft altitude equals 6,000." 

ENDIF


Label コマンド

GoTo, GoSub, OnCrash GoSub等のコマンドが分岐すべきコード中のマーカーを指定します。
GoSubのないOnCrashコマンドはlabelを使用する必要はありません。コマンドによっては
ラベル名が異なっていても、一種類のラベル名しか許容しないものがあります。

構文

Label : 

参考

・ラベル名は文字で始まり文字、数字、アンダースコアが使用できます。 
・ラベル名はユニークでなければなりません。但し、ラベル名と変数名は同じ名前が使用で
   きます。
・ラベルはGoto命令の前でも後でもどこにでも置くことができます。

使用例

'MAIN_PRINTというラベルをGotoコマンドの後に置いたケース。 
GOTO MAIN_PRINT
MAIN_PRINT:
	PRINT "Watch your altitude."

'GOTO命令をMAIN_PRINTというラベルの後に置いたケース 
MAIN_PRINT:
	PRINT "Watch your altitude."
GOTO MAIN_PRINT


Load_Situation コマンド

stringによって指定されたフライトファイル(.FLT)をロードします。FS2000は最初にカレン
トディレクトリーをサーチし、その後\situatioディレクトリーをサーチし、その後、\pilots
ディレクトリーをサーチします。(FS98との下方互換性を維持する為、シチュエーションファイ
ル(.STN)もロードしますが、新しいアドベンチャーには.FLTファイルを使用して下さい。)

構文

Load_Situation string

引数
stringにシチュエーションファイルを指定します。

使用例

'FS2000のデフォルトシチュエーションをロードします。

LOAD_SITUATION "FS2000"


Next コマンド

Forループの終了マークです。

構文

Next variable

引数
variableはオプションです。指定した場合はForコマンドで指定した変数と同じでないといけ
ません。

使用例

DECLARE Test_Value

'This example will print 1, 2, 3, 4, 5.

FOR Test_Value = 1 TO 5

        PRINT "Test value = ",Test_Value

NEXT Test_Value


North_Latitude コマンド

緯度を北緯で指定する宣言です。負で指定した時は南緯となります。
このコマンドは、レッスンやアドベンチャーが赤道や正子午線(又は180度線)を越える時がな
い場合に有効です。正の値となるので緯度経度の計算を行なう時に楽になります。

Note: デフォルトではNorth_LatitudeとWest_Longitudeになります。それ以外の場合は緯度、
経度変数を使用する前に指定しなければなりません。

構文

North_Latitude

Example

'Canada

NORTH_LATITUDE

WEST_LONGITUDE

'Turkey

NORTH_LATITUDE

EAST_LONGITUDE


On...GoSub コマンド

条件文を評価し、整数に置き換えます。結果が0であればGoSubでlabel0を実行し、1であれば
label1を実行するという具合です。

構文

On expression GoSub label0, label1, ...

引数
labelパラメータはLabelコマンドによって定義します。

参考

もし、値が0より小さいかラベルの数と等しいか大きい場合、サブルーチンコールは行われず、
後続の命令が実行されます。この場合はエラーにはなりません。

使用例

DECLARE iSeg

FOR iSeg = 0 TO 3

        ON iSeg GOSUB subSeg0, subSeg1, subSeg2, subSeg3

NEXT iSeg

SubSeg0:

        'Some code...

        RETURN

SubSeg1:

        'Some code...

        RETURN

SubSeg2:

        'Some code...

        RETURN

SubSeg3:

        'Some code...

        RETURN


On...GoTo コマンド

条件文を評価し、整数に置き換えます。結果が0であればlabel0に分岐し、1であればlabel1に
分岐するという具合です。

構文

On expression GoTo label0, label1, ...

引数 
labelパラメータはLabelコマンドによって定義します。

参考

もし、値が0より小さいかラベルの数と等しいか大きい場合、分岐は行われず、後続の命令
が実行されます。この場合はエラーにはなりません。

使用例

DECLARE iSeg

FOR iSeg = 0 TO 3

        ON iSeg GOTO subSeg0, subSeg1, subSeg2, subSeg3

NEXT iSeg

SubSeg0:

        'Some code...

SubSeg1:

        'Some code...

SubSeg2:

        'Some code...

SubSeg3:

        'Some code...


OnCrash コマンド

ユーザーの機体がクラッシュした時にフライトシミュレータの通常のクラッシュ時の扱いと
異なる特別の取り扱いを行いたい場合に、特別のサブルーチンコールのラベル名を指定します。

構文

OnCrash [GoSub label]

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

参考

GoSub labelを指定しなかった場合はOnCrashコマンドは取り消され、フライトシミュレータ
の通常のクラッシュ時の扱いとなります。

使用例

ONCRASH GOSUB subBent

SubBent:

        PRINT "You really bent the airplane this time."

        RETURN


Onexp_Bool_Change...GoSub コマンド

イベントリストに後続のイベントを追加します。また、条件が偽から真に変わった時に
label1がコールされます。label2が指定された時には条件が真から偽に変わった時にコール
されます。イベント起動コマンドとどれだけ頻繁にインタープリターが条件判断を行うか
はイベント起動プログラミングの項目を参照して下さい。

構文

Onexp_Bool_Change expression GoSub label1, [label2]

使用例

ONEXP_BOOL_CHANGE ON_GROUND GOSUB subON_GRND, subAirborne 

subON_GRND:

        PRINT "Nice landing."

        RETURN

SubAirborne:

        PRINT "Now you are flying."

        RETURN


Onexp_Change...GoSub コマンド

イベントリストに後続のイベントを追加します。また、条件が新しい値に変わった時に
labelがコールされます。イベント起動コマンドとどれだけ頻繁にインタープリターが条件
判断を行うかはイベント起動プログラミングの項目を参照して下さい。

構文

Onexp_Change expression GoSub label

使用例

ONEXP_CHANGE ADF_FREQ GOSUB subADF_Chng

subADF_Chng:

        ONEXP_CLEAR subADF_Chng

        PRINT "Tune the ADF to 362 for the LOM."

        RETURN


Onexp_Clear コマンド

イベントリストからそのlabelを参照するイベントを削除します。labelが指定されない場合は
全てのイベントをイベントリストから削除します。

構文

Onexp_Clear [label]

使用例

ONEXP_TRUE ON_GROUND GOSUB subON_GRND 

subON_GRND:

        'Clears the event so it only is triggered once.

        ONEXP_CLEAR subON_GRND

        PRINT "Nice landing."

        RETURN



Onexp_True...GoSub コマンド

イベントリストに後続のイベントを追加します。また、条件が偽でない場合、label1がコール
されます。label2が指定されている場合、条件が偽の場合にコールされます。イベント起動コ
マンドとどれだけ頻繁にインタープリターが条件判断を行うかはイベント起動プログラミング
の項目を参照して下さい。

構文

Onexp_True expression GoSub label1, [label2]

使用例
DECLARE iAlt_Time
' The user aircraft should be at 5,000 feet. If it is outside
' the range of 4,800 to 5,200 a reminder message will print every 15
' seconds. Once the aircraft is within the range of 4,900 to 5,100 feet
' the message will stop and the command reset.

ONEXP_TRUE NOT INRANGE(PLANE_ALT, 4800, 5200) GOSUB subAlt_Msg,

subAlt_Reset
' Additional code as required for other operations

subAlt_Msg:
' Prints the check altitude message and sets timer for 15 more seconds

IF ELAPSED_TIME > iAlt_Time
	PRINT "Check your altitude."
	iAlt_Time = ELAPSED_TIME + 15
ENDIF
RETURN

subAlt_Reset:
' Stops message printing and resets the command
' when within the range of 4,900 and 5,100 feet.
IF INRANGE(PLANE_ALT, 4900, 5100) THEN
	iAlt_Time = 0
ENDIF
RETURN


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


OnStall コマンド

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

構文

OnStall [GoSub label]

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

参考

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

使用例

ONSTALL GOSUB subRecover

SubRecover:

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

        RETURN


Performance コマンド

APLインタープリターへのコールの頻度と一度のコールでいくつの命令を実行するかをセット
します。多数の変数を頻繁に監視している様な場合はPerformanceをHIGHにセットすると良い
でしょう。この場合、フレームレートの減少等アプリケーション全体のパフォーマンスとの
トレードオフになります。通常はデフォルト値のままが適当です。

構文

Performance keyword [command count]

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

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

参考

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

使用例

'Preferred setting for adventures.

PERFORMANCE HIGH 5


Play コマンド

stringで指定された音声ファイルを再生します。音声ファイルはWindows圧縮形式か非圧縮の.WAV
形式である必要があります。拡張子.WAVを指定する必要はありません。また、相対パスを指定する
事ができます。

構文

Play string

参考

AdventuresとLessonsディレクトリーには各々 .wavサブディレクトリーがあります。
それぞれのサブディレクトリーが最初にサーチされ、それ以降は以下に順番で探します。

1. .\WAV
2. \ADV\WAV
3. \ADV\WAV\CACHE
4. FS2000.CFG の [APL] section, WAVE= valueで指定されたディレクトリー
5. FS2000のルートから下位の全てのサブディレクトリー


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

使用例

'Plays the file: OH001.WAV.

PLAY "OH001"

'Plays the file: ADDON\WAV\OH001.WAV under the \FS2000 root.

PLAY "ADDON\WAV\OH001"


Play_Video コマンド

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

構文

Play_Video string 

引数
stringは.vidファイルが入っているディレクトリー内のファイル名です。(デフォルトではFS2000の
.vidファイルは\Pilotsサブディレクトリーに入っています。) このstringには.vidファイルのファ
イル名にフルパスをつけても構いません。

参考

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

使用例

PLAY_VIDEO "Test.VID"


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


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


Print_Time コマンド

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

構文

Print_Time time

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

使用例

'Set the print time to 2 seconds.

PRINT_TIME 2

PRINT "Hello world."


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.


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


Reset_Situation コマンド

現在のフライトファイルをリセットします。これはFlightメニューからReset Flightを選んだのと
同じ効果があります。

構文

Reset_Situation

使用例

Reset_Situation


Return コマンド

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

構文

Return

使用例

GOSUB subTest

WHILE TRUE

        WAIT 1

ENDWHILE

SubTest:

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

        RETURN


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"


Set_Position コマンド

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

構文

Set_Position latitude, longitude, altitude

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

使用例

'Set the airplane position to runway 18 at Meigs.

NORTH_LATITUDE

WEST_LONGITUDE

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


South_Latitude コマンド

緯度を南緯で指定する宣言です。負で指定した時は北緯となります。
このコマンドは、レッスンやアドベンチャーが赤道や正子午線(又は180度線)を越える時がな
い場合に有効です。正の値となるので緯度経度の計算を行なう時に楽になります。

Note: デフォルトではNorth_LatitudeとWest_Longitudeになります。それ以外の場合は緯度、
経度変数を使用する前に指定しなければなりません。

構文

South_Latitude

使用例

'Australia

SOUTH_LATITUDE

EAST_LONGITUDE

'Chile

SOUTH_LATITUDE

WEST_LONGITUDE


Title コマンド

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

構文

Title string

使用例

TITLE "APLC sample code."


Wait, Keypress コマンド

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

Wait time, keypress

引数

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

参考

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

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

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

使用例

WAIT 10

ADV_KEYS ADD, KV(CTRL "r")

WAIT 15, KEYPRESS


Wait Message コマンド

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

構文

Wait Message

使用例

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

WAIT MESSAGE


Wait Play コマンド

キューにある全ての音声ファイルの再生が完了するまで、プログラムの実行を停止します。

構文

Wait Play

使用例

'Plays the file: OH001.WAV and waits until it finishes.

PLAY "OH001"

WAIT PLAY


West_Longitude コマンド

経度を西経で指定する宣言です。負で指定した時は東経となります。
このコマンドは、レッスンやアドベンチャーが赤道や正子午線(又は180度線)を越える時がな
い場合に有効です。正の値となるので緯度経度の計算を行なう時に楽になります。

Note: デフォルトではNorth_LatitudeとWest_Longitudeになります。それ以外の場合は緯度、
経度変数を使用する前に指定しなければなりません。

構文

West_Longitude

使用例

'Canada

NORTH_LATITUDE

WEST_LONGITUDE

'Chile

SOUTH_LATITUDE

WEST_LONGITUD


While コマンド

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

構文

While expression

参考

APLアドベンチャーやレッスンでWhileコマンドを使って以下の様な永久ループができる事がありま
す。 

WHILE TRUE

ENDWHILE

使用例

WHILE PLANE_BANK > 5

        PRINT "Turning left."

ENDWHILE




BACK TO MAIN INDEX BACK TO SDK INDEX
Last Update 2000/2/18