OBY25
帽子と髪の毛も作っちゃう
基本的には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.}
WesternHat
{1@2. 42@2. 20@-5. 25@-50. 1@-26. -21@-50. -16@-5. -44@2.}
WitchHat
{0@0. 37@0. 17@-6. -1@-77. -14@-9. -40@-1.}
BucketHat
{0@0. 38@0. 21@-12. 15@-33. 0@-34. -21@-31. -22@-12. -41@0.}
ClownHat
{0@0. 22@-1. -2@-36. -19@-1.}
PanamaHat
{0@0. 48@2. 21@-7. 16@-21. -1@-26. -19@-21. -21@-7. -50@1.}
EavesHat
{0@0. 26@0. 22@-17. 1@-27. -19@-18. -22@-5. -50@1.}
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.}
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.}
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.}
StrangeHair
{0@0. 55@23. 35@-4. 51@-32. 2@-16. -53@-32. -36@-7. -53@23.}
CrownHair
{0@-1. 22@0. 21@-31. 9@-13. -1@-34. -11@-14. -26@-31. -23@0.}
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.}
--------------------------------------------
アクセプト。
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
WesternHat
WitchHat
BucketHat
ClownHat
PanamaHat
EavesHat
WildHair
FunnyHair
PinapleHair
StrangeHair
CrownHair
PunkHair
▲PREV ------ ● TOP ● ------ NEXT▼
■ MEMO ■
Links to this Page
- I BOBY last edited on 28 April 2004 at 8:57:55 pm by tk0005-202x210x196x109.ap-TK.usen.ad.jp
- OBY24 last edited on 17 June 2007 at 7:14:09 am by localhost.localdomain
- OBY26 last edited on 17 June 2007 at 7:24:07 am by localhost.localdomain