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

OBY25

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


帽子と髪の毛も作っちゃう

基本的にはObyLipsと同じようにポリゴンで作るんで省略しようかと思ったけど
やっぱやるです。耳と同じように後からくっ付けられるようにしますた。
addなんたらかんたら・・・ってかんじにね。


■Obyクラスにインスタンス変数を追加

Obyクラス
インスタンス変数にhairとhatを追加するです。
--------------------------------------------
Morph subclass: #Oby
	instanceVariableNames: 'face eye eyes nose lips ears hair hat '
	classVariableNames: ''
	poolDictionaries: ''
	category: 'ObyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


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

ObyクラスaddLilkHatメソッド
PolygonMorphを生成して帽子の形の各ポイントの座標を指定してまする。
--------------------------------------------
addSilkHat
	hat ifNotNil: [ hat delete].
	hat _ PolygonMorph new.
	self addMorph: hat.
	hat setVertices: {0@0. 37@0. 19@-6. 23@-51. -1@-55. -23@-52. -17@-8. -43@0.}.
	hat align: hat center x @ hat bottom with: face center x @ (self face top + 5).
	hat color: (Color r: 0.0 g: 0.0 b: 0.258).
	hat borderColor: Color black.
	hat borderWidth: 1.
	hat computeBounds.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



その他のパーツ(帽子と髪の毛)
いろいろなバリエーションをつくります。上のシルクハットとのちがいは
ポイントの座標と色、位置かにゃ。
で、座標をどうゆう風に出したかってえ〜と
「部品」フラップから「多角形」をひっぱり出しましてShift+クリックでハンドルを出し
変形して好みの形を作りまする。でそれをインスペクトして「vertices」から
座標を取り出すってわけさ。
その場合グローバル座標なわけなんで多角形を100@100の位置に移動させてから座標を取り出し
そのあとで各ポイントから100@100をひくとかするとローカル座標がゲットできるってわけね。
(これらを一括で処理するコード書いてやるといいですな)

--------------------------------------------
SilkHat
{0@0. 37@0. 19@-6. 23@-51. -1@-55. -23@-52. -17@-8. -43@0.}
          Uploaded Image: image.jpg


WesternHat
{1@2. 42@2. 20@-5. 25@-50. 1@-26. -21@-50. -16@-5. -44@2.}

          Uploaded Image: image1.jpg


WitchHat
{0@0. 37@0. 17@-6. -1@-77. -14@-9. -40@-1.}

          Uploaded Image: image2.jpg


BucketHat
{0@0. 38@0. 21@-12. 15@-33. 0@-34. -21@-31. -22@-12. -41@0.}

          Uploaded Image: image3.jpg


ClownHat
{0@0. 22@-1. -2@-36. -19@-1.}

          Uploaded Image: image4.jpg


PanamaHat
{0@0. 48@2. 21@-7. 16@-21. -1@-26. -19@-21. -21@-7. -50@1.}

          Uploaded Image: image5.jpg


EavesHat
{0@0. 26@0. 22@-17. 1@-27. -19@-18. -22@-5. -50@1.}

          Uploaded Image: image6.jpg


WildHair
{0@0. 30@6. 41@-27. 26@-13. 26@-35. 12@-16. 9@-38. -2@-20. -11@-39. -14@-20. -30@-37. -27@-11. -46@-28. -34@4.}

          Uploaded Image: image7.jpg


FunnyHair
{0@0. 13@-9. 26@0. 36@-6. 46@8. 39@-20. 23@-31. 1@-33. -23@-33. -39@-19. -47@8. -28@-7. -18@0. -8@-9.}

          Uploaded Image: image8.jpg


PinapleHair
{0@0. 21@1. 31@-15. 16@-15. 19@-35. 7@-22. 4@-44. -3@-25. -13@-47. -15@-22. -27@-43. -24@-16. -40@-13. -27@0.}

          Uploaded Image: image9.jpg


StrangeHair
{0@0. 55@23. 35@-4. 51@-32. 2@-16. -53@-32. -36@-7. -53@23.}

          Uploaded Image: image10.jpg


CrownHair
{0@-1. 22@0. 21@-31. 9@-13. -1@-34. -11@-14. -26@-31. -23@0.}

          Uploaded Image: image11.jpg


PunkHair
{0@0. 23@5. 41@18. 79@-2. 41@-4. 49@-32. 22@-13. 13@-44. -4@-15. -26@-45. -29@-9. -58@-35. -47@-3. -81@-1. -45@18. -23@3.}

      Uploaded Image: image12.jpg
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


Obyクラスhatメソッド
hatにアクセスできるようにhatを返すメソッド。
--------------------------------------------
hat
	^ hat
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


Obyクラスhairメソッド
hairにアクセスできるようにhairを返すメソッド。
--------------------------------------------
hair
	^ hair
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


■ランダムに色を変えるメソッド

出たとこ勝負で部品の色を決めるっていうメソッドを追加しておくっす。

ObyクラスrandomHatColorメソッド
ランダムに帽子の色を変えられるメソッド。
--------------------------------------------
randomHatColor
	hat ifNotNil: [ 
		self hat color: (Color r: 255 atRandom
				g: 255 atRandom
				b: 255 atRandom
				range: 255)].
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )


ObyクラスrandomHairColorメソッド
ランダムに髪の毛の色を変えるメソッド。
--------------------------------------------
randomHairColor
	hair ifNotNil: [ 
		self hair color: (Color r: 255 atRandom
				g: 255 atRandom
				b: 255 atRandom
				range: 255)].
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



ObyクラスrandomSkinColorメソッド
ランダムに顔の色を変えるメソッドも追加。
--------------------------------------------
randomSkinColor
	self face faceSkin color: (Color r: 255 atRandom
				g: 255 atRandom
				b: 255 atRandom
				range: 255).
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



★インスタンスを出してみる

ってことで実際に帽子とか髪とかつけたオビーをみてみましょう!!
--------------------------------------------
boby _ Oby new openInWorld
boby addSilkHat
--------------------------------------------
Alt + d ( Cmd + d )



SilkHat
          Uploaded Image: image13.jpg

WesternHat

          Uploaded Image: image14.jpg

WitchHat
          Uploaded Image: image15.jpg

BucketHat
          Uploaded Image: image16.jpg

ClownHat
          Uploaded Image: image17.jpg

PanamaHat
          Uploaded Image: image18.jpg

EavesHat
          Uploaded Image: image19.jpg

WildHair
          Uploaded Image: image20.jpg

FunnyHair
          Uploaded Image: image21.jpg

PinapleHair
          Uploaded Image: image22.jpg

StrangeHair
          Uploaded Image: image23.jpg

CrownHair
          Uploaded Image: image24.jpg

PunkHair
      Uploaded Image: image25.jpg



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





■ MEMO ■

Links to this Page