AI.js 988 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. exports.component = function(self) {
  2. var game = Atomic.game;
  3. var node = self.node;
  4. self.canMove = false;
  5. self.allowShoot = true;
  6. self.shootDelta = 0;
  7. self.start = function() {
  8. }
  9. self.update = function(timeStep) {
  10. if (SpaceGame.gameOver)
  11. return;
  12. var pos = node.worldPosition2D;
  13. var ppos = SpaceGame.playerNode.worldPosition2D;
  14. if (self.canMove) {
  15. if (Math.abs(pos[0] - ppos[0]) > .25) {
  16. if (pos[0] < ppos[0])
  17. pos[0] += timeStep * .95;
  18. else
  19. pos[0] -= timeStep * .95;
  20. node.position2D = pos;
  21. }
  22. }
  23. if (self.shootDelta > 0) {
  24. self.shootDelta -= timeStep;
  25. if (self.shootDelta < 0)
  26. self.shootDelta = 0;
  27. return;
  28. }
  29. if (Math.abs(pos[0] - ppos[0]) < .25) {
  30. self.shootDelta = 0.5;
  31. if (Math.random() > .1)
  32. return;
  33. var pos = node.worldPosition2D;
  34. pos[1] -= .25;
  35. SpaceGame.spawnBullet(pos, false);
  36. }
  37. }
  38. }