関数タイルの作り方

とりあえず、RandomNumberTileをそのままコピーしてFunctionTileというクラスを作成。そしてFunctionTileから派生する形で他のタイルを作成しました。
というわけで以下にFunctionTileの中でRandomNumberTileからいじった内容を列挙(変更箇所をイタリックにしました)

続きを読む

ビューワ

math

昨日に引き続きプロジェクトモーフのビューワをいじる作業
・・・のはずでしたが、どうにも任意のメソッドをビューワに登録するやり方がわからなかったので作業は進まず


で、気晴らしに乱数タイルを参考に三角関数タイルなどを作ってみました。
割と簡単に出来たので拍子抜け。
まぁ出来たとはいえ今のところNumberクラスの引数なしの関数しか出来ないのでたとえば
Number >> log:のような関数タイルはまだ出来ません
まぁ、わざわざlog:のタイルを作らなくてもlnのタイルを組み合わせればlog:は再現できるのですが・・・


・・・しかしタイルを組み合わせて新しいタイルにするという手法を開発するに当たって、これを攻略するのは避けては通れないんでしょうねぇ・・・

問題点

  • Playerに無いアクションの追加

新しいアクションのタイルを作ろうとしたとき、Playerのメソッドに存在しない命令を書かなくてはならないのですが、それを適用させる方法がわかりません。一番手っ取り早いのはPlayerにメソッドを追加してしまうという荒業ですが、一回それをやって固まったのでなんともはや・・・

  • Viewerに既にあるタイル・カテゴリの削除
  • 継承によるタイルの使用可能・不可能の原理

多分、根本は同じですがとりあえず最初Morph派生で作ったプロジェクタのモーフに「枠線の太さ」云々のタイルを作ろうとしたとき、borderWidthなどを手動で組み入れてもどうにも上手くいかなかったのが気持ち悪かったので後々知らないと困る気がします。ちなみに、今回はBorderedMorph派生に切り替えてみたところ「枠線」云々のタイルが使用可能になりました。

デフォルトモーフ名の設定

(クラスメソッドにて)

defaultNameStemForInstances
 ^'DEFAULTNAME'

これによりモーフを複数作ったとき
'DEFAULTNAME''DEFAULTNAME1''DEFAULTNAME2'・・・という名前に自動的になる
※translatedをつける必要はなし