Enemy.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var game = Atomic.game;
  2. var node = self.node;
  3. self.allowShoot = true;
  4. self.shootDelta = 0;
  5. var moveDelta = 0;
  6. var dead = false;
  7. self.onHit = function() {
  8. var expNode = game.scene.createChild("Explosion");
  9. var exp = expNode.createJSComponent("Explosion");
  10. exp.init(node.worldPosition2D);
  11. SpaceGame.removeEnemy(self);
  12. }
  13. function start() {
  14. var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
  15. // add a sprite component to our node
  16. var sprite2D = node.createComponent("StaticSprite2D");
  17. sprite2D.blendMode = Atomic.BLEND_ALPHA;
  18. sprite2D.sprite = spaceSheet.getSprite(self.spriteName);
  19. node.position2D = self.spawnPosition;
  20. node.roll(180);
  21. node.scale2D = [0.65, 0.65];
  22. self.dir = (Math.random() > .5);
  23. }
  24. // update function called per frame with delta time
  25. function update(timeStep) {
  26. var pos = node.position2D;
  27. var ppos = SpaceGame.playerNode.position2D;
  28. if (Math.abs(pos[0] - ppos[0]) < .25) {
  29. //aiShoot(timeStep);
  30. }
  31. if (Math.random() > .98) {
  32. self.dir = !self.dir;
  33. }
  34. moveDelta += (self.dir ? timeStep * 4 : -timeStep * 4);
  35. pos = [self.spawnPosition[0], self.spawnPosition[1]];
  36. pos[1] += Math.sin(moveDelta) * .1;
  37. node.position2D = pos;
  38. }