User prompt
Fix Bug: 'ReferenceError: EngineParticle is not defined' in this line: 'var particle = new EngineParticle();' Line Number: 46
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: particle is not defined' in this line: 'self.parent.addChildAt(particle, self.parent.getChildIndex(self));' Line Number: 58
User prompt
Fix Bug: 'ReferenceError: particle is not defined' in this line: 'self.parent.addChildAt(particle, self.parent.getChildIndex(self));' Line Number: 58
User prompt
move hero 50 pixels up
User prompt
Fix Bug: 'ReferenceError: particle is not defined' in this line: 'self.parent.addChildAt(particle, self.parent.getChildIndex(self));' Line Number: 58
User prompt
Fix Bug: 'ReferenceError: particle is not defined' in this line: 'self.parent.addChildAt(particle, self.parent.getChildIndex(self));' Line Number: 58
Code edit (3 edits merged)
Please save this source code
User prompt
particles should start 5 pixels under hero
User prompt
prticles should always be below hero
User prompt
when hero moves backwards particles being him shoudl dissapear
User prompt
add engine particles when hero moves
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'intersects')' in this line: 'if (heroBullets[i].intersects(enemies[j])) {' Line Number: 218
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'move')' in this line: 'heroBullets[i].move();' Line Number: 216
User prompt
make sure herobullets are not staying rendered on screen after shot
User prompt
increse clouds speed by 3
Code edit (2 edits merged)
Please save this source code
User prompt
dim background 80%
Code edit (1 edits merged)
Please save this source code
User prompt
make sure bg2 is attached on top of bg1 and moving as soon as it appear in the screen
Code edit (1 edits merged)
Please save this source code
User prompt
bg2 should start above bg1
User prompt
bg2 should also move while bg1 is moving
User prompt
background should move from down up
Code edit (1 edits merged)
Please save this source code
var EngineParticle = Container.expand(function () {
var self = Container.call(this);
var particleGraphics = self.createAsset('engineParticle', 'Engine Particle Graphics', 0.5, 1);
particleGraphics.rotation = Math.PI / 2;
particleGraphics.blendMode = 1;
self.speed = 5;
self.move = function () {
self.y += self.speed;
self.alpha -= 0.03;
if (self.alpha <= 0) self.destroy();
};
});
var Cloud = Container.expand(function () {
var self = Container.call(this);
var cloudGraphics = self.createAsset('cloud', 'Cloud Graphics', 0.5, 0.5);
self.speedY = 1;
self.move = function () {
var cloudSpeed = 0.5;
self.y += cloudSpeed;
if (self.y > 2732) {
self.y = -cloudGraphics.height;
}
};
});
var HeroBullet = Container.expand(function (hero) {
var self = Container.call(this);
var bulletGraphics = self.createAsset('heroBullet', 'Hero Bullet Graphics', .5, .5);
self.speed = -3;
self.damage = 1;
self.move = function () {
self.x += self.speedX * self.scale.x * self.scale.x;
self.y += self.speedY * self.scale.y * self.scale.y;
self.rotation = hero.rotation + Math.PI / 2;
self.damage = self.scale.x * self.scale.y;
};
});
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.createAsset('enemyBullet', 'Enemy Bullet Graphics', .5, .5);
self.speed = 3;
self.move = function () {
self.y += self.speed;
};
});
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.createAsset('hero', 'Hero character', .5, .5);
self.movementDirection = 1;
self.movementSpeed = 0.5;
self.movementRange = 50;
self.originalX = 2048 / 2;
self.x = self.originalX;
self.updateMovement = function () {
self.x += self.movementDirection * self.movementSpeed;
if (self.x < self.originalX - self.movementRange || self.x > self.originalX + self.movementRange) {
self.movementDirection *= -1;
}
if (Math.random() < 0.02 && self.movementDirection > 0) {
var particle = new EngineParticle();
particle.x = self.x;
particle.y = self.y + self.height / 2;
self.parent.addChild(particle);
}
};
});
var Enemy = Container.expand(function (hero) {
var self = Container.call(this);
var enemyGraphics = self.createAsset('enemy', 'Enemy character', .5, .5);
self.speedY = 2;
self.hero = hero;
self.lifebar = self.createAsset('lifebar', 'Enemy Lifebar', .5, 0);
self.lifebar.y = -self.lifebar.height - 100;
self.life = 100;
self.move = function () {
var dx = this.hero.x - this.x;
var dy = this.hero.y - this.y;
var angle = Math.atan2(dy, dx);
var speedMultiplier = 1 + Math.floor(LK.ticks / 7200);
self.x += (Math.cos(angle) * self.speedY + Math.sin(LK.ticks / 60) * 5) * speedMultiplier;
self.y += Math.sin(angle) * self.speedY * speedMultiplier;
self.lifebar.scale.x = self.life / 100;
};
});
var Background = Container.expand(function () {
var self = Container.call(this);
var bg1 = self.createAsset('background', 'Game Background 1', 0, 0);
var bg2 = self.createAsset('background', 'Game Background 2', 0, 0);
bg1.width = bg2.width = 2048;
bg1.height = bg2.height = 2732;
bg2.x = 2048;
self.addChild(bg1);
self.addChild(bg2);
self.move = function () {
bg1.x -= 1;
bg2.x -= 1;
if (bg1.x <= -2048) bg1.x = bg2.x + 2048;
if (bg2.x <= -2048) bg2.x = bg1.x + 2048;
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
var enemies = [];
var particles = [];
var background = self.addChild(new Background());
self.spawnEnemy = function () {
var enemy = new Enemy(hero);
enemy.x = Math.random() * 2048;
enemy.y = -enemy.height;
enemies.push(enemy);
self.addChild(enemy);
};
var enemySpawnTicker = 0;
LK.on('tick', function () {
var spawnRate = Math.max(30, 120 - Math.floor(LK.ticks / 3600));
if (enemySpawnTicker++ % spawnRate === 0) {
self.spawnEnemy();
}
});
stage.on('up', function (obj) {
if (currentBullet) {
var pos = obj.event.getLocalPosition(self);
var dx = pos.x - hero.x;
var dy = pos.y - hero.y;
var angle = Math.atan2(dy, dx);
currentBullet.speedX = Math.cos(angle) * 15;
currentBullet.speedY = Math.sin(angle) * 15;
hero.rotation = angle;
heroBullets.push(currentBullet);
currentBullet = null;
}
});
LK.on('tick', function () {
hero.updateMovement();
background.move();
if (currentBullet) {
var holdDuration = LK.ticks - holdTime;
var sizeMultiplier = Math.max(1, 1 + Math.abs(Math.sin(holdDuration / 60)) * 3);
currentBullet.scale.x = sizeMultiplier;
currentBullet.scale.y = sizeMultiplier;
currentBullet.rotation = hero.rotation;
}
});
var currentBullet = null;
var holdTime = 0;
var hero;
var background = self.addChild(new Background());
hero = self.addChild(new Hero());
hero.rotation = -Math.PI / 2;
stage.on('down', function (obj) {
var pos = obj.event.getLocalPosition(self);
var dx = pos.x - hero.x;
var dy = pos.y - hero.y;
var angle = Math.atan2(dy, dx);
hero.rotation = angle;
currentBullet = new HeroBullet(hero);
currentBullet.x = hero.x;
currentBullet.y = hero.y - hero.height / 2 - currentBullet.height / 2 - 10;
currentBullet.rotation = hero.rotation;
self.addChild(currentBullet);
holdTime = LK.ticks;
});
stage.on('move', function (obj) {
var pos = obj.event.getLocalPosition(self);
var dx = pos.x - hero.x;
var dy = pos.y - hero.y;
var angle = Math.atan2(dy, dx);
hero.rotation = angle;
});
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
var clouds = [];
var particles = [];
for (var i = 0; i < 5; i++) {
var cloud = new Cloud();
cloud.x = Math.random() * 2048;
cloud.y = Math.random() * -2732;
clouds.push(cloud);
self.addChildAt(cloud, 1);
}
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff",
dropShadow: true,
dropShadowColor: "#000000",
dropShadowBlur: 4,
dropShadowAngle: Math.PI / 6,
dropShadowDistance: 6
});
LK.gui.topCenter.addChild(scoreTxt);
var isGameOver = false;
hero.x = 2048 / 2;
hero.y = 2732 - 280;
LK.setTimeout(function () {
var startPosition = hero.y;
var endPosition = startPosition - 500;
var duration = 120;
var step = (startPosition - endPosition) / duration;
var currentStep = 0;
var moveHero = function () {
if (currentStep < duration) {
hero.y -= step;
currentStep++;
} else if (currentStep < duration * 2) {
hero.y += step;
currentStep++;
} else {
hero.y = startPosition;
LK.clearInterval(heroMoveInterval);
}
};
var heroMoveInterval = LK.setInterval(moveHero, 1000 / 60);
}, 0);
LK.on('tick', function () {
for (var i = 0; i < heroBullets.length; i++) {
heroBullets[i].move();
for (var j = 0; j < enemies.length; j++) {
if (heroBullets[i].intersects(enemies[j])) {
enemies[j].life -= heroBullets[i].damage * 10;
if (enemies[j].life <= 0) {
var scoreIncrement = 10 + Math.floor(LK.ticks / 3600);
LK.setScore(LK.getScore() + scoreIncrement);
scoreTxt.setText(LK.getScore().toString());
enemies[j].destroy();
enemies.splice(j, 1);
}
heroBullets[i].destroy();
heroBullets.splice(i, 1);
break;
}
}
if (heroBullets[i] && heroBullets[i].y < -50) {
heroBullets[i].destroy();
heroBullets.splice(i, 1);
}
}
for (var i = 0; i < enemyBullets.length; i++) {
enemyBullets[i].move();
if (enemyBullets[i].y > 2732 + 50) {
enemyBullets[i].destroy();
enemyBullets.splice(i, 1);
}
}
for (var i = 0; i < enemies.length; i++) {
if (enemies[i].intersects(hero)) {
isGameOver = true;
break;
}
}
particles.forEach(function (particle, index) {
particle.move();
if (particle.alpha <= 0) {
particles.splice(index, 1);
}
});
for (var i = 0; i < enemies.length; i++) {
enemies[i].move();
if (enemies[i].y > 2732) {
enemies[i].destroy();
enemies.splice(i, 1);
i--;
}
}
clouds.forEach(function (cloud) {
cloud.move();
});
if (isGameOver) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
});
});
Goku arms doing kamehameha. seen from above. 8-bit. Cartoon. In game asset. No shadow Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
8-bit. Cartoon. Orange energy ball. . In game asset. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
rotate image 45 degrees
8-bit. cartoon. white energy ball. gradieint. transparent. in game asset. flicker. shoot. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
8-bit. cartoon. front view. flying final boss. white. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.