/**** * Classes ****/ var BloodSplatter = Container.expand(function () { var self = Container.call(this); var scale = (0.5 + Math.random() * 0.5) * 2.5; var splatterGraphics = self.attachAsset('bloodSplatter', { anchorX: 0.5, anchorY: 0.5 }); splatterGraphics.scale.set(scale, scale); self.lifeSpan = 500; self.on('tick', function () { self.lifeSpan -= 16.6667; if (self.lifeSpan <= 0) { LK.setTimeout(function () { self.destroy(); }, 3000); } }); }); var BlueEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('blueEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 6.25; self.teleportTimer = 0; self.teleportInterval = 1; self._move_migrated = function () { self.y += self.speed; if (self.y > game.height || self.x < 0 || self.x > 2048) { self.destroy(); } self.teleportTimer += 1 / 60; if (self.teleportTimer >= self.teleportInterval) { var teleportDirection = Math.random() < 0.5 ? -200 : 200; self.x += Math.max(0, Math.min(2048 - self.width, self.x + teleportDirection)) - self.x; self.teleportTimer = 0; } }; }); var Bullet = Container.expand(function () { var self = Container.call(this); var scale = 0.85 + Math.random() * 0.55; var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); bulletGraphics.scale.set(scale, scale); self.speed = 20; self._move_migrated = function () { self.y -= self.speed; }; }); var GraySquare = Container.expand(function () { var self = Container.call(this); var graySquareGraphics = self.attachAsset('graySquare', { anchorX: 0.5, anchorY: 0.5 }); graySquareGraphics.width = 150; graySquareGraphics.height = 150; graySquareGraphics.tint = 0x808080; }); var GreenPowerup = Container.expand(function () { var self = Container.call(this); var powerupGraphics = self.attachAsset('greenPowerup', { anchorX: 0.5, anchorY: 0.5 }); self.amplitude = 10; self.frequency = 0.05; self.baseY = self.y; self._move_migrated = function () { self.y = self.baseY + self.amplitude * Math.sin(LK.ticks * self.frequency); }; }); var RedEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('redEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self._move_migrated = function () { self.y += self.speed; if (self.y > game.height || self.x < 0 || self.x > 2048) { self.destroy(); } }; }); var Santa = Container.expand(function () { var self = Container.call(this); var santaGraphics = self.attachAsset('santa', { anchorX: 0.5, anchorY: 0.5 }); santaGraphics.rotation = -Math.PI / 2; self.direction = 1; self.speed = 15; self._move_migrated = function () { if (self.x >= 2048 - this.width * 0.6 || self.x <= this.width * 0.6) { self.direction *= -1; santaGraphics.scale.y *= -1; } self.x += self.speed * self.direction; }; self.fire = function () { this.direction *= -1; santaGraphics.scale.y *= -1; }; }); var SpecialObject = Container.expand(function () { var self = Container.call(this); var specialObjectGraphics = self.attachAsset('specialObject', { anchorX: 0.5, anchorY: 0.5 }); specialObjectGraphics.scale.x *= 4; self.speed = 2; self._move_migrated = function () { self.y += self.speed; }; self.canBeHit = true; self.hit = function () { if (!self.canBeHit) { return; } self.canBeHit = false; self.speed = -self.speed; LK.setTimeout(function () { self.speed = Math.abs(self.speed); self.canBeHit = true; }, 1000); }; }); var YellowEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('yellowEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3.75; self.scaleIncrement = 0.2; self.scaleTimer = 0; self._move_migrated = function () { self.y += self.speed; if (self.y > game.height || self.x < 0 || self.x > 2048) { self.destroy(); } self.scaleTimer += 1 / 60; if (self.scaleTimer >= 1) { self.scale.x += self.scaleIncrement; self.scale.y += self.scaleIncrement; self.scaleTimer = 0; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Check if sMetalMusic is playing every 3 seconds LK.effects.shakeScreen = function (duration) { var originalX = game.x; var originalY = game.y; var shakeIntensity = 10; var shakeDuration = duration; var shakeInterval = 16.6667; // Approximately 60 FPS var shake = function shake() { if (shakeDuration > 0) { var offsetX = (Math.random() - 0.5) * shakeIntensity; var offsetY = (Math.random() - 0.5) * shakeIntensity; game.x = originalX + offsetX; game.y = originalY + offsetY; shakeDuration -= shakeInterval; LK.setTimeout(shake, shakeInterval); } else { game.x = originalX; game.y = originalY; } }; shake(); }; var checkMusicInterval = LK.setInterval(function () { var sMetalMusic = LK.getSound('sMetalMusic'); if (!sMetalMusic.isPlaying) { console.log('sMetalMusic is not playing'); sMetalMusic.play(); } else { console.log('sMetalMusic is playing'); } }, 3000); function playHohohoSound() { LK.setTimeout(function () { LK.getSound('sHohoho').play(); }, 500); } playHohohoSound(); var background = game.attachAsset('background', {}); background.width = 2048; background.height = 2732; game.addChildAt(background, 0); var santa = game.addChild(new Santa()); var greenPowerup; var greenPowerupSpawnTimer; var score = 0; var specialObject; var specialObjectSpawned = false; var scoreTxt = new Text2(score.toString(), { size: 100, fill: "#FFA500" }); scoreTxt.y += 94; scoreTxt.anchor.set(.5, 0); LK.gui.top.addChild(scoreTxt); var remainingBulletsTxt = new Text2('Bullets: 5', { size: 70, fill: "#FFA500" }); remainingBulletsTxt.y = scoreTxt.height + 114; remainingBulletsTxt.anchor.set(0.5, 0); LK.gui.top.addChild(remainingBulletsTxt); var bullets = []; var enemies = []; santa.x = 2048 / 2; santa.y = 2732 - santa.height; var spawnEnemy = function spawnEnemy() { var enemyType = Math.random(); var enemy; if (enemyType < 0.33) { enemy = new YellowEnemy(); } else if (enemyType < 0.66) { enemy = new BlueEnemy(); } else { enemy = new RedEnemy(); } var boundaryPadding = enemy.width; enemy.x = Math.random() * (2048 - boundaryPadding * 2) + boundaryPadding; enemy.y = 0; enemies.push(enemy); if (specialObject && specialObject.parent === game) { game.addChildAt(enemy, game.getChildIndex(specialObject)); } else { if (specialObject && specialObject.parent === game) { game.addChildAt(enemy, game.getChildIndex(specialObject) - 1); } else { game.addChild(enemy); } } }; var fireBullet = function fireBullet() { if (bullets.length < 5) { santa.fire(); var bullet = new Bullet(); bullet.x = santa.x; bullet.y = santa.y - santa.height / 2 - bullet.height / 2; var graySquare = new GraySquare(); graySquare.x = bullet.x; graySquare.y = bullet.y + 50; game.addChild(graySquare); LK.setTimeout(function () { graySquare.destroy(); }, 500); bullets.push(bullet); game.addChild(bullet); bullet._move_migrated(); remainingBulletsTxt.setText('Bullets: ' + (5 - bullets.length).toString()); // Play sBazooka sound when Santa fires a bullet LK.getSound('sBazooka').play(); } }; game.on('down', function (x, y, obj) { if (santa.x > santa.width * 0.6 && santa.x < 2048 - santa.width * 0.6) { fireBullet(); } }); LK.on('tick', function () { santa._move_migrated(); bullets.forEach(function (bullet, bulletIndex) { bullet._move_migrated(); if (bullet.y < -bullet.height) { bullet.destroy(); bullets.splice(bulletIndex, 1); remainingBulletsTxt.setText('Bullets: ' + (5 - bullets.length).toString()); return; } enemies.forEach(function (enemy, enemyIndex) { if (bullet.intersects(enemy)) { bullet.destroy(); // Play sSplurt, sSplurt2, or sSplurt3 sound before instantiating BloodSplatter var splurtSounds = ['sSplurt', 'sSplurt2', 'sSplurt3']; var randomSplurtSound = splurtSounds[Math.floor(Math.random() * splurtSounds.length)]; LK.getSound(randomSplurtSound).play(); var splatter = new BloodSplatter(); splatter.x = enemy.x; splatter.y = enemy.y; game.addChild(splatter); enemy.destroy(); enemies.forEach(function (e) { e.speed *= 1.1; }); score += 1; if (score >= 100 && !specialObjectSpawned) { specialObject = new SpecialObject(); specialObject.x = 2048 / 2; specialObject.y = -1300; game.addChild(specialObject); specialObjectSpawned = true; // Play sWallSound after SpecialObject is instantiated LK.getSound('sWallSound').play(); var deathText = new Text2('Death Is Inevitable', { size: 150, fill: '#ffffff', align: 'center' }); deathText.anchor.set(0.5, 0.5); deathText.x = 2048 / 4 + 225; deathText.y = 2732 / 2 - deathText.height / 2 - 300; LK.gui.topLeft.addChild(deathText); var toggleTransparency = function toggleTransparency() { deathText.alpha = deathText.alpha === 1 ? 0 : 1; }; var transparencyInterval = LK.setInterval(toggleTransparency, 500); LK.setTimeout(function () { LK.clearInterval(transparencyInterval); deathText.destroy(); }, 5000); } scoreTxt.setText(score.toString()); santa.speed += 1; bullets.splice(bulletIndex, 1); enemies.splice(enemyIndex, 1); remainingBulletsTxt.setText('Bullets: ' + (4 - bullets.length).toString()); } else if (greenPowerup && bullet.intersects(greenPowerup)) { // Play sExplosion sound before greenPowerup is destroyed LK.getSound('sExplosion').play(); bullets.splice(bulletIndex, 1); bullet.destroy(); enemies.forEach(function (e) { var splatter = new BloodSplatter(); splatter.x = e.x; splatter.y = e.y; game.addChild(splatter); e.destroy(); score += 1; }); enemies.length = 0; greenPowerup.destroy(); LK.effects.shakeScreen(1000); LK.effects.flashScreen(0x808080, 1000); santa.speed = 15; greenPowerup = undefined; scoreTxt.setText(score.toString()); remainingBulletsTxt.setText('Bullets: ' + (4 - bullets.length).toString()); } }); }); if (specialObject) { specialObject._move_migrated(); bullets.forEach(function (bullet, bulletIndex) { if (bullet.intersects(specialObject) && specialObject.canBeHit) { specialObject.hit(); bullet.destroy(); bullets.splice(bulletIndex, 1); remainingBulletsTxt.setText('Bullets: ' + (5 - bullets.length).toString()); } }); } enemies.forEach(function (enemy) { enemy._move_migrated(); if (santa.intersects(enemy)) { LK.setScore(score); LK.setScore(score); LK.setScore(score); LK.setScore(score); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); playHohohoSound(); isGameOver = true; playHohohoSound(); } }); }); var enemySpawnRate = 1000 / 1.75; var enemySpawnTimer = LK.setInterval(spawnEnemy, enemySpawnRate); LK.on('tick', function () {}); greenPowerupSpawnTimer = LK.setInterval(function () { if (greenPowerup && !greenPowerup.isDestroyed) { return; } greenPowerup = new GreenPowerup(); var centerX = 2048 / 2; var centerY = 2732 / 2; var randomOffsetX = (Math.random() - 0.5) * 1200; var randomOffsetY = (Math.random() - 0.5) * 1200; greenPowerup.x = centerX + randomOffsetX - greenPowerup.width / 2; greenPowerup.y = centerY + randomOffsetY - greenPowerup.height / 2; greenPowerup._move_migrated = function () { this.angle += 0.05; this.x = this.center.x + this.radius * Math.cos(this.angle); this.y = this.center.y + this.radius * Math.sin(this.angle); }; game.addChild(greenPowerup); }, 15000);
/****
* Classes
****/
var BloodSplatter = Container.expand(function () {
var self = Container.call(this);
var scale = (0.5 + Math.random() * 0.5) * 2.5;
var splatterGraphics = self.attachAsset('bloodSplatter', {
anchorX: 0.5,
anchorY: 0.5
});
splatterGraphics.scale.set(scale, scale);
self.lifeSpan = 500;
self.on('tick', function () {
self.lifeSpan -= 16.6667;
if (self.lifeSpan <= 0) {
LK.setTimeout(function () {
self.destroy();
}, 3000);
}
});
});
var BlueEnemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('blueEnemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 6.25;
self.teleportTimer = 0;
self.teleportInterval = 1;
self._move_migrated = function () {
self.y += self.speed;
if (self.y > game.height || self.x < 0 || self.x > 2048) {
self.destroy();
}
self.teleportTimer += 1 / 60;
if (self.teleportTimer >= self.teleportInterval) {
var teleportDirection = Math.random() < 0.5 ? -200 : 200;
self.x += Math.max(0, Math.min(2048 - self.width, self.x + teleportDirection)) - self.x;
self.teleportTimer = 0;
}
};
});
var Bullet = Container.expand(function () {
var self = Container.call(this);
var scale = 0.85 + Math.random() * 0.55;
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
bulletGraphics.scale.set(scale, scale);
self.speed = 20;
self._move_migrated = function () {
self.y -= self.speed;
};
});
var GraySquare = Container.expand(function () {
var self = Container.call(this);
var graySquareGraphics = self.attachAsset('graySquare', {
anchorX: 0.5,
anchorY: 0.5
});
graySquareGraphics.width = 150;
graySquareGraphics.height = 150;
graySquareGraphics.tint = 0x808080;
});
var GreenPowerup = Container.expand(function () {
var self = Container.call(this);
var powerupGraphics = self.attachAsset('greenPowerup', {
anchorX: 0.5,
anchorY: 0.5
});
self.amplitude = 10;
self.frequency = 0.05;
self.baseY = self.y;
self._move_migrated = function () {
self.y = self.baseY + self.amplitude * Math.sin(LK.ticks * self.frequency);
};
});
var RedEnemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('redEnemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self._move_migrated = function () {
self.y += self.speed;
if (self.y > game.height || self.x < 0 || self.x > 2048) {
self.destroy();
}
};
});
var Santa = Container.expand(function () {
var self = Container.call(this);
var santaGraphics = self.attachAsset('santa', {
anchorX: 0.5,
anchorY: 0.5
});
santaGraphics.rotation = -Math.PI / 2;
self.direction = 1;
self.speed = 15;
self._move_migrated = function () {
if (self.x >= 2048 - this.width * 0.6 || self.x <= this.width * 0.6) {
self.direction *= -1;
santaGraphics.scale.y *= -1;
}
self.x += self.speed * self.direction;
};
self.fire = function () {
this.direction *= -1;
santaGraphics.scale.y *= -1;
};
});
var SpecialObject = Container.expand(function () {
var self = Container.call(this);
var specialObjectGraphics = self.attachAsset('specialObject', {
anchorX: 0.5,
anchorY: 0.5
});
specialObjectGraphics.scale.x *= 4;
self.speed = 2;
self._move_migrated = function () {
self.y += self.speed;
};
self.canBeHit = true;
self.hit = function () {
if (!self.canBeHit) {
return;
}
self.canBeHit = false;
self.speed = -self.speed;
LK.setTimeout(function () {
self.speed = Math.abs(self.speed);
self.canBeHit = true;
}, 1000);
};
});
var YellowEnemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('yellowEnemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3.75;
self.scaleIncrement = 0.2;
self.scaleTimer = 0;
self._move_migrated = function () {
self.y += self.speed;
if (self.y > game.height || self.x < 0 || self.x > 2048) {
self.destroy();
}
self.scaleTimer += 1 / 60;
if (self.scaleTimer >= 1) {
self.scale.x += self.scaleIncrement;
self.scale.y += self.scaleIncrement;
self.scaleTimer = 0;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Check if sMetalMusic is playing every 3 seconds
LK.effects.shakeScreen = function (duration) {
var originalX = game.x;
var originalY = game.y;
var shakeIntensity = 10;
var shakeDuration = duration;
var shakeInterval = 16.6667; // Approximately 60 FPS
var shake = function shake() {
if (shakeDuration > 0) {
var offsetX = (Math.random() - 0.5) * shakeIntensity;
var offsetY = (Math.random() - 0.5) * shakeIntensity;
game.x = originalX + offsetX;
game.y = originalY + offsetY;
shakeDuration -= shakeInterval;
LK.setTimeout(shake, shakeInterval);
} else {
game.x = originalX;
game.y = originalY;
}
};
shake();
};
var checkMusicInterval = LK.setInterval(function () {
var sMetalMusic = LK.getSound('sMetalMusic');
if (!sMetalMusic.isPlaying) {
console.log('sMetalMusic is not playing');
sMetalMusic.play();
} else {
console.log('sMetalMusic is playing');
}
}, 3000);
function playHohohoSound() {
LK.setTimeout(function () {
LK.getSound('sHohoho').play();
}, 500);
}
playHohohoSound();
var background = game.attachAsset('background', {});
background.width = 2048;
background.height = 2732;
game.addChildAt(background, 0);
var santa = game.addChild(new Santa());
var greenPowerup;
var greenPowerupSpawnTimer;
var score = 0;
var specialObject;
var specialObjectSpawned = false;
var scoreTxt = new Text2(score.toString(), {
size: 100,
fill: "#FFA500"
});
scoreTxt.y += 94;
scoreTxt.anchor.set(.5, 0);
LK.gui.top.addChild(scoreTxt);
var remainingBulletsTxt = new Text2('Bullets: 5', {
size: 70,
fill: "#FFA500"
});
remainingBulletsTxt.y = scoreTxt.height + 114;
remainingBulletsTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(remainingBulletsTxt);
var bullets = [];
var enemies = [];
santa.x = 2048 / 2;
santa.y = 2732 - santa.height;
var spawnEnemy = function spawnEnemy() {
var enemyType = Math.random();
var enemy;
if (enemyType < 0.33) {
enemy = new YellowEnemy();
} else if (enemyType < 0.66) {
enemy = new BlueEnemy();
} else {
enemy = new RedEnemy();
}
var boundaryPadding = enemy.width;
enemy.x = Math.random() * (2048 - boundaryPadding * 2) + boundaryPadding;
enemy.y = 0;
enemies.push(enemy);
if (specialObject && specialObject.parent === game) {
game.addChildAt(enemy, game.getChildIndex(specialObject));
} else {
if (specialObject && specialObject.parent === game) {
game.addChildAt(enemy, game.getChildIndex(specialObject) - 1);
} else {
game.addChild(enemy);
}
}
};
var fireBullet = function fireBullet() {
if (bullets.length < 5) {
santa.fire();
var bullet = new Bullet();
bullet.x = santa.x;
bullet.y = santa.y - santa.height / 2 - bullet.height / 2;
var graySquare = new GraySquare();
graySquare.x = bullet.x;
graySquare.y = bullet.y + 50;
game.addChild(graySquare);
LK.setTimeout(function () {
graySquare.destroy();
}, 500);
bullets.push(bullet);
game.addChild(bullet);
bullet._move_migrated();
remainingBulletsTxt.setText('Bullets: ' + (5 - bullets.length).toString());
// Play sBazooka sound when Santa fires a bullet
LK.getSound('sBazooka').play();
}
};
game.on('down', function (x, y, obj) {
if (santa.x > santa.width * 0.6 && santa.x < 2048 - santa.width * 0.6) {
fireBullet();
}
});
LK.on('tick', function () {
santa._move_migrated();
bullets.forEach(function (bullet, bulletIndex) {
bullet._move_migrated();
if (bullet.y < -bullet.height) {
bullet.destroy();
bullets.splice(bulletIndex, 1);
remainingBulletsTxt.setText('Bullets: ' + (5 - bullets.length).toString());
return;
}
enemies.forEach(function (enemy, enemyIndex) {
if (bullet.intersects(enemy)) {
bullet.destroy();
// Play sSplurt, sSplurt2, or sSplurt3 sound before instantiating BloodSplatter
var splurtSounds = ['sSplurt', 'sSplurt2', 'sSplurt3'];
var randomSplurtSound = splurtSounds[Math.floor(Math.random() * splurtSounds.length)];
LK.getSound(randomSplurtSound).play();
var splatter = new BloodSplatter();
splatter.x = enemy.x;
splatter.y = enemy.y;
game.addChild(splatter);
enemy.destroy();
enemies.forEach(function (e) {
e.speed *= 1.1;
});
score += 1;
if (score >= 100 && !specialObjectSpawned) {
specialObject = new SpecialObject();
specialObject.x = 2048 / 2;
specialObject.y = -1300;
game.addChild(specialObject);
specialObjectSpawned = true;
// Play sWallSound after SpecialObject is instantiated
LK.getSound('sWallSound').play();
var deathText = new Text2('Death Is Inevitable', {
size: 150,
fill: '#ffffff',
align: 'center'
});
deathText.anchor.set(0.5, 0.5);
deathText.x = 2048 / 4 + 225;
deathText.y = 2732 / 2 - deathText.height / 2 - 300;
LK.gui.topLeft.addChild(deathText);
var toggleTransparency = function toggleTransparency() {
deathText.alpha = deathText.alpha === 1 ? 0 : 1;
};
var transparencyInterval = LK.setInterval(toggleTransparency, 500);
LK.setTimeout(function () {
LK.clearInterval(transparencyInterval);
deathText.destroy();
}, 5000);
}
scoreTxt.setText(score.toString());
santa.speed += 1;
bullets.splice(bulletIndex, 1);
enemies.splice(enemyIndex, 1);
remainingBulletsTxt.setText('Bullets: ' + (4 - bullets.length).toString());
} else if (greenPowerup && bullet.intersects(greenPowerup)) {
// Play sExplosion sound before greenPowerup is destroyed
LK.getSound('sExplosion').play();
bullets.splice(bulletIndex, 1);
bullet.destroy();
enemies.forEach(function (e) {
var splatter = new BloodSplatter();
splatter.x = e.x;
splatter.y = e.y;
game.addChild(splatter);
e.destroy();
score += 1;
});
enemies.length = 0;
greenPowerup.destroy();
LK.effects.shakeScreen(1000);
LK.effects.flashScreen(0x808080, 1000);
santa.speed = 15;
greenPowerup = undefined;
scoreTxt.setText(score.toString());
remainingBulletsTxt.setText('Bullets: ' + (4 - bullets.length).toString());
}
});
});
if (specialObject) {
specialObject._move_migrated();
bullets.forEach(function (bullet, bulletIndex) {
if (bullet.intersects(specialObject) && specialObject.canBeHit) {
specialObject.hit();
bullet.destroy();
bullets.splice(bulletIndex, 1);
remainingBulletsTxt.setText('Bullets: ' + (5 - bullets.length).toString());
}
});
}
enemies.forEach(function (enemy) {
enemy._move_migrated();
if (santa.intersects(enemy)) {
LK.setScore(score);
LK.setScore(score);
LK.setScore(score);
LK.setScore(score);
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
playHohohoSound();
isGameOver = true;
playHohohoSound();
}
});
});
var enemySpawnRate = 1000 / 1.75;
var enemySpawnTimer = LK.setInterval(spawnEnemy, enemySpawnRate);
LK.on('tick', function () {});
greenPowerupSpawnTimer = LK.setInterval(function () {
if (greenPowerup && !greenPowerup.isDestroyed) {
return;
}
greenPowerup = new GreenPowerup();
var centerX = 2048 / 2;
var centerY = 2732 / 2;
var randomOffsetX = (Math.random() - 0.5) * 1200;
var randomOffsetY = (Math.random() - 0.5) * 1200;
greenPowerup.x = centerX + randomOffsetX - greenPowerup.width / 2;
greenPowerup.y = centerY + randomOffsetY - greenPowerup.height / 2;
greenPowerup._move_migrated = function () {
this.angle += 0.05;
this.x = this.center.x + this.radius * Math.cos(this.angle);
this.y = this.center.y + this.radius * Math.sin(this.angle);
};
game.addChild(greenPowerup);
}, 15000);
a top view of a 16 bit sprite santa with a bazooka Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit sprite of a christmas ornament Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit sprite of a red eyed christmas elf Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit sprite of a blood splatter Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit sprite of a red eye reindeer Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit sprite of a red eye mother christmas Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit top view background of a christmas field set in hell Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit smoke Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit wall of skulls with red eyes Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
"Death Is Inevitable" Text Bubble Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
16 bit CHRISTMAS bomb power up icon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.