Skip to content

Instantly share code, notes, and snippets.

@lizhi525
Created June 28, 2012 08:09
Show Gist options
  • Save lizhi525/3009829 to your computer and use it in GitHub Desktop.
Save lizhi525/3009829 to your computer and use it in GitHub Desktop.
package
{
import aerys.minko.example.core.celshading.CelShadingShader;
import aerys.minko.example.core.cubes.NormalsShader;
import aerys.minko.example.core.postprocessing.NoisePostProcessingShader;
import aerys.minko.example.core.terrain.TerrainShader;
import aerys.minko.render.effect.basic.BasicShader;
import aerys.minko.render.effect.Effect;
import aerys.minko.scene.node.mesh.geometry.primitive.BillboardsGeometry;
import aerys.minko.scene.node.mesh.geometry.primitive.CubeGeometry;
import aerys.minko.scene.node.mesh.geometry.primitive.CylinderGeometry;
import aerys.minko.scene.node.mesh.geometry.primitive.SphereGeometry;
import aerys.minko.scene.node.mesh.geometry.primitive.TeapotGeometry;
import aerys.minko.scene.node.mesh.geometry.primitive.TriangleGeometry;
import aerys.minko.scene.node.mesh.Mesh;
import aerys.minko.scene.node.mesh.geometry.Geometry;
import aerys.minko.scene.node.mesh.geometry.primitive.QuadGeometry;
import aerys.minko.type.enum.Blending;
import aerys.minko.type.loader.TextureLoader;
import aerys.minko.type.math.Vector4;
import aerys.minko.type.stream.StreamUsage;
import aerys.minko.type.stream.iterator.VertexIterator;
import aerys.minko.type.stream.iterator.VertexReference;
import net.game_develop.animation.utils.Stats;
import com.bit101.utils.MinimalConfigurator;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.MouseEvent;
[Frame(factoryClass="Preloader")]
public class MazeExample extends MinkoExampleApplication
{
[Embed(source="aerys/minko/example/core/assets/terrain.jpg")]
private static const TERRAIN_TEXTURE : Class;
private static const SIZE : uint = 40;
private var _terrain : Mesh = null;
override protected function initializeScene() : void
{
super.initializeScene();
cameraController.distance = 50;
cameraController.pitch = Math.PI*.7;
cameraController.yaw = Math.PI * .5;
scene.properties.setProperties({
lightEnabled : true,
lightDiffuseColor : 0xffffff,
lightDiffuse : .7,
lightAmbientColor : 0xffffff,
lightAmbient : .3,
lightDirection : new Vector4(0, .1, -.2)
});
initializeMaze();
//scene.postProcessingEffect = new Effect(new NoisePostProcessingShader());
addChild(new Stats);
}
override protected function initializeUI() : void
{return;
var cfg : MinimalConfigurator = new MinimalConfigurator(this);
cfg.parseXML(
<comps>
<PushButton label="Generate Maze" x="10" y="10"
event="click:generateTerrainButtonClickHandler"/>
</comps>
);
}
public function generateTerrainButtonClickHandler(event : MouseEvent) : void
{
initializeMaze();
}
private function initializeMaze() : void
{
if (_terrain)
{
_terrain.parent = null;
_terrain.geometry.dispose();
}
var data:Vector.<Number> = new Vector.<Number>;
//var maze:Array = boutaoshi(SIZE, SIZE);
for (var y:int = 0; y < SIZE;y++ ) {
for (var x:int = 0; x < SIZE;x++ ) {
//data.push(maze[y][x]);
data.push(Math.random() < .5?0:(Math.random()*.5+.5));
}
}
var terrainGeometry : Geometry = new MazeGeometry(data,SIZE, SIZE, StreamUsage.DYNAMIC);
_terrain = new Mesh(
terrainGeometry,
{
diffuseColor : 0xffffff,
lightEnabled : true
}
);
_terrain.transform.appendScale(100, 100, 10);
scene.addChild(_terrain);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment