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

funfunfun40

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


■マウスクリックでボールを増やす

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 )

Uploaded Image: image14.jpg


handlesMouseDownメソッド
右ドラッグでケースを移動出来るようにします。
--------------------------------------------
handlesMouseDown: evt
	^ evt yellowButtonPressed not.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image15.jpg


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 )

Uploaded Image: image22.jpg


addCustomMenuItemsメソッド
メニューにサブモーフを全て削除する「全てを消去」の項目を追加します。
呼び出されるメソッドの「clearParticle」はこの後つくりまする。
--------------------------------------------
addCustomMenuItems: aCustomMenu hand: aHandMorph
	super addCustomMenuItems: aCustomMenu hand: aHandMorph.
	aCustomMenu add: '全てを消去' action: #clearParticle.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image17.jpg


clearParticleメソッド
メニューから呼び出される「clearParticle」メソッドです。
--------------------------------------------
clearParticle
	"サブモーフを全て削除"
	self removeAllMorphs.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )

Uploaded Image: image18.jpg


インスタンスを出してみる
--------------------------------------------
Case new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )

Uploaded Image: image19.jpg


ボールの入っていないケースだけが出てきたです。

Uploaded Image: image20.jpg


でも、クリックすると・・・たくさ〜ん出てくる出てくる。

Uploaded Image: image21.jpg


「粒子遊び」に近づくためには、この後「落下」や「粒子同士のアタリ判定」やら
いろいろやんなくちゃだけど、とりあえずはここら辺で休憩。



■もうちょっと遊んでみそ。

そうそうボールの大きさを変えてみるだけでけっこうおもろいです。
大きくするとまるで色ガラスみたいだし、小さくすると粒子みたい。
(ん、だから粒子だっつ〜の!!)
このまんま続けていろいろなグラフィカルなモーフを作りたくなっちゃうね。

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 )

Uploaded Image: image24.jpg


self extent: 20@20 の場合
Uploaded Image: image23.jpg


self extent: 3@3 の場合
Uploaded Image: image25.jpg


ケースのサイズをUploaded Image: size.gifでいろいろ変更したり、
ケースの色をUploaded Image: color.gifで変更してアートしてみちゃってください。

Uploaded Image: image.jpg



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







■ MEMO ■

Sunday, 28 March 2004, 11:11:36 pm
わー。綺麗ですね。これチェンジセットとかアップしてくれないんですか? --tak

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