CapitalShip.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var game = Atomic.game;
  2. var node = self.node;
  3. var scene = game.scene;
  4. self.allowShoot = true;
  5. self.shootDelta = 0;
  6. self.health = 10;
  7. self.onHit = function(pos) {
  8. var expNode = game.scene.createChild("Explosion");
  9. var exp = expNode.createJSComponent("Explosion");
  10. exp.init(pos);
  11. var expNode = game.scene.createChild("Explosion");
  12. exp = expNode.createComponent("JSComponent");
  13. exp.spawnPosition = pos;
  14. exp.node.scale2D = [2.0, 2.0];
  15. self.health--;
  16. if (!self.health) {
  17. die();
  18. SpaceGame.win();
  19. }
  20. }
  21. function die() {
  22. SpaceGame.capitalShipDestroyed();
  23. for (var i = 0; i < 16; i++) {
  24. var pos = node.position2D;
  25. pos[0] += SpaceGame.random(-2, 2);
  26. pos[1] += SpaceGame.random(-2, 2);
  27. var expNode = scene.createChild("Explosion");
  28. var exp = expNode.createJSComponent("Explosion");
  29. exp.init(pos);
  30. var randomSize = SpaceGame.random(4, 8);
  31. exp.node.scale2D = [randomSize, randomSize];
  32. }
  33. }
  34. // using start to initialize the script component
  35. function start() {
  36. // install AI
  37. var ai = node.createJSComponent("AI");
  38. ai.canMove = true;
  39. var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
  40. // add a sprite component to our node
  41. var sprite2D = node.createComponent("StaticSprite2D");
  42. sprite2D.blendMode = Atomic.BLEND_ALPHA;
  43. sprite2D.sprite = spaceSheet.getSprite("spaceship_locust");
  44. node.position2D = [-4, SpaceGame.halfHeight - 1];
  45. node.roll(180);
  46. }
  47. // update function called per frame with delta time
  48. function update(timeStep) {
  49. }