View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

OBY14

PREV ------ ● TOP ● ------ NEXTUploaded Image: imager.jpg


目の開閉など

オビーの目を閉じたり開いたりできるようにするです。

■インスタンス変数を追加します。

その前にちょこっと修正しまする。

ObyEyeクラスのインスタンス変数 Uploaded Image: bicn1.jpg
白目の大きさを入れておくeyeExtentを追加します。
--------------------------------------------
Morph subclass: #ObyEye
	instanceVariableNames: 'eye iris eyeExtent '
	classVariableNames: ''
	poolDictionaries: ''
	category: 'ObyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



■メソッドを修正します。

これまたちょこっと修正。ちょこっとな。

ObyEyeクラスinitializeメソッド Uploaded Image: bicn1.jpg
白目の大きさを覚えさせておきます。
--------------------------------------------
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メソッド Uploaded Image: bicn1.jpg
まず目を閉じられるようにするです

白目の大きさを覚えておきます。<元に戻すときのためだよ
黒目を削除
白目の位置を白目の高さの1/2下に下げる
白目の高さを2にする

      Uploaded Image: aimage7.jpg

--------------------------------------------
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メソッド Uploaded Image: bicn2.jpg
ObyEyesからもアクセスできるようにします。
--------------------------------------------
closeEye
	self leftEye closeEye.
	self rightEye closeEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ObyクラスcloseEyeメソッド Uploaded Image: bicn.jpg
Obyからもアクセスできるようにします。
--------------------------------------------
closeEye
	self eyes closeEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyEyeクラスopenEyeメソッド Uploaded Image: bicn1.jpg
今度は閉じた目を開けるようにするっす
白目の大きさを元に戻す
白目の位置を白目の高さの1/2だけ上にあげる

      Uploaded Image: aimage8.jpg

--------------------------------------------
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メソッド Uploaded Image: bicn2.jpg
ObyEyesからもアクセスできるようにします。
--------------------------------------------
openEyelid
	self leftEye openEye.
	self rightEye openEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyクラスopenEyeメソッド Uploaded Image: bicn.jpg
Obyからもアクセスできるようにするです。
--------------------------------------------
openEye
	self eyes openEye.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyEyeクラスeyeSizeメソッド Uploaded Image: bicn1.jpg
白目の大きさを変えられるようにするのだ。
--------------------------------------------
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メソッド Uploaded Image: bicn2.jpg
ObyEyesからもアクセスできるようにします。
--------------------------------------------
eyeSize: aExtent
	self leftEye eyeSize: aExtent.
	self rightEye eyeSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ObyクラスeyeSizeメソッド Uploaded Image: bicn.jpg
Obyからもアクセスできるようにします。
--------------------------------------------
eyeSize: aExtent
	self eyes eyeSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyEyeクラスirisSizeメソッド Uploaded Image: bicn1.jpg
黒目の大きさを変えられるようにするです。
--------------------------------------------
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メソッド Uploaded Image: bicn2.jpg
ObyEyesからもアクセスできるようにします。
--------------------------------------------
irisSize: aExtent
	self leftEye irisSize: aExtent.
	self rightEye irisSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ObyクラスirisSizeメソッド Uploaded Image: bicn.jpg
Obyからもアクセスできるようにします。
--------------------------------------------
irisSize: aExtent
	self eyes irisSize: aExtent.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )




★インスタンスで実際に試してみる


--------------------------------------------
boby closeEye
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage4.jpg


--------------------------------------------
boby openEye
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage.jpg


--------------------------------------------
boby eyeSize: 50@50
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage5.jpg


--------------------------------------------
boby eyeSize: 15@15
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage.jpg


--------------------------------------------
boby irisSize: 2@2
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage6.jpg


--------------------------------------------
boby irisSize: 6@6
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage.jpg



PREV ------ ● TOP ● ------ NEXT





■ MEMO ■

Links to this Page