| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /* global SpaceGame */
- 'atomic component';
- exports.component = function(self) {
- var game = Atomic.game;
- var node = self.node;
- self.allowShoot = true;
- self.shootDelta = 0;
- var moveDelta = 0;
- var dead = false;
- self.onHit = function() {
- if ( game.jsid >= 0 ) // has js and not muted
- Atomic.input.joystickRumble (game.jsid, 0.45, 110 );
- var expNode = SpaceGame.myscene.createChild("Explosion");
- var exp = expNode.createJSComponent("Components/Explosion.js", {
- spawnPosition: node.worldPosition2D
- });
- SpaceGame.removeEnemy(self);
- };
- self.start = function() {
- // install AI
- node.createJSComponent("Components/AI.js");
- var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
- // add a sprite component to our node
- var sprite2D = self.sprite2D = node.createComponent("StaticSprite2D");
- sprite2D.blendMode = Atomic.BlendMode.BLEND_ALPHA;
- sprite2D.sprite = spaceSheet.getSprite(self.spriteName);
- node.position2D = self.spawnPosition;
- node.roll(180);
- node.scale2D = [0.65, 0.65];
- sprite2D.alpha = 0.0;
- self.dir = (Math.random() > .5);
- };
- // update function called per frame with delta time
- self.update = function(timeStep) {
- // fade in
- var alpha = self.sprite2D.alpha;
- if (alpha < 1) {
- alpha += timeStep * 1.5;
- if (alpha > 1)
- alpha = 1;
- self.sprite2D.alpha = alpha;
- }
- var pos = node.position2D;
- var ppos = SpaceGame.playerNode.position2D;
- if (Math.random() > .98) {
- self.dir = !self.dir;
- }
- moveDelta += (self.dir ? timeStep * 4 : -timeStep * 4);
- pos = [self.spawnPosition[0], self.spawnPosition[1]];
- pos[1] += Math.sin(moveDelta) * .1;
- node.position2D = pos;
- };
- };
|