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

OBY12

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


ってことで修正するです。パート2

顔の形を変えるメソッドもちょっと変更するです。っていうか、これが事の発端だったわけね。
Obyクラスのメソッドだった「rectangleFace」,「sketchFace」,「polygonFace」,「ellipseFace」を今度は
ObyFaceクラスのメソッドにします。

■ObyFaceクラスにメソッドを追加

rectangleFaceメソッド
基本的にはObyクラスのものとおなじです。
--------------------------------------------
rectangleFace
	| s c |
	"現在の顔のサイズと色を取得"
	s _ face extent.
	c _ face color.

	"現在の顔を削除"
	face delete.

	"顔の生成"
	face _ RectangleMorph new.
	face extent: s.
	face borderWidth: 1.
	face color: c.
	self addMorphBack: face.
	face align: face center with: self center.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


sketchFaceメソッド
基本的にはObyクラスのものとおなじです。
--------------------------------------------
sketchFace
	"現在の顔を削除"
	face delete.

	"顔の生成"
	face _ SketchMorph new.
	self addMorphBack: face.
	face align: face center with: self center.	
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


polygonFaceメソッド
基本的にはObyクラスのものとおなじです。
--------------------------------------------
polygonFace
	| s c |
	"現在の顔のサイズと色を取得"
	s _ face extent.
	c _ face color.

	"現在の顔を削除"
	face delete.

	"顔の生成"
	face _ PolygonMorph new.
	face setVertices: (Array with: 0@0 with: (s x)@0 with: (s x // 2)@(s y)).
	face borderWidth: 1.
	face borderColor: Color black.
	face color: c.
	self addMorphBack: face.
	face align: face center with: self center.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ellipseFaceメソッド
基本的にはObyクラスのものとおなじです。
--------------------------------------------
ellipseFace
	| s c |
	"現在の顔のサイズと色を取得"
	s _ face extent.
	c _ face color.

	"現在の顔を削除"
	face delete.

	"顔の生成"
	face _ EllipseMorph new.
	face extent: s.
	face borderWidth: 1.
	face color: c.
	self addMorphBack: face.
	face align: face center with: self center.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


■Obyクラスのメソッドを修正

ObyクラスからはObyFaceクラスの同じ名前のメソッドを呼び出すだけね。


rectangleFaceメソッド
--------------------------------------------
rectangleFace
	face rectangleFace.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


sketchFaceメソッド
--------------------------------------------
sketchFace
	face sketchFace.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


polygonFaceメソッド
--------------------------------------------
polygonFace
	face polygonFace.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

ellipseFaceメソッド
--------------------------------------------
ellipseFace
	face ellipseFace.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



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

--------------------------------------------
oby new openInWorld.
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image3.jpg

--------------------------------------------
oby rectangleFace.
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image4.jpg

--------------------------------------------
oby sketchFace.
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image5.jpg

--------------------------------------------
oby polygonFace.
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image6.jpg

--------------------------------------------
oby ellipseFace
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image7.jpg


ちなみに元の楕円に戻したはずなのに大きさが小さくなってるのは
スケッチにしたときにサイズが変わっちゃったからなのね。



とりあえずここまでのソースコードでござる。
ObyMorph.st


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







■ MEMO ■

Links to this Page