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

OBY13

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


目玉が動くようにしてやるだす

オビーの黒目が、あるポイントの方向を向けるようにしちゃいましょう。

■メソッドを追加します。

ObyEyeクラスlookAtメソッド Uploaded Image: bicn1.jpg
白目のセンターから見たあるポイントのθ角を出して、その方向に黒目を移動させてます。
(「HeadMorph」ではScaleの記述があるんだけど何に使ってるのか解らないので省略しちゃった)
--------------------------------------------
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 )

      Uploaded Image: image4.jpg



      Uploaded Image: image5.jpg



ObyEyesクラスlookAtメソッド Uploaded Image: bicn2.jpg
ObyEyesから呼び出せるように同じ名前のメソッドを追加するです。
両目が同時にそのポイントの方向に向きます。
ObyEyeクラスの「lookAt」メソッドを呼び出してるだけね。
--------------------------------------------
lookAt: aPoint
	self leftEye lookAt: aPoint.
	self rightEye lookAt: aPoint
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ObyクラスlookAtメソッド Uploaded Image: bicn2.jpg
これまたObyクラスからも呼び出せるよう同名のメソッドを追加するです。
--------------------------------------------
lookAt: aPoint
	self eyes lookAt: aPoint.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )




ObyEyeクラスlookAtMorphメソッド Uploaded Image: bicn1.jpg
指定したモーフの方向をむくようにします。
aPointの変わりにモーフのセンターの位置を変えただけね。
--------------------------------------------
lookAtMorph: aMorph
	self lookAt: aMorph center
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyEyesクラスlookAtMorphメソッド Uploaded Image: bicn2.jpg
ObyEyesから呼び出せるよう同じ名前のメソッドを追加するです。
両目が同時にモーフの方向に向きます。
ObyEyeクラスの「lookAtMorph」メソッドを呼び出してるだけね。
--------------------------------------------
lookAtMorph: aMorph
	self leftEye lookAtMorph: aMorph.
	self rightEye lookAtMorph: aMorph
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyクラスlookAtMorphメソッド Uploaded Image: bicn2.jpg
Obyクラスからも呼び出せるよう同名のメソッドを追加するです。
--------------------------------------------
lookAtMorph: aMorph
	self eyes lookAtMorph: aMorph.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )




ObyEyesクラスleftEyeメソッド Uploaded Image: bicn2.jpg
インスタンス変数leftEyeを返すメソッドです。
--------------------------------------------
leftEye
	^ leftEye
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ObyEyesクラスrightEyeメソッド Uploaded Image: bicn2.jpg
インスタンス変数rightEyeを返すメソッドです。
--------------------------------------------
rightEye
	^ rightEye
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


Obyクラスeyesメソッド Uploaded Image: bicn.jpg
インスタンス変数eyesを返すメソッドです。
--------------------------------------------
eyes
	^ eyes
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



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



--------------------------------------------
boby _ Oby new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage.jpg


--------------------------------------------
boby lookAt: 100@10
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage1.jpg


--------------------------------------------
m _ EllipseMorph new openInWorld position: 100@100.
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage2.jpg


--------------------------------------------
boby lookAtMorph: m
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: aimage3.jpg






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





■ MEMO ■

Links to this Page