CapitalShip.js 1.7 KB

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