BOBY 9
■ボビー君の設計図を調べちゃうです
ボビー君たちは「HeadMorph」という設計図(クラス)からつくられた
モノ(インスタンス)らしいんですな。
こんどはその設計図でボビー君たちがどんな風に設計されているのか
「HeadMorph」という設計図を見てみることにしましょう。そうしましょう!!。
設計がどうゆう具合になってるのか知りたい場合は
「SystemBrowser」ってのを使うんですな。
これ以降は設計図はクラスってことでよろしく。
「Workspace」にいままで入力した中の「HeadMorph」ってのを選択して
ブラ〜ウズイ〜ット!! (browse itのことです)
このショートカット覚えてね!!
Alt + b ( Cmd + b )
ブラウザが登場いたします。
これを使ってSqueakのクラスにアクセスできるわけですな。
HeadMorph
上の段の左から2番目のペイン(クラスペイン)をみると
「HeadMorph」が選ばれています。
上の段の左から4番目のペイン(メソッドペイン)には
選ばれた「HeakMorph」のメソッドが並んでます。
よく見るとボビー君に帽子やら鬚やらめがねをくっつけたときに
使った見慣れた単語(メソッド)がならんでますな。
これで百面相やってたってわけだね。
FaceMorph
これまた見慣れたメソッドがいくつかあるね。
これで喋らせたり表情変えてたんだすな。
EyeMorph
これで目を閉じたりあけたりしてたんだね。
LipsMorph
表情のほとんどはこの口でやってるんだすなあ。
■各「initialize」というメソッドを見てみると・・・
EyeMorph
LipsMorph
FaceMorph
- Morphで顔のベースを作って、透明色を設定し、
それにEyeMorphを2つとLipsMorphをくっつけて
FormCanvasに鼻を描画している
HeadMorph
- EllipseMorphで頭のベースを作って、ランダムに色を設定し、
それにFaceMorphをくっつけて
Funituer(帽子とか鬚とか髪の毛とかね)をランダムに設定
と、まあこんなふうにボビー君たちは作られていたわけですな。
(取り敢えずここでは見た目だけなんだけどね。)
■「HeadMorph」
----------------------------------------------
initialize
super initialize.
self color: self randomSkinColor.
self face: FaceMorph new.
self extent: self face extent (1.5 @ 1.7).
self face align: self face center with: self center + (0 @ self height // 10).
self addRandomFurnitures.
queue _ SharedQueue new
----------------------------------------------
■「FaceMorph」
----------------------------------------------
initialize
super initialize.
color _ Color transparent.
self addMorph: (leftEye _ EyeMorph new).
self addMorph: (rightEye _ EyeMorph new).
self addMorph: (lips _ LipsMorph new).
leftEye position: self position.
rightEye position: leftEye extent x @ 0 + leftEye position.
lips position: (0 @ 20 + (leftEye bottomRight + rightEye bottomLeft - lips extent // 2)).
self bounds: self fullBounds
----------------------------------------------
■「EyeMorph」
----------------------------------------------
initialize
super initialize.
self color: (Color r: 1.0 g: 0.968 b: 0.935).
self borderColor: Color black; borderWidth: 1.
self extent: 30 @ 37.
self addMorphFront: (iris _ EllipseMorph new extent: 6 @ 6; borderWidth: 0; color: Color black).
self lookAtFront
----------------------------------------------
■「LipsMorph」のメソッド
----------------------------------------------
initialize
super initialize.
self beSmoothCurve.
vertices _ {11@3. 35@1. 60@5. 67@17. 34@24. 3@17}.
color _ Color black. "red darker."
borderColor _ Color black.
borderWidth _ 1.
closed _ true.
self neutral; updateShape
----------------------------------------------
▲PREV ------ ● TOP ● ------ NEXT▼
■ MEMO ■
Sunday, 29 February 2004, 8:04:14 pm
インスタンス変数やクラス、メソッドがどうなっているかは「explain」すると説明が出てくるです。<これ山宮さんからおせ〜て貰った。いままではクラスは「?」ボタン、メソッドは「documentation」ボタンでやってたけど、説明ない場合がおおかったのね。「explain」のほうがぜ〜んぜん優れものじゃん!!Thanks!---thoru
Links to this Page
- I BOBY last edited on 28 April 2004 at 8:57:55 pm by tk0005-202x210x196x109.ap-TK.usen.ad.jp
- BOBY 8 last edited on 18 June 2007 at 5:26:37 am by localhost.localdomain
- BOBY10 last edited on 17 June 2007 at 7:35:23 am by localhost.localdomain