CapitalShip.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /* global SpaceGame */
  2. 'atomic component';
  3. exports.component = function(self) {
  4. var game = Atomic.game;
  5. var node = self.node;
  6. var scene = SpaceGame.myscene;
  7. self.allowShoot = true;
  8. self.shootDelta = 0;
  9. self.health = 10;
  10. self.onHit = function(pos) {
  11. var expNode = scene.createChild("Explosion");
  12. var exp = expNode.createJSComponent("Components/Explosion.js", {
  13. spawnPosition: node.worldPosition2D
  14. });
  15. exp.node.scale2D = [2.0, 2.0];
  16. self.health--;
  17. if (!self.health) {
  18. die();
  19. SpaceGame.respawnCapitalShip();
  20. }
  21. };
  22. function die() {
  23. SpaceGame.capitalShipDestroyed();
  24. for (var i = 0; i < 16; i++) {
  25. var pos = node.position2D;
  26. pos[0] += SpaceGame.random(-2, 2);
  27. pos[1] += SpaceGame.random(-2, 2);
  28. var expNode = scene.createChild("Explosion");
  29. var exp = expNode.createJSComponent("Components/Explosion.js", {
  30. spawnPosition: node.worldPosition2D
  31. });
  32. var randomSize = SpaceGame.random(4, 8);
  33. exp.node.scale2D = [randomSize, randomSize];
  34. }
  35. }
  36. // using start to initialize the script component
  37. self.start = function() {
  38. // install AI
  39. var ai = node.createJSComponent("Components/AI.js");
  40. ai.canMove = true;
  41. var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
  42. // add a sprite component to our node
  43. var sprite2D = self.sprite2D = node.createComponent("StaticSprite2D");
  44. sprite2D.blendMode = Atomic.BlendMode.BLEND_ALPHA;
  45. sprite2D.sprite = spaceSheet.getSprite("spaceship_locust");
  46. sprite2D.alpha = 0.0;
  47. node.position2D = [-4, SpaceGame.halfHeight - 1];
  48. node.roll(180);
  49. };
  50. // update function called per frame with delta time
  51. self.update = function(timeStep) {
  52. // fade in
  53. var alpha = self.sprite2D.alpha;
  54. if (alpha < 1) {
  55. alpha += timeStep * 1.5;
  56. if (alpha > 1)
  57. alpha = 1;
  58. self.sprite2D.alpha = alpha;
  59. }
  60. };
  61. };