Level.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. var game = Atomic.game;
  2. var cache = game.cache;
  3. var scene = game.scene;
  4. var node = self.node;
  5. self.init = function(level) {
  6. node.createJSComponent("Lighting");
  7. self.tmxFile = cache.getResource("TmxFile2D", "Levels/" + level);
  8. self.tileMap = node.createComponent("TileMap2D");
  9. self.tileMap.setTmxFile(self.tmxFile);
  10. self.levelParser = new LevelParser(self.tileMap);
  11. }
  12. function spawnPlayer() {
  13. var position = self.levelParser.getSpawnpoint();
  14. self.playerNode = node.createChild("PlayerNode");
  15. self.player = self.playerNode.createJSComponent("Player");
  16. self.player.init(position);
  17. // Create the background after the player as it's position is updated
  18. // after the player in post update
  19. var backgroundNode = scene.createChild("Background");
  20. backgroundNode.createJSComponent("Background");
  21. }
  22. function createEntities() {
  23. var platforms = self.levelParser.getEntities("MovingPlatform");
  24. for (var i = 0; i < platforms.length; i++) {
  25. var p = platforms[i];
  26. var pnode = scene.createChild("PlatformNode");
  27. var platform = pnode.createJSComponent("MovingPlatform");
  28. platform.init(p.start, p.stop);
  29. }
  30. var vines = self.levelParser.getEntities("Vine");
  31. for (var i = 0; i < vines.length; i++) {
  32. var vnode = scene.createChild("Vine");
  33. var vine = vnode.createJSComponent("Vine");
  34. vine.init(vines[i].position);
  35. }
  36. var bats = self.levelParser.getEntities("Bat");
  37. for (var i = 0; i < bats.length; i++) {
  38. var bnode = scene.createChild("Bat");
  39. var bat = bnode.createJSComponent("Bat");
  40. bnode.position2D = bats[i].position;
  41. }
  42. var coins = self.levelParser.getEntities("Coin");
  43. for (var i = 0; i < coins.length; i++) {
  44. var cnode = scene.createChild("Coin");
  45. var coin = cnode.createJSComponent("Coin");
  46. cnode.position2D = coins[i].position;
  47. }
  48. var batWaypoints = self.levelParser.getEntities("BatWaypoint");
  49. for (var i = 0; i < batWaypoints.length; i++) {
  50. Platformer.batWaypoints.push(batWaypoints[i].position);
  51. }
  52. }
  53. function start() {
  54. // create the physics
  55. self.levelParser.createPhysics(self.tileMap, self.tmxFile);
  56. createEntities();
  57. // spawn the player
  58. spawnPlayer();
  59. }
  60. function update(timeStep) {
  61. }