トップページ > 3D > 簡易3D(11) - クラス化



概要


表示対象のオブジェクトをクラス化しておきましょう。


プログラム

import flash.display.Sprite;
 
class Ball extends Sprite
{
	public var px:Number = 0;
	public var py:Number = 0;
	public var pz:Number = 0;
 
	public function Ball()
	{
		graphics.beginFill(0x0);
		graphics.drawCircle(0, 0, 30);
		graphics.endFill();
	}
}
 
クラス名は何でも構いませんが、とりあえずBallにしておきます。
pzプロパティは、zposに当たります。


後は今まで使用していたobj変数を全てBallオブジェクトに、zposをpzに変換するだけです。
わざわざ解説する必要は無いので、下記のコードを参照してください。


検証用コード

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.geom.Point;
 
	public class Main extends Sprite
	{
		private var f:Number = 100;
		private var vp:Point = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
		private var ball:Ball;
 
		public function Main()
		{
			ball = new Ball();
			addChild(ball);
 
			stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
 
		private function onEnterFrame(event:Event):void
		{
			var scale:Number = f / (f + ball.pz);
			ball.scaleX = ball.scaleY = scale;
 
			if (ball.pz > -f)
			{
				ball.x = vp.x + ball.px * scale;
				ball.y = vp.y + ball.py * scale;
				ball.visible = true;
			}
			else
			{
				ball.visible = false;
			}
		}
 
		private function onKeyDown(event:KeyboardEvent):void 
		{
			if (event.keyCode == 38) ball.pz += 10;
			if (event.keyCode == 40) ball.pz -= 10;
		}
	}
}
 
 
import flash.display.Sprite;
 
class Ball extends Sprite
{
	public var px:Number = 0;
	public var py:Number = 0;
	public var pz:Number = 100;
 
	public function Ball()
	{
		graphics.beginFill(0x0);
		graphics.drawCircle(0, 0, 30);
		graphics.endFill();
	}
}
 

|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|