AtomicGame.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. Atomic.editor = null;
  2. function Game() {
  3. this.engine = Atomic.getEngine();
  4. this.cache = Atomic.getResourceCache();
  5. this.renderer = Atomic.getRenderer();
  6. this.graphics = Atomic.getGraphics();
  7. this.input = Atomic.getInput();
  8. this.ui = Atomic.getUI();
  9. if (Atomic.platform == "Android") {
  10. this.renderer.reuseShadowMaps = false;
  11. this.renderer.shadowQuality = Atomic.SHADOWQUALITY_LOW_16BIT;
  12. }
  13. }
  14. Game.prototype.init = function(start, update) {
  15. this.update = update;
  16. // register global to get at quickly
  17. __js_atomicgame_update = update;
  18. if (typeof(start) === "function")
  19. start();
  20. }
  21. Game.prototype.getSpriteSheet2D = function(xmlFile) {
  22. return this.cache.getResource("SpriteSheet2D", xmlFile);
  23. }
  24. Game.prototype.getSpriteSheet = Game.prototype.getSpriteSheet2D;
  25. Game.prototype.getSound = function(soundFile) {
  26. return this.cache.getResource("Sound", soundFile);
  27. }
  28. Game.prototype.getSprite2D = function(spriteFile) {
  29. return this.cache.getResource("Sprite2D", spriteFile);
  30. }
  31. Game.prototype.showDebugHud = function() {
  32. var uiStyle = this.cache.getResource("XMLFile", "UI/DefaultStyle.xml");
  33. var debugHud = this.engine.createDebugHud();
  34. debugHud.defaultStyle = uiStyle;
  35. debugHud.toggleAll();
  36. }
  37. Game.prototype.createScene2D = function() {
  38. var scene = new Atomic.Scene();
  39. scene.createComponent("Octree");
  40. var cameraNode = scene.createChild("Camera");
  41. cameraNode.position = [0.0, 0.0, -10.0];
  42. var camera = cameraNode.createComponent("Camera");
  43. camera.orthographic = true;
  44. camera.orthoSize = this.graphics.height * Atomic.PIXEL_SIZE;
  45. var viewport = new Atomic.Viewport(scene, camera);
  46. if (Atomic.editor) {
  47. var _viewport = Atomic.editor.viewport;
  48. viewport.rect = [_viewport.left, _viewport.top, _viewport.right, _viewport.bottom];
  49. var width = (_viewport.right - 8) - _viewport.left;
  50. var height = _viewport.bottom - _viewport.top;
  51. this.ui.getRoot().position = [_viewport.left, _viewport.top];
  52. this.ui.getRoot().setSize(width, height);
  53. }
  54. this.renderer.setViewport(0, viewport);
  55. this.scene = scene;
  56. this.cameraNode = cameraNode;
  57. this.camera = camera;
  58. this.viewport = viewport;
  59. return scene;
  60. }
  61. Game.prototype.createScene3D = function() {
  62. var scene = new Atomic.Scene();
  63. scene.createComponent("Octree");
  64. var cameraNode = scene.createChild("Camera");
  65. cameraNode.position = [0.0, 0.0, -10.0];
  66. var camera = cameraNode.createComponent("Camera");
  67. var viewport = new Atomic.Viewport(scene, camera);
  68. if (Atomic.editor) {
  69. var _viewport = Atomic.editor.viewport;
  70. viewport.rect = [_viewport.left, _viewport.top, _viewport.right - 8, _viewport.bottom];
  71. var width = (_viewport.right - 8) - _viewport.left;
  72. var height = _viewport.bottom - _viewport.top;
  73. this.ui.getRoot().position = [_viewport.left, _viewport.top];
  74. this.ui.getRoot().setSize(width, height);
  75. }
  76. this.renderer.setViewport(0, viewport);
  77. this.scene = scene;
  78. this.cameraNode = cameraNode;
  79. this.camera = camera;
  80. this.viewport = viewport;
  81. return scene;
  82. }
  83. Atomic.game = exports.game = new Game();