CapitalShip.js 1.9 KB

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