AREA 021
Featuring AlphaScript

関数リスト 〜その1〜

AlphaScript に用意されている関数を解説しているページです。
ここでは、システムや計算処理に関するものを紹介します。
描画処理やリソース操作の関数についてはその2をご覧ください。

関数名の後のカッコの中は必要な引数を表しています。
同じ関数名でも、引数の数によって処理が変わるものもあります。

また、戻り値について説明のない関数は常に 0 を返します。

 

★ システム関連 ★

timeフレーム数を取得
speed移動速度を取得
printコンソールに出力
showステータスバーに表示
URLURLを開く

 

★ 数学関連 ★

rand乱数を発生
sqrt平方根を求める
angle角度を求める
angleX角度のXを求める
angleY角度のYを求める
curveXY座標を回転変換

 

★ 便利系 ★

abs絶対値を求める
sign符号を求める
int整数に変換
min最も小さい値
max最も大きい値
btw2つの値の間を求める
trg目標の値に近づける
compare配列の要素を比較
search配列の要素を探索
afix配列の要素を埋める
copy配列の要素をコピー
toNumber文字列を数値に変換
isNumber文字列が数値か判定
HitRect四角で当たり判定
HitOval丸で当たり判定
HitLine線で当たり判定
CrossLineX線の交点X
CrossLineY線の交点Y

 

★ 入力関連 ★

MouseXマウスX座標
MouseYマウスY座標
MouseButtonマウスボタン判定
KeyControl基本操作キー判定
KeyAlphabetアルファベットキー判定
KeyNumber数字キー判定
KeySub補助キー判定

 

● システム関連 ●

time ( second )

現在設定されている秒間フレーム数をもとに、 second で指定した秒数分のフレーム数を整数で返します。  例えば、秒間 50 フレームで 1.5 と指定すれば 1.5 秒分の 75 が返されます。  秒間フレーム数よりも細かい値(0.01など)は切り捨てます。 また、結果が 0 以下になった場合は 1 を返します。

この関数を使うことにより、「時間」を直感的に指定でき、後でフレーム数の設定を変更したときにいちいち修正しなくて済みます。  なお、フレーム数の設定については、パラメータ一覧をご覧ください。


speed ( second , dist )

現在設定されている秒間フレーム数をもとに、 second で指定した秒数の間に dist の分だけ進む 1 フレームの加算値を返します。  例えば、秒間 50 フレームで秒数 2 、距離 400 と指定すれば 4 が返されます。 dist はマイナス値でも OK です。

この関数を使うことにより、「速さ」を直感的に指定でき、後でフレーム数の設定を変更したときにいちいち修正しなくて済みます。  なお、フレーム数の設定については、パラメータ一覧をご覧ください。


print ( str )

exit コマンドが呼ばれたときに表示されるコンソールに str で指定した文字列を出力します。  実行するたびに自動的に改行されます。  変数の中身の変化を調べるなど、デバッグに便利です。  また、出力された文字列は選択してクリップボードにコピーできるため、 自動的に文字列を生成するようなプログラムを実現するのにも使えます。


show ( str )

ブラウザのステータスバーに str で指定した文字列を表示します。  実際に出力されるのはそのスクリプトを実行したフレームの最後で、複数回呼び出した場合は文字列が連結されます。  ブラウザの種類やその時の状況(他のメッセージが同時に出力された場合など)によっては表示されないことがあります。  変数の中身をリアルタイムに調べるなど、デバッグに便利です。


openURL ( URL )
openURL ( URL , target )

URL で指定したドキュメントをブラウザで開きます。  target はフレームを指定します。  どちらも記述方法は HTML の a タグと同じです。

後ろに ? を付けてデータを送信することもできます。 (自動的に URL エンコーディングされます)  アプレットから他のファイルにアクセスするため、 ブラウザや設定によっては機能しなかったり、ブロックされる可能性があります。  実行に成功すると 1 、失敗すると 0 を返します。

 

● 数学関連 ●

rand ( )

0.0 以上 1.0 未満の間で乱数を返します。


sqrt ( n )

n の平方根を求めます。  これを使い、sqrt( x,y ) とすると、平面上で 0.0,0.0 の位置から x,y までの直線距離を求められます。


angle ( x , y )

平面上で 0.0,0.0 の位置から x,y の点を向いた角度( 0.0 以上 360.0 未満 )を返します。


angleX ( angle )
angleY ( angle )

平面上で angle の角度を向いた X,Y 座標を返します。 範囲は 0.0 〜 1.0 です。  角度によって移動するキャラクターなどに使えます。


curve ( x , y , angle )

平面の座標 x,y を angle の分だけ回転変換します。  変数を直接書き換えますので x,y は変数名で指定してください。

 

● 便利系 ●

abs ( a )

a の絶対値を返します。 正の数なら 0.5 を足してこれを使えば「四捨五入」になります。


sign ( a )

a がプラス値なら 1.0 、マイナス値なら -1.0 、ゼロなら 0.0 を返します。


int ( a )

a を整数に変換して返します。 符号に関わらず、小数点以下は切り捨てます。


min ( ary )

ary に指定された配列中で最も小さい値を返します。


max ( ary )

ary に指定された配列中で最も大きい値を返します。


btw ( val , valA , valB , rstA , rstB )

val が valA と valB の間のどの位置になるかを調べ、それに応じて rstA 〜 rstB の間で結果を返します。  例えば、 val が valA と valB のちょうど中間の値であれば、 rstA と rstB の中間の値が返されます。  val の値が valA 〜 valB の間から外れていても、結果は rstA 〜 rstB の間に収めます。  なお、valA と valB の値が同じだった場合は、val がその値より小さいか大きいかによって rstA か rstB が選択されます。


