/src/aerys/minko/example/core/teapots/TeapotsExample.as

https://bitbucket.org/HopeSky/mars_nd2d · ActionScript · 59 lines · 45 code · 14 blank · 0 comment · 1 complexity · 254bed1cb39aff37f31243468026b9fc MD5 · raw file

  1. package aerys.minko.example.core.teapots
  2. {
  3. import aerys.minko.example.core.cubes.NormalsShader;
  4. import aerys.minko.render.Effect;
  5. import aerys.minko.render.geometry.Geometry;
  6. import aerys.minko.render.geometry.primitive.TeapotGeometry;
  7. import aerys.minko.render.material.Material;
  8. import aerys.minko.scene.node.Mesh;
  9. import aerys.monitor.Monitor;
  10. import flash.events.Event;
  11. import flash.utils.getTimer;
  12. public class TeapotsExample extends MinkoExampleApplication
  13. {
  14. private static const MATERIAL : Material = new Material(new Effect(new NormalsShader()));
  15. private static const TARGET_FPS : Number = 30;
  16. private static const GEOMETRY : Geometry = new TeapotGeometry(17);
  17. private var _lastTime : int = 0;
  18. override protected function initializeScene() : void
  19. {
  20. super.initializeScene();
  21. viewport.backgroundColor = 0;
  22. _lastTime = getTimer();
  23. }
  24. override protected function enterFrameHandler(event : Event) : void
  25. {
  26. var time : int = getTimer();
  27. if (Monitor.monitor.framerate > TARGET_FPS)
  28. addTeapot();
  29. _lastTime = time;
  30. super.enterFrameHandler(event);
  31. }
  32. private function addTeapot() : void
  33. {
  34. var teapot : Mesh = new Mesh(GEOMETRY, MATERIAL);
  35. teapot.transform
  36. .appendUniformScale(0.03)
  37. .appendTranslation(
  38. -1 + Math.random() * 2,
  39. -1 + Math.random() * 2,
  40. -1 + Math.random() * 2
  41. );
  42. scene.addChild(teapot);
  43. }
  44. }
  45. }