!演算
魔法陣言語では割と普通に数式を扱うことができます。
!!既知のバグ
変数の前に単項のマイナスを付けるとエラーになります。
>>
-a
<<
数字の前にマイナスは大丈夫です。以下のように書いてください
>>
-1*a
<<
!四則演算
+-*/%()を利用できます。
数字は小数も使えます。
!変数
なぜかまだユーザが変数を定義することができません。
ループの制御変数、defによるサブルーチンの引数
この後説明する特殊変数 を利用することができます。
前述した単項のマイナスを除いては、数字と同じように扱うことができます。
!!特殊変数 t
tはアニメーションモードで利用します。魔法陣環境(MCE)上ではplayを押すことで、アニメーションが開始されます(このwiki上ではこの機能は実装されていません)
特殊変数tはアニメーション中1ずつインクリメントされていく変数です。
これを図形の座標や、座標変換のパラメータに利用することで、アニメーションを作ることができます。
http://inajob.no-ip.org:10080/mce/data/tw%3Aina_ani%3Aanim_test.html
動作例↑
!!特殊変数 mx,my
mx,myはマウスの座標を表す特殊変数です。アニメーションモードで利用できます。
本当は相対座標で得られるようにしたいですが、今はキャンバスの左上から何pxかという値を返します。
!数学関数
!!JavaScriptのMath
手抜きのため、JavaScriptのMathクラスのメソッドを借りれるようにしています
call関数はJavaScriptの関数を呼び出すための関数です。
第一引数がクラス名(今の実装ではMath以外はエラーになります)
第二引数がメソッド名
それ以降の引数が、メソッドに与える引数
となっています。
>> mce3
loop(200)
shift($0/100-1,call("Math","sin",$0/10))
circle(0.1)
<<
>>
loop(200)
shift($0/100-1,call("Math","sin",$0/10))
circle(0.1)
<<
いちいちこうやって書くよりはdefすることをおすすめします。
!!乱数 rand()
乱数はcallを使っても呼び出すことができますが、JavaScriptの乱数は種を指定することができません。
魔法陣言語では、種が固定の乱数rand()を提供します。
rand()は0-1のあいだの乱数を返します。種は固定なので、何度実行しても同じ順番で同じ数字が帰ってきます。
>> mce3
loop(20)
shift(rand()-0.5,rand()-0.5)
rect(rand())
<<
>>
loop(20)
shift(rand()-0.5,rand()-0.5)
rect(rand())
<<
乱数で配置を変えてみました。
5643382
wiki
1371359174