遅延評価はやっぱり欲しい
作者のまつもとさんの日記で、Rubyの遅延評価のことを呼んだ覚えがありますが(確認しろよ(^^;)、Miyakoでのスクリプティングをアレやコレやと考えていたときに「ある箇所」で遅延評価が欲しいなと思ったことがあります。
それは、
目パチ口パク
だったりします。
やっぱり人間、一定時間毎に瞬きするわけはないんですから、目を開いている時間をある程度ランダムにしたいわけです。
しかし、今のSpriteAnimationクラスでは、表示時間を引数で渡すので、インスタンス生成時に既に値は決まっている(引数にrand使っても、引数に渡るときに値の計算が行われるわけで、実際に表示するときは、その値を繰り返し使うことになる)わけです。これをランダムにするには文字列を使わなきゃならない(例えば、
SpriteAnimation.new(@eyes,["(rand(3)+2)/",0.05,0.05,...])
とか。文字列部分はむろんeval)。でもなんかちょっと見栄えが・・・。ある意味危険やし・・・。
遅延評価が実装されると、
SpriteAnimation.new(@eyes,[(rand(3)+2)/10,0.05,0.05,...])
となり、見た目はスッキリです。