WinmaX SPORTS AP2 LEXUS LS460・LS460L フロント用 【品番680】 型式USF40,41,45,46 年式06.08-


 >  > WinmaX SPORTS AP2 LEXUS LS460・LS460L フロント用 【品番680】 型式USF40,41,45,46 年式06.08-
このページはCOOL ONLINE終了に伴いO-Show様の許可を得て作成した16インチ サマータイヤ セット【クラウン(AZSH20 2.5L)】MANARAY ユーロスピード G10 メタリックグレー 6.5Jx16VEURO VE303 215/60R16のミラーサイトです
[ミシュラン LATITUDE Sport 3 サマータイヤ 225/65R17 KYOHO 共豊 STEINER FORCED SF-V ホイールセット 4本 17インチ 17 X 7 +55 5穴 114.3] [Profile] [NScripter] [BBS] [Links]
中級編 No.7
サブルーチン
■概要■
処理をまとめて書いておき、スクリプト中のどこからでもそれを呼び出して処理をさせることができる。

プログラミング的で楽しくて便利、それがサブルーチンです。


使用命令:

「gosub」(マニュアル 実行制御系 FE)
「return」(マニュアル 実行制御系 FE)
■サブルーチンとは

サブルーチンをするには「gosub」という命令を使いますが、これは「goto」命令と同じく指定したラベルに飛ばす命令です。

しかし、「gosub」でラベルに飛ばした場合は、「return」命令を使うことでその「gosub」を書いたところまで再び戻ってくることができます。


この、「飛ばし元のところに戻ってこれる」というのが重要で、こうすることによりラベルと「return」に囲まれた部分をを一つの処理の塊と見なすことができるようになります。

そして例えば、「スプライト○番と○番を非表示にして、○番を表示して、変数に数値を代入して、背景を変えて……」という処理が何度もスクリプト中で出てきた場合 【CUSCO】【クスコ】【ボディ補強パーツ】【パワーブレース/フロントメンバー】【TOYOTA】【トヨタ】【アルファード/ヴェルファイア】【型式 ANH25W/GGH25W】、それをまとめて書いておいて必要になったらgosubで呼び出すことにより、スクリプトを書くのを楽にすることができます。



■スクリプト

では、実際にスクリプトを見てみましょう。


gosub *set_kaiwa
gosub *set_botan_01
print 1
btnwait %0
......
*set_kaiwa
vsp 5,0
vsp 6,0
vsp 7,1
return
*set_botan_01
btndef "botan.jpg"
btn 1,10,10,50,50,0,0
btn 2,10,70,50,50,50,0
btn 3,10,130,50,50,100,0
return


「......」の部分は、単に続きを省略しているだけで、意味はありません。


このスクリプトは、まず「*set_kaiwa」ラベルに飛び、「vsp」命令の処理が終わったら再び上まで戻ってきて、そして次に「*set_botan_01」のラベルに飛ばし、ボタン定義を行い RMP/016F アルミホイール 1本 オデッセイ RB系 【17×7.0J 5-114.3 INSET55 ブラッシュドフィニッシュ】、また戻って来ています。

このように、何度もありそうな処理をまとめておくことができます。



■サブルーチンの注意点

gosubでサブルーチンを行った場合、必ずreturnで戻してください。

gosubで飛ばしたところからそのまま始めたり、gotoで違うところに飛んで始めたりすると 17インチ ラフィット LW-04 6.5J+53 5H-114.3 4本 エスクァイア アコード エスクアイア ノア ヴォクシー ラッシュ ブラック マシニング ポリッシュ ホイール、「スタック」と呼ばれるものを消費していってしまいます。gosubで飛ばされると、NScripterは飛ばしたことを覚えていなければならないからです。

フロント用 LS460・LS460L AP2 【品番680】 型式USF40,41,45,46 LEXUS 年式06.08- LEXUS WinmaX SPORTS 型式USF40,41,45,46


スタックは有限ですので、使い終わった画像を消去するように、スタックも戻してあげましょう。returnで元の場所に戻ることがスタックを戻すことになります。

そして何より、そういう書き方をしているとスクリプトが読みにくくなってしまって、結局書くのが楽ではなくなってしまいます。

これは特に重要なことなので、肝に銘じておいてください。



■サブルーチンからさらにサブルーチン

サブルーチンで飛んだラベルから、さらにサブルーチンで別のラベルに飛ぶことができます。

上でも言っているようにサブルーチンから別のところに飛ばしたり始めたりすることはいけないことですが 【30 プリウス アクティブモータリングスタイル】プリウス ZVW30 スマートエコグリル本体 単品 後期 メーカー塗装済品 塗装色:カーボン調 ボルトカラー:ブラック、サブルーチンの場合は別です。

なぜなら 、returnは一つ前の飛ばし元に戻ってくれるため、

WinmaX SPORTS AP2 LEXUS LS460・LS460L フロント用 【品番680】 型式USF40,41,45,46 年式06.08-
プロジェクトμ タイプPS リア左右セット ブレーキパッド ブルーバード PU13 R214 取付セット プロジェクトミュー プロミュー プロμ TYPE PS ブレーキパット【店頭受取対応商品】!ミシュラン エナジーセイバープラス サマータイヤ 205/60R16 KYOHO 共豊 スマック プライム バサルト SMACK BASALT 12月末迄 ホイールセット 4本 16インチ 16 X 6.5 +38 5穴 114.3.【個人宅配送不可】 [替え前幕のみ] パイプ車庫 678M MG 埋め込み式 ミニバンタイプ用 南栄工業 送料無料 【代引不可】,ACRE ブレーキパッド ■アクレ ライトスポーツ フロント 【品番:155】 日産 キャラバン・ホーミー DWGE24 97.5~99.6

WinmaX SPORTS AP2 LEXUS LS460・LS460L フロント用 【品番680】 型式USF40,41,45,46 年式06.08-

、二回飛んだら二回returnで戻れば元のところにもどってこれるからです。

このようにサブルーチンしていくことをプログラミングでは「ネスト化する」などと言ったりします。

きちんとgosubとreturnを一対一に対応させていれば、複数回ネスト化しても元に戻ってこれるはずなので問題ありません。ただし、やはり「スタック」は有限なのでネスト化する回数には限界があります。

マニュアルには明記されていませんが、1000回ぐらいネスト化できるようです。
(そんなにたくさんやることは恐らく無いと思いますが)



ネスト化のスクリプトを見てみましょう。


gosub *set_boutou
......
*set_boutou
gosub *set_kaiwa
gosub *set_window
return
*set_kaiwa
vsp 5,0
vsp 6,0
vsp 7,1
return
*set_window
setwindow 8,16,23,16,26,26,0,2,20,1,1,#999999,0,0,639,479
return


スクリプトの流れを追って行けば、必ず元の場所に戻れるはずです。


このスクリプトでは、「*set_kaiwa」と「*set_window」の二つの処理は独立しているため、単体で他のところから呼び出して利用することができます。
■総括■
gosubを利用すれば 【アクレ / acre】スリットタイプディスクローター フロント用・左右2枚セット AZワゴン MD12S などにお勧め 品番:7F005(SLT・Front) SLT ブレーキローター、まるで自分だけの命令を作っているようになります。

大変便利なので、

WinmaX SPORTS AP2 LEXUS LS460・LS460L フロント用 【品番680】 型式USF40,41,45,46 年式06.08-

、ぜひサブルーチンの使い方を習得してみてください。

WinmaX SPORTS AP2 LEXUS Cクラス LS460・LS460L フロント用 【品番680】 型式USF40,41,45,46 ダンロップ 年式06.08-


次へ   前へ   NScripterのIndexへ
goto *TOP
{yahoojp} {binaryheaven.ivory.ne.jp}
{yahoojp}jpprem01-zenjp40-wl-zd-45291