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

OBY 9

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


オビーの形を変える

見た目はやっとこさ顔の形になってきたオビーですが中身は空っぽなのね・・・
各パーツにいろいろな機能をつけて、
じょじょにおばかなオビーをおりこうさんにしてあげましょう!!
(おばかは、おいらだったりするのですが・・・)
まずは形をいろいろ変更できるようにしてやるです。


      Uploaded Image: images1.jpg





■メソッドを追加する

オビーの顔の形をかえられるようにするです。

Oby > other > rectangleFaceメソッド
オビーはデフォルトは楕円な顔なんだけど
まずは四角顔になるようにメソッドを用意してやるです。

現在の顔の大きさをゲット
顔の色をゲット

「face」を削除

RectangleMorphを生成
大きさを元の大きさに合わせる
枠線は1
色を元の色に合わせる
オビーのサブモーフにする
位置をセンターに
--------------------------------------------
rectangleFace
	| s c |
	"現在の顔のサイズと色を取得"
	s _ self face extent.
	c _ self face color.

	"現在の顔を削除"
	self 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 )

Uploaded Image: image7.jpg


Oby > accessing > faceメソッド
インスタンス変数「face」にアクセスできるよう「face」を返すメソッドを追加。
--------------------------------------------
face
	^ face
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image8.jpg


★インスタンスを出して試してみる
--------------------------------------------
boby _ Oby new openInWorld.
boby rectangleFace
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image9.jpg


四角顔になりましたね。

Uploaded Image: image10.jpg



Oby > other > sketchFaceメソッド
今度はスケッチモーフの顔になるようにしてやりましょう。
スケッチモーフは拡大しないほうが綺麗なんで元の大きさとか色はゲットしません。

「face」を削除
SketchMorphを生成
オビーのサブモーフにする
位置をセンターに
--------------------------------------------
sketchFace
	"現在の顔を削除"
	self face delete.

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

Uploaded Image: image11.jpg


★インスタンスを出してみる
--------------------------------------------
boby _ Oby new openInWorld.
boby sketchFace
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image12.jpg


おややん!!パレット顔になっちゃったっすね。
SketchMorphのデフォルト画像はパレットなのねん。
Uploaded Image: paint.gifハロでペイントモードにして好きな形に顔を描くです。

Uploaded Image: image13.jpg



Oby > other > polygonFaceメソッド
さてさてお次は多角形の顔に挑戦だよん。

元の大きさと色をゲット
「face」を削除
PolygonMorphを生成

もとの大きさ(extent)をベースにして各ポリゴンのポイント設定
枠線は1
枠の色は黒
元の色にする
オビーのサブモーフにする
位置をセンターにする
--------------------------------------------
polygonFace
	| s c |
	"現在の顔のサイズと色を取得"
	s _ self face extent.
	c _ self face color.

	"現在の顔を削除"
	self 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 )

Uploaded Image: image14.jpg


★インスタンスを出してみる
--------------------------------------------
boby _ Oby new openInWorld.
boby polygonFace
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: imageadd.jpg


わっはっは。目とか飛び出てるし・・・。
Shift+クリックしてポイントハンドルを表示して好みの形に変えてみよ〜!!

Uploaded Image: image15.jpg



Oby > other > ellipseFaceメソッド
でで最後に元に戻すために楕円にするメソッドも用意しておきましょう!

これはRectangleFaceのときとほとんど同じね。
新しく生成するのをEllipseMorphに変えるだ〜けね。
--------------------------------------------
ellipseFace
	| s c |
	"現在の顔のサイズと色を取得"
	s _ self face extent.
	c _ self face color.

	"現在の顔を削除"
	self 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 )

Uploaded Image: image16.jpg


★インスタンスを出してみる
--------------------------------------------
boby _ Oby new openInWorld.
boby ellipseFace
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image17.jpg


元の丸顔に戻ったとはいえないね。でぶでぶ顔じゃん。
これはPolygonFaceにしたとき形を変えたじゃん!その時extentが変更されたからだね。

Uploaded Image: image18.jpg


まあ、こ〜ゆ〜ふうにして目とか鼻とかも形が変えられるように
ガ〜シガシとメソッドを追加しちゃえばい〜じゃん!!
・・・ってのんきに考えておったのでありますが・・・・・・

オ〜マイ、ガ〜〜〜〜!!


これじゃ、だ〜めじゃん!!
そのわけはお次のページで。







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







■ MEMO ■

Links to this Page