forked from: forked from: 練習です。深海?
テストでちょっと変更。
カメラ位置がなぞ
// forked from achooooooooooooooooou's forked from: 練習です。深海?
// forked from sasaki_kaoru's 練習です。深海?
// テストでちょっと変更。
// カメラ位置がなぞ
package {
import flash.events.Event;
import flash.filters.BlurFilter;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.special.ParticleMaterial;
import org.papervision3d.objects.special.ParticleField;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*
import org.papervision3d.render.*;
import org.papervision3d.render.QuadrantRenderEngine;
import org.papervision3d.view.*;
[SWF (width="640", height="480", backgroundColor="0x000000", frameRate="30")]
public class paper3d extends ReflectionView
{
private var cube:Cube;
private var render:BasicRenderEngine;
private var mf:ParticleMaterial = new ParticleMaterial(0xFFFFFF, 1,ParticleMaterial.SHAPE_CIRCLE);
private var pf1:ParticleField = new ParticleField(mf, 1100, 1.2, 1100, 1100, 1100);
private var pf2:ParticleField = new ParticleField(mf, 1100, 1.4, 1100, 1100, 1100);
public function paper3d()
{
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);
super(640,480,false, false);
surfaceHeight = -1;
viewportReflection.filters = [new BlurFilter(8, 8, 1)];
setReflectionColor(1, 1, 1, 1, 1, 11);
initCube();
initPf();
camera.z = -400;
camera.y = 300;
addEventListener(Event.ENTER_FRAME, enterFrame);
}
public function initCube() : void
{
// Cube.
var ml : MaterialsList = new MaterialsList();
ml.addMaterial(new ColorMaterial(0x8811111),"all");
cube = new Cube(ml,150,150,150);
cube.y=120;
cube.useOwnContainer = true;
cube.filters = [new BlurFilter()];
cube.alpha = 1;
scene.addChild(cube);
}
public function initPf():void
{
scene.addChild( pf1 );
scene.addChild( pf2 );
}
public function enterFrame(e:Event) : void
{
camera.y -=0.9;
cube.yaw((320-mouseX)*0.01);
pf1.y -= 0.9;
pf1.x = pf1.x-Math.random() +0.5;
pf1.z = pf1.z-Math.random() +0.5;
pf2.y -=1.9;
pf2.x = pf2.x-Math.random() +0.5;
pf2.z = pf2.z-Math.random() +0.5;
if(cube.y<30) cube.y = 30;
if(camera.y<30)
{
camera.y = 30;
}
if(pf1.y <-800)
{
pf1.y = 1000;
}
if(pf2.y <-820)
{
pf2.y = 1000;
}
singleRender();
}
}
}