flash on 2012-5-15
import flash.media.Camera;
http://alternativaplatform.com/en/docs/7.7.0/index.html
♥0 |
Line 143 |
Modified 2012-10-23 16:11:54 |
MIT License
archived:2017-03-30 22:58:03
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/3dT0E
*/
package {
import flash.display.BlendMode;
import flash.display.BitmapData;
import flash.events.KeyboardEvent;
import flash.events.Event;
//import flash.media.Camera;
//http://alternativaplatform.com/en/docs/7.7.0/index.html
import alternativ7.engine3d.containers.ConflictContainer;
import alternativ7.engine3d.containers.BSPContainer;
import alternativ7.engine3d.core.Object3DContainer;
import alternativ7.engine3d.core.Camera3D;
import alternativ7.engine3d.core.EllipsoidCollider;
import alternativ7.engine3d.objects.Mesh;
import alternativ7.engine3d.primitives.Plane;
import alternativ7.engine3d.primitives.Box;
import alternativ7.engine3d.primitives.Sphere;
import alternativ7.engine3d.primitives.GeoSphere;
import alternativ7.engine3d.core.View;
import alternativ7.engine3d.materials.Material;
import alternativ7.engine3d.materials.FillMaterial;
import alternativ7.engine3d.materials.TextureMaterial;
import alternativ7.engine3d.materials.NormalMapMaterial;
import alternativ7.engine3d.materials.FlatShadingMaterial;
import alternativ7.engine3d.materials.VertexLightMaterial;
import alternativ7.engine3d.materials.AverageLightMaterial;
import alternativ7.engine3d.materials.SphericalEnvironmentMaterial;
import alternativ7.types.Texture;
import alternativ7.engine3d.lights.AmbientLight;
import alternativ7.engine3d.lights.DirectionalLight;
import alternativ7.engine3d.lights.OmniLight;
import alternativ7.engine3d.lights.SpotLight;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public var cam:Camera3D;
public var cont:BSPContainer = new BSPContainer();
public var mwidth:int = 4;
public var mheight:int = 4;
public var myMap:Array =
[1,1,1,1,
1,-1,0,0,
1,-1,0,0,
0,1,0,1];
public function FlashTest() {
// write as3 code here..
cam = new Camera3D();
cam.view = new View(500,500);
cam.z = -100;
cam.y = -100;
cam.rotationX = -1.57 / 2;
addChild(cam.view);
cont.addChild(cam);
var bm:BitmapData;
bm = new BitmapData(64,64,false,0);
bm.noise(123213,0,16,3,true);
bm = new BitmapData(64,64,false,0);
bm.noise(123123);
genMap();
var k:int;
var i:int;
var yt:int;
var t:int;
var p:Plane;
var b:Box;
var mat:Material = new FillMaterial(0xFF0000,1,2,0);
var mat2:Material = new FillMaterial(0x00FF00,1,2,0);
for (i = 0; i < mheight; i++)
{
yt = i * mwidth;
for (k = 0; k < mwidth; k++)
{
t = myMap[k+yt];
if (t < 0) { continue; }
if (t == 0)
{
p = new Plane(16,16,1,1);
p.setMaterialToAllFaces(mat);
p.x = k*16;
p.z = i*16;
p.rotationX = 1.57;
cont.addChild(p);
}
else
if (t > 0)
{
b = new Box(16,16,16,1,1,1);
b.setMaterialToAllFaces(mat2);
b.x = k*16;
b.z = i *16;
b.y = -8;
cont.addChild(b);
}//endif
}//nextk
}//nexti
stage.addEventListener(Event.ENTER_FRAME, onEnter);
stage.addEventListener(KeyboardEvent.KEY_DOWN, kdown);
stage.addEventListener(KeyboardEvent.KEY_UP, kup);
}//ctor
public function genMap():void
{
mwidth = 16;
mheight = 16;
var num:int;
num = mwidth * mheight;
var i :int;
myMap = new Array();
for (i = 0; i < num; i++)
{
myMap.push( Math.random() > 0.5 ? 0 : 1 );
}//nexti
}//genmap
public function onEnter(e:Event):void
{
//ref
//http://www.dakmm.com/?p=272
if (cKeyMan.isKeyDown(39) ) { cam.x += 20;}
if (cKeyMan.isKeyDown(37) ) { cam.x -= 20;}
if (cKeyMan.isKeyDown(38) ) { cam.y -= 20;}
if (cKeyMan.isKeyDown(40) ) { cam.y += 20;}
cam.render();
}//onenter
public function kdown(e:KeyboardEvent):void
{
cKeyMan.setKey(e.keyCode, true);
}//kdown
public function kup(e:KeyboardEvent):void
{
cKeyMan.setKey(e.keyCode, false);
}//kup
}//flashtest
}//package
internal class cKeyMan
{
public function cKeyMan() {}//ctor (unused)
public static var vecKey:Vector.<Boolean> = new Vector.<Boolean>(512,true);
public static function setKey(k:int, b:Boolean):void
{
if (k < 0) return;
if (k >= 512) return;
vecKey[k] = b;
}//setkey
public static function isKeyDown(k:int):Boolean
{
if (k < 0) return false;
if (k >= 512) return false;
return vecKey[k];
}//iskey
}//keyman