概要
簡易3D(10) - 非表示の設定
の続きです。
の続きです。
表示対象のオブジェクトをクラス化しておきましょう。
プログラム
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に当たります。
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();
}
}
このwikiの更新情報RSS