trg ( val , trg , deg )

val を deg の分だけ trg に近づけた値を返します。  deg が val と trg の差よりも大きければ trg の値が返されることになります。  deg がマイナスの場合、逆に val を trg から遠ざけた値が返されます。


compare ( ary1 , ary2 )

ary1 と ary2 の配列を比較し、内容が全く同じであれば 0 を返します。  違った場合、配列を文字列と仮定し、辞書順で ary1 が先になるなら -1 、ary2 が先になるなら 1 を返します。


search ( ary1 , ary2 )

ary1 の中から ary2 の配列と一致する部分を探し、見つかればその先頭位置の数値を返します。  例えば、'abcde' と 'bcd' を指定すると、0から数えて1番目に見つかるので 1 を返します。  最後まで探索しても見つからないか、ary2 のほうが要素数が多いと -1 を返します。


afix ( val, ary )

ary の全要素の値を val にします。


copy ( ary1, ary2 )

ary1 の各要素の値を ary2 にコピーします。  要素のコピーは演算子による代入でも実現できますが、 この関数だと、ary2 の範囲をオーバーしてしまう場合、エラーにはならずコピーはそこで中断されます。

配列の代入ができなかった旧バージョンの名残でもあります。(^^;  この手の関数はプログラミング言語にはよくあるので、記述を統一したい場合などに使ってください。


toNumber ( str )

文字列 str を数値に変換し、その値を返します。  数値に変換できない文字列だった場合、0.0 を返します。  大きすぎる桁や小数点以下の小さすぎる桁は無視されます。


isNumber ( str )

文字列 str が数値なら 1 、そうでなければ 0 を返します。  整数・実数の区別はありません。


HitRect ( x1 , y1 , w1 , h1 , x2 , y2 , w2 , h2 )

左上を基準とする四角 x1,y1,w1,h1 と x2,y2,w2,h2 が接触しているなら 1 、そうでなければ 0 を返します。  x と y には座標、 w と h にはそれぞれ幅・高さを指定します。


HitOval ( x1 , y1 , w1 , h1 , x2 , y2 , w2 , h2 )

中心を基準とする円 x1,y1,w1,h1 と x2,y2,w2,h2 が接触しているなら 1 、そうでなければ 0 を返します。 x と y には座標、 w と h にはそれぞれ幅・高さ(ともに半径)を指定します。


hitLine ( x1a , y1a , x1b , y1b , x2a , y2a , x2b , y2b )

2点を結ぶ線分 x1a,y1a,x1b,y1b と x2a,y2a,x2b,y2b が交差しているなら 1 、そうでなければ 0 を返します。  x と y には線分の始点と終点の座標を指定します。


crossLineX ( )
crossLineY ( )

HitLine を実行して触れていると判定された後なら、2つの線分が交差する点の座標を取得できます。

 

● 入力関連 ●

※ これらの関数が返す結果は、同じフレーム内のどこで実行しても同じになります。
※ 処理落ちしているときは、操作を認識できないことがあるかもしれません。


MouseX ( )
MouseY ( )

マウスポインタの現在の座標(左上からのピクセル数)を整数で返します。  画面の外にある場合は動きを認識しません。


MouseButton ( )
MouseButton ( timing )

マウスのボタンが押されていれば 1 、そうでなければ 0 を返します。  timing が指定された場合、それが 0 以外なら押した瞬間、0 なら離した瞬間のみを検知します。  マウスに複数のボタンが付いていても、どれも同じものとして認識します。


KeyControl ( ID )
KeyControl ( timing , ID )

基本操作キーが押されていれば 1 、そうでなければ 0 を返します。  timing が指定された場合、それが 0 以外なら押した瞬間、0 なら離した瞬間のみを検知します。  複数のキーが同時に操作されていた場合、うまく認識されないことがあります。

ID は 0 〜 5 の番号で指定し、対象となるキーは 0 から順に スペースキー、カーソルキー左、カーソルキー右、カーソルキー上、カーソルキー下、エンターキーとなっています。 


KeyAlphabet ( ID )
KeyAlphabet ( timing , ID )

アルファベットキーが押されていれば 1 、そうでなければ 0 を返します。  timing が指定された場合、それが 0 以外なら押した瞬間、0 なら離した瞬間のみを検知します。  複数のキーが同時に操作されていた場合、うまく認識されないことがあります。

ID は 0 〜 25 の番号で指定し、対象となるキーは 0 から順に ABC・・・Z となっています。  大文字入力、小文字入力は区別しません。 


KeyNumber ( ID )
KeyNumber ( timing , ID )

数字キーが押されていれば 1 、そうでなければ 0 を返します。  timing が指定された場合、それが 0 以外なら押した瞬間、0 なら離した瞬間のみを検知します。  複数のキーが同時に操作されていた場合、うまく認識されないことがあります。

ID は 0 〜 9 の番号で指定し、対象となるキーは 0 から順に 012・・・9 となっています。  アルファベットの上に並んでいるキーやテンキーは同じ扱いです。


KeySub ( ID )
KeySub ( timing , ID )

補助キーが押されていれば 1 、そうでなければ 0 を返します。  timing が指定された場合、それが 0 以外なら押した瞬間、0 なら離した瞬間のみを検知します。  複数のキーが同時に操作されていた場合、うまく認識されないことがあります。

ID は 0 〜 2 の番号で指定し、対象となるキーは 0 から順に Shift 、 Ctrl 、 Alt となっています。

 

ページ一覧に戻る

Copyright (c) Rabit 2005-2012 all rights reserved.