Created
June 28, 2012 08:09
-
-
Save lizhi525/3009829 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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