OBY13
目玉が動くようにしてやるだす
オビーの黒目が、あるポイントの方向を向けるようにしちゃいましょう。
■メソッドを追加します。
● ObyEyeクラスlookAtメソッド
白目のセンターから見たあるポイントのθ角を出して、その方向に黒目を移動させてます。
(「HeadMorph」ではScaleの記述があるんだけど何に使ってるのか解らないので省略しちゃった)
- なぜScaleがあるかわかったけど、とりあえずこのままで。-thoru
--------------------------------------------
lookAt: aPoint
| theta |
(self eye containsPoint: aPoint) ifTrue: [
self iris align: iris center with: aPoint. ^ self].
theta _ (aPoint - self eye center) theta.
self iris align: self iris center with:
self eye center + (theta cos @ theta sin self eye extent / 3.0) rounded
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスlookAtメソッド
ObyEyesから呼び出せるように同じ名前のメソッドを追加するです。
両目が同時にそのポイントの方向に向きます。
ObyEyeクラスの「lookAt」メソッドを呼び出してるだけね。
--------------------------------------------
lookAt: aPoint
self leftEye lookAt: aPoint.
self rightEye lookAt: aPoint
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyクラスlookAtメソッド
これまたObyクラスからも呼び出せるよう同名のメソッドを追加するです。
--------------------------------------------
lookAt: aPoint
self eyes lookAt: aPoint.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyeクラスlookAtMorphメソッド
指定したモーフの方向をむくようにします。
aPointの変わりにモーフのセンターの位置を変えただけね。
--------------------------------------------
lookAtMorph: aMorph
self lookAt: aMorph center
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスlookAtMorphメソッド
ObyEyesから呼び出せるよう同じ名前のメソッドを追加するです。
両目が同時にモーフの方向に向きます。
ObyEyeクラスの「lookAtMorph」メソッドを呼び出してるだけね。
--------------------------------------------
lookAtMorph: aMorph
self leftEye lookAtMorph: aMorph.
self rightEye lookAtMorph: aMorph
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyクラスlookAtMorphメソッド
Obyクラスからも呼び出せるよう同名のメソッドを追加するです。
--------------------------------------------
lookAtMorph: aMorph
self eyes lookAtMorph: aMorph.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスleftEyeメソッド
インスタンス変数leftEyeを返すメソッドです。
--------------------------------------------
leftEye
^ leftEye
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスrightEyeメソッド
インスタンス変数rightEyeを返すメソッドです。
--------------------------------------------
rightEye
^ rightEye
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● Obyクラスeyesメソッド
インスタンス変数eyesを返すメソッドです。
--------------------------------------------
eyes
^ eyes
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
★インスタンスで実際に試してみる
--------------------------------------------
boby _ Oby new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby lookAt: 100@10
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
m _ EllipseMorph new openInWorld position: 100@100.
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby lookAtMorph: m
--------------------------------------------
Alt + d ( Cmd + d )
▲PREV ------ ● TOP ● ------ NEXT▼
■ MEMO ■
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
- OBY12 last edited on 18 June 2007 at 5:25:21 am by localhost.localdomain
- OBY14 last edited on 18 June 2007 at 5:30:35 am by localhost.localdomain