funfunfun40
■マウスクリックでボールを増やす
● mouseUpメソッド
ケースをクリックすることでボールを追加できるようにしましょう。
ランダムで半透明な色を設定し、ボールをマウスのカーソル位置に生成します。
--------------------------------------------
mouseUp: evt
| a |
"新しくボールを生成"
a _ Particle new.
"マウスカーソルの位置に"
a position: evt position.
"乱数で色を指定"
a color: (Color r: (10 atRandom / 10)
g: (10 atRandom / 10)
b: (10 atRandom / 10)
alpha: 0.5).
"ケースのサブモーフにする"
self addMorph: a.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● handlesMouseDownメソッド
右ドラッグでケースを移動出来るようにします。
--------------------------------------------
handlesMouseDown: evt
^ evt yellowButtonPressed not.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
●initialize メソッドを変更する
ケースのインスタンスを出したときボールが1つもない状態に変更します。
コメントアウトしてますが削除してもいいよん。(緑色の文字の部分ね)
--------------------------------------------
initialize
"| a |"
"ケースの見た目を設定"
super initialize.
self extent: 100@150.
self color: (Color r: 0.8 g: 0.9 b: 0.9).
self borderWidth: 0.
"ボールを生成してサブモーフにする"
"a _ Particle new.
self addMorph: a."
"ステップ開始"
self startStepping.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● addCustomMenuItemsメソッド
メニューにサブモーフを全て削除する「全てを消去」の項目を追加します。
呼び出されるメソッドの「clearParticle」はこの後つくりまする。
--------------------------------------------
addCustomMenuItems: aCustomMenu hand: aHandMorph
super addCustomMenuItems: aCustomMenu hand: aHandMorph.
aCustomMenu add: '全てを消去' action: #clearParticle.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
● clearParticleメソッド
メニューから呼び出される「clearParticle」メソッドです。
--------------------------------------------
clearParticle
"サブモーフを全て削除"
self removeAllMorphs.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
インスタンスを出してみる
--------------------------------------------
Case new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )
ボールの入っていないケースだけが出てきたです。
でも、クリックすると・・・たくさ〜ん出てくる出てくる。
「粒子遊び」に近づくためには、この後「落下」や「粒子同士のアタリ判定」やら
いろいろやんなくちゃだけど、とりあえずはここら辺で休憩。
■もうちょっと遊んでみそ。
そうそうボールの大きさを変えてみるだけでけっこうおもろいです。
大きくするとまるで色ガラスみたいだし、小さくすると粒子みたい。
(ん、だから粒子だっつ〜の!!)
このまんま続けていろいろなグラフィカルなモーフを作りたくなっちゃうね。
● Particleクラスのinitializeメソッド
ボールの大きさ(緑色の文字のとこね)を変更するです。
--------------------------------------------
initialize
"ボールの見た目を設定"
super initialize.
self extent: 20@20.
self color: (Color r: 0.7 g: 0.7 b: 0.8).
self borderWidth: 0.
"移動量の初期設定"
addX _ 3.
addY _ 3.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
self extent: 20@20 の場合
self extent: 3@3 の場合
ケースのサイズをでいろいろ変更したり、
ケースの色をで変更してアートしてみちゃってください。
▲PREV ------ ● TOP ● ------ NEXT▼
■ MEMO ■
Sunday, 28 March 2004, 11:11:36 pm
わー。綺麗ですね。これチェンジセットとかアップしてくれないんですか? --tak
- けっこういけるでしょ?透明にしただけなのにね!まだアップするほどのものではないかな・・・と思ってたのですが。一応アップしちゃうです。(汗)--thoru
Particle.pr (プロジェクトファイル)
Particle.cs (一応念のためにチェンジセットも)
- 単純なのにめちゃくちゃ面白い!! 長押しするとパーティクルがだんだん大きくなるっていうのは? --tak
- メニューとかタイルとかで試してみようかな・・・。thoru
Saturday, 27 March 2004, 8:05:35 pm
実際にやってみるまではこんな単純なバウンシングボールでここまで楽しめるとは思ってなかった。いろいろ設定を変えるとそれもちょこっと変えただけで無限かのように思えるほどイマジネーションが刺激されちった。やっぱGraphic関係(便利そうなメソッドてんこもり)をもちっと突っ込んでみた方が良いかな・・・と欲望の翼がひろがりそうになるにゃあ。でもBobyの続きをぜひともやりたいので閉じちゃうことに。--thoru
Friday, 26 March 2004, 3:51:32 pm
ボール(Particle)のinitializeメソッドに
self assuredPlayer setPenDown: true.
を追加してペンで軌跡を描かせると面白いと思ったんだけど
ケースじゃなくてワールドに描画されちゃまってる・・・・。
まあケースを透明にすればそれなりに面白いんだけどね。ケースのサイズを変えたりケースの位置をいどうさせたりと。--thoru
Thursday, 25 March 2004, 5:52:38 am
ボールをEllipseMorphとかPolygonMorphとかいろいろ変えても面白いかもかも--thoru
Links to this Page
- FunFunFunMorphic last edited on 25 March 2004 at 5:25:44 am by tk0005-202x210x196x109.ap-TK.usen.ad.jp
- funfunfun39 last edited on 18 June 2007 at 5:25:01 am by localhost.localdomain