RemotePlayer.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /* global SpaceGame */
  2. 'atomic component';
  3. exports.component = function(self) {
  4. var game = Atomic.game;
  5. var input = game.input;
  6. var KEY_LEFT = 1;
  7. var KEY_RIGHT = 2;
  8. var KEY_SHOOT = 4;
  9. var node = self.node;
  10. self.allowMove = true;
  11. self.allowShoot = true;
  12. self.shootDelta = 0;
  13. self.health = 10;
  14. self.serverToClientConnection = null;
  15. self.init = function(_serverToClientConnection) {
  16. print("RemotePlayer is now intialized!!!");
  17. self.serverToClientConnection = _serverToClientConnection;
  18. print("Testing Port");
  19. print( self.serverToClientConnection.getPort());
  20. };
  21. self.onHit = function() {
  22. var expNode = SpaceGame.myscene.createChild("Explosion");
  23. var exp = expNode.createJSComponent("Components/Explosion.js", {
  24. spawnPosition: node.worldPosition2D
  25. });
  26. self.health--;
  27. SpaceGame.hud.updateHealth(self.health);
  28. if (self.health == 0) {
  29. // SpaceGame.lose();
  30. }
  31. };
  32. function isKeyDown(key) {
  33. if (!self.serverToClientConnection) {
  34. return false;
  35. }
  36. return self.serverToClientConnection.isControlButtonDown(key);
  37. }
  38. function doShooting(timeStep) {
  39. if (self.shootDelta > 0) {
  40. self.shootDelta -= timeStep;
  41. if (self.shootDelta < 0)
  42. self.shootDelta = 0;
  43. return;
  44. }
  45. if (!isKeyDown(KEY_SHOOT))
  46. return;
  47. self.shootDelta = 0.15;
  48. var pos = node.position2D;
  49. pos[1] += .5;
  50. SpaceGame.spawnBullet(pos, true);
  51. }
  52. function moveShip(timeStep) {
  53. var speed = 3.0 * timeStep;
  54. var pos = node.position2D;
  55. if (isKeyDown(KEY_LEFT))
  56. pos[0] -= speed;
  57. if (isKeyDown(KEY_RIGHT))
  58. pos[0] += speed;
  59. if (pos[0] < -SpaceGame.halfWidth + 2)
  60. pos[0] = -SpaceGame.halfWidth + 2;
  61. if (pos[0] > SpaceGame.halfWidth - 2)
  62. pos[0] = SpaceGame.halfWidth - 2;
  63. node.position2D = pos;
  64. }
  65. self.start = function() {
  66. var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
  67. var sprite2D = node.createComponent("StaticSprite2D");
  68. sprite2D.sprite = spaceSheet.getSprite("spaceship_mantis");
  69. sprite2D.blendMode = Atomic.BlendMode.BLEND_ALPHA;
  70. node.position2D = [SpaceGame.halfWidth, -SpaceGame.halfHeight + .65];
  71. };
  72. self.update = function(timeStep) {
  73. if (!self.serverToClientConnection) {
  74. return;
  75. }
  76. if (self.allowShoot)
  77. doShooting(timeStep);
  78. if (self.allowMove)
  79. moveShip(timeStep);
  80. };
  81. };