RemotePlayer.js 2.4 KB

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