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

OBY22

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


目から光線を出すのら!

相手のモーフ向かって光線も出せるようにしちゃうのだ。
何故かって?楽しそうだから・・・・。

■RayLineクラスを作る

RayLineクラス
光線のクラスをPolygonMorphを親にして作りまする。
cntは光線の表示カウンター
--------------------------------------------
PolygonMorph subclass: #RayLine
	instanceVariableNames: 'cnt '
	classVariableNames: ''
	poolDictionaries: ''
	category: 'ObyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )




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

initializeメソッド
cntを0にするだけ
--------------------------------------------
initialize
	super initialize.
	cnt _ 0.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )




setLineメソッド
ラインの両端の座標を設定するメソッド
--------------------------------------------
setLine: aMorph position: aPoint
	self setVertices: {aPoint. aMorph center.}.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



stepメソッド
RayLineのインスタンスが生成されてから40カウントで自ら消滅ってわけね。
--------------------------------------------
step
	super step.
	cnt _ cnt + 1.
	cnt >= 40 ifTrue: [
		self delete].
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )




stepTimeメソッド
0ね!
--------------------------------------------
stepTime
	^ 0
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



■ObyEyeクラスにメソッドを追加

beamメソッド
光線を発射するメソッド
RayLineのインスタンスを生成
光線の色はオレンジ色
ObyEyeのサブモーフにする
位置はirisのセンターに
RayLineのstepをスタート
--------------------------------------------
beam: aMorph
	| rl |
	rl _ RayLine new.
	rl borderWidth: 1.
	rl borderColor: Color orange.
	rl openInWorld.
	rl position: self iris center.
	rl setLine: aMorph position: self iris center.

	rl startStepping.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )





■ObyEyesクラスにメソッドを追加

beamメソッド
ObyEyesにも同名のメソッドを追加ね。
これで両目から光線を発射できるようになったってわけね。
--------------------------------------------
beam: aMorph
	self leftEye beam: aMorph.
	self rightEye beam: aMorph.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )





■Obyクラスにメソッドを追加

beamメソッド
Obyからもアクセスできるようにするです。
--------------------------------------------
beam: aMorph
	self eyes beam: aMorph.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )



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

全ページのやったやつがあるならこれは省略可でするよ。
--------------------------------------------
boby _ Oby new openInWorld
target _ EllipseMorph new openInWorld.
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image2.jpg



--------------------------------------------
boby beam: target
--------------------------------------------
Alt + d ( Cmd + d )

      Uploaded Image: image3.jpg






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







■ MEMO ■

Monday, 19 April 2004, 9:49:31 pm

ちなみにここまでのソースコード。--thoru

ObyMorph.st


Links to this Page