3Dぐりぐり (3)
♥0 |
Line 72 |
Modified 2009-05-23 11:10:11 |
MIT License
archived:2017-03-20 11:56:12
ActionScript3 source code
/**
* Copyright nacookan ( http://wonderfl.net/user/nacookan )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/jnUP
*/
package {
import flash.display.Sprite;
import flash.events.*;
import flash.geom.Point;
[SWF(backgroundColor="0x000000", frameRate="60")]
public class Guriguri3DCube extends Sprite {
public function Guriguri3DCube() {
var canvas:Sprite = new Sprite();
for(var i:Number = 0; i < 20; i++){
var cube:Sprite = generateCube();
cube.x = rnd(450);
cube.y = rnd(450);
cube.z = 500 - (i * (500 / 20));
canvas.addChild(cube);
}
addChild(canvas);
addEventListener(Event.ENTER_FRAME, function(e:Event):void{
transform.perspectiveProjection.projectionCenter = new Point(mouseX, mouseY);
});
}
private function generateCube():Sprite{
var cube:Sprite = new Sprite();
var color:Number = rnd(255 * 255 * 255);
var w1:Sprite = generateWall(color);
w1.x = 0;
w1.y = 0;
w1.z = 0;
w1.rotationX = 90;
cube.addChild(w1);
var w2:Sprite = generateWall(color);
w2.x = 0;
w2.y = 0;
w2.z = 50;
cube.addChild(w2);
var w3:Sprite = generateWall(color);
w3.x = 0;
w3.y = 0;
w3.z = 0;
w3.rotationY = -90;
cube.addChild(w3);
var w4:Sprite = generateWall(color);
w4.x = 50;
w4.y = 0;
w4.z = 50;
w4.rotationY = 90;
cube.addChild(w4);
var w5:Sprite = generateWall(color);
w5.x = 0;
w5.y = 50;
w5.z = 50;
w5.rotationX = -90;
cube.addChild(w5);
var w6:Sprite = generateWall(color);
w6.x = 0;
w6.y = 0;
w6.z = 0;
cube.addChild(w6);
return cube;
}
private function generateWall(color:Number):Sprite{
var wall:Sprite = new Sprite();
wall.graphics.lineStyle(1, 0xffffff, 0.5);
wall.graphics.beginFill(color, 0.5);
wall.graphics.drawRect(0, 0, 50, 50);
wall.graphics.endFill();
return wall;
}
private function rnd(max:Number):Number{
return Math.floor(Math.random() * max);
}
}
}