OBY14
目の開閉など
オビーの目を閉じたり開いたりできるようにするです。
■インスタンス変数を追加します。
その前にちょこっと修正しまする。
● ObyEyeクラスのインスタンス変数
白目の大きさを入れておくeyeExtentを追加します。
--------------------------------------------
Morph subclass: #ObyEye
instanceVariableNames: 'eye iris eyeExtent '
classVariableNames: ''
poolDictionaries: ''
category: 'ObyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
■メソッドを修正します。
これまたちょこっと修正。ちょこっとな。
● ObyEyeクラスinitializeメソッド
白目の大きさを覚えさせておきます。
--------------------------------------------
initialize
super initialize.
"目の土台の設定"
self color: Color transparent.
self extent: 15@15.
"白目の設定"
eye _ EllipseMorph new.
eye color: (Color r: 1.0 g: 0.968 b: 0.935).
eye extent: 15 @ 15.
eyeExtent _ eye extent.
self addMorphFront: eye.
eye align: eye center with: self center.
"黒目の生成と設定"
iris _ EllipseMorph new.
iris extent: 6@6.
iris borderWidth: 0.
iris color: Color black.
eye addMorphFront: iris.
self lookAtFront
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
■メソッドを追加します。
● ObyEyeクラスcloseEyeメソッド
まず目を閉じられるようにするです
白目の大きさを覚えておきます。<元に戻すときのためだよ
黒目を削除
白目の位置を白目の高さの1/2下に下げる
白目の高さを2にする
--------------------------------------------
closeEye
eyeExtent _ self eye extent.
self iris delete.
self eye position: self eye position + (0 @ (self eye extent y // 2)).
self eye extent: self eye extent x @ 2
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスcloseEyeメソッド
ObyEyesからもアクセスできるようにします。
--------------------------------------------
closeEye
self leftEye closeEye.
self rightEye closeEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyクラスcloseEyeメソッド
Obyからもアクセスできるようにします。
--------------------------------------------
closeEye
self eyes closeEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyeクラスopenEyeメソッド
今度は閉じた目を開けるようにするっす
白目の大きさを元に戻す
白目の位置を白目の高さの1/2だけ上にあげる
--------------------------------------------
openEye
self eye extent: self eyeExtent.
self eye position: self eye position - (0 @ (self eye extent y // 2)).
self addMorphFront: self iris
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスopenEyeメソッド
ObyEyesからもアクセスできるようにします。
--------------------------------------------
openEyelid
self leftEye openEye.
self rightEye openEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyクラスopenEyeメソッド
Obyからもアクセスできるようにするです。
--------------------------------------------
openEye
self eyes openEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyeクラスeyeSizeメソッド
白目の大きさを変えられるようにするのだ。
--------------------------------------------
eyeSize: aExtent
| previousCenter |
previousCenter _ self eye center.
self eye extent: aExtent.
self eye align: self eye center with: previousCenter.
(self eye containsPoint: self iris center) ifFalse: [self lookAtFront]
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスeyeSizeメソッド
ObyEyesからもアクセスできるようにします。
--------------------------------------------
eyeSize: aExtent
self leftEye eyeSize: aExtent.
self rightEye eyeSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyクラスeyeSizeメソッド
Obyからもアクセスできるようにします。
--------------------------------------------
eyeSize: aExtent
self eyes eyeSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyeクラスirisSizeメソッド
黒目の大きさを変えられるようにするです。
--------------------------------------------
irisSize: aExtent
| irisCenter |
irisCenter _ self iris center.
self iris extent: aExtent.
self iris position: irisCenter - self iris center + self iris position
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyEyesクラスirisSizeメソッド
ObyEyesからもアクセスできるようにします。
--------------------------------------------
irisSize: aExtent
self leftEye irisSize: aExtent.
self rightEye irisSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● ObyクラスirisSizeメソッド
Obyからもアクセスできるようにします。
--------------------------------------------
irisSize: aExtent
self eyes irisSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
★インスタンスで実際に試してみる
--------------------------------------------
boby closeEye
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby openEye
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby eyeSize: 50@50
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby eyeSize: 15@15
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby irisSize: 2@2
--------------------------------------------
Alt + d ( Cmd + d )
--------------------------------------------
boby irisSize: 6@6
--------------------------------------------
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
- OBY13 last edited on 17 June 2007 at 7:06:10 am by localhost.localdomain
- OBY15 last edited on 17 June 2007 at 7:33:55 am by localhost.localdomain