CapitalShip.js 1.9 KB

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