突然ですが当ページ管理人(元チュートリアル製作者)はターボ車が大好きです。
それも今時の優等生じゃなくて、低圧縮エンジン高ブーストのドッカンターボが大好きです。
今回はそんなドッカンターボを表現してみたいと思います。

まずはfile前回作ったテキスト(リンク切れ中)をメモ帳で開いてみて下さい。

Val
{
Handle(default=0,min=-20,max=20,step=5)
Engine(default=0,min=-2500,max=2500,step=2500)
wing(default=-0,min=-60,max=-0,step=0)
tb(default=0.6,min=0.6,max=3,step=0.05)		//ターボ係数
Engine2(default=0,min=-10000,max=10000,step=0)	//ターボエンジン出力
}

tbはターボ係数、Engine2はターボ係数を掛けたあとのエンジン出力に使う予定です。

		S:Chip(){						//6:  1の南側にチップ
			W:Frame(){				//7-1: 6の西側にフレーム
				W:Wheel(angle=90,power=engine2){	//8-1: 7-1の西側にホイール、90度曲げる
				}
			}
			E:Frame(){				//7-2: 6の東側にフレーム
				E:Wheel(angle=90,power=-engine2){	//8-2: 7-1の東側にホイール、90度曲げる
				}
			}
		}

タイヤの出力もEngine2に変えておきます。

さて、今回の主題のIFを使います。
IFというのは条件分岐の命令で、IFの後ろに書かれた条件が満たされれば、{}内の命令を実行します。
条件が満たされなければ、何事もなくスルーされます。

script
{
V=_VZ(0)			//変数Vにチップ番号0の前後方向の速度を代入する
wing=V*2			//変数wingにVの2倍を代入する
if _abs(V)>5 { tb=3 }	//Vの絶対値が5を超えていれば、tbに3を代入する。
engine2=engine*tb		//エンジンにターボ係数を掛ける
}

_VZ()は北方向だと-、南方向だと+の戻り値を返すので_abs()で絶対値を取っています。
IFのあとの条件「Vの絶対値が5を超える」が満たされていれば、{}内の命令「tb=3」が実行されます。
タービンが加給を開始して、エンジン出力が跳ね上がります。

turbo.jpg

ターボパワー炸裂!

車速が乗ってるとターボが効きっぱなしなのでこんなのも作ってみました。
ターボラグ変数を作って、そちらで条件分岐させています。


添付ファイル: fileturbo.jpg 26件 [詳細]