Player.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. var game = Atomic.game;
  2. var input = game.input;
  3. var node = self.node;
  4. self.allowMove = true;
  5. self.allowShoot = true;
  6. self.shootDelta = 0;
  7. self.health = 10;
  8. self.onHit = function() {
  9. var expNode = game.scene.createChild("Explosion");
  10. var exp = expNode.createJSComponent("Explosion");
  11. exp.init(node.worldPosition2D);
  12. self.health--;
  13. SpaceGame.hud.updateHealth(self.health);
  14. if (self.health == 0) {
  15. SpaceGame.lose();
  16. }
  17. }
  18. function doShooting(timeStep) {
  19. if (self.shootDelta > 0) {
  20. self.shootDelta -= timeStep;
  21. if (self.shootDelta < 0)
  22. self.shootDelta = 0;
  23. return;
  24. }
  25. if (!input.getKeyDown(Atomic.KEY_W) && !input.getKeyDown(Atomic.KEY_UP) && !input.getKeyDown(Atomic.KEY_SPACE))
  26. return;
  27. self.shootDelta = 0.15;
  28. var pos = node.position2D;
  29. pos[1] += .5;
  30. SpaceGame.spawnBullet(pos, true);
  31. }
  32. function moveShip(timeStep) {
  33. var speed = 3.0 * timeStep;
  34. var pos = node.position2D;
  35. var left = false;
  36. var right = false;
  37. if (input.getKeyDown(Atomic.KEY_A) || input.getKeyDown(Atomic.KEY_LEFT))
  38. pos[0] -= speed;
  39. if (input.getKeyDown(Atomic.KEY_D) || input.getKeyDown(Atomic.KEY_RIGHT))
  40. pos[0] += speed;
  41. if (pos[0] < -SpaceGame.halfWidth + 2)
  42. pos[0] = -SpaceGame.halfWidth + 2;
  43. if (pos[0] > SpaceGame.halfWidth - 2)
  44. pos[0] = SpaceGame.halfWidth - 2;
  45. node.position2D = pos;
  46. }
  47. function start() {
  48. var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
  49. var sprite2D = node.createComponent("StaticSprite2D");
  50. sprite2D.sprite = spaceSheet.getSprite("spaceship_mantis");
  51. sprite2D.blendMode = Atomic.BLEND_ALPHA;
  52. node.position2D = [0, -SpaceGame.halfHeight + 1];
  53. }
  54. function update(timeStep) {
  55. if (self.allowShoot)
  56. doShooting(timeStep);
  57. if (self.allowMove)
  58. moveShip(timeStep);
  59. }