User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'x')' in this line: 'engineParticle.x = hero.x;' Line Number: 136
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'x')' in this line: 'engineParticle.x = hero.x;' Line Number: 136
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'x')' in this line: 'engineParticle.x = hero.x;' Line Number: 136
User prompt
spawn particles behind hero
Code edit (1 edits merged)
Please save this source code
User prompt
Spawn enertyparticle below hero
User prompt
Initialize engine particle below hero
User prompt
Fix Bug: 'ReferenceError: hero is not defined' in this line: 'if (self.y > hero.y + hero.height) {' Line Number: 6
User prompt
Fix Bug: 'ReferenceError: hero is not defined' in this line: 'if (self.y > hero.y + hero.height) {' Line Number: 6
User prompt
Add engineparticle to be shown below hero as turbine effect
User prompt
Add trail effect below hero
User prompt
Move hero spawn position 100 pixels up
User prompt
Move enemy hero 200 pixela up
User prompt
Move enemy hero 100 pixels up
User prompt
Add scores when enmies are killed more score as game progrsses
User prompt
Fix Bug: 'TypeError: self.createSecondBackground is not a function' in this line: 'self.createSecondBackground();' Line Number: 81
User prompt
Clouds should move at a differnt speed than backgrouns
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'y')' in this line: 'self.secondBackground.y += backgroundSpeed;' Line Number: 78
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'y')' in this line: 'self.secondBackground.y += backgroundSpeed;' Line Number: 78
User prompt
Make smooth transition betwen backgrouns
User prompt
Make game more dificult as time progresses
User prompt
Slowly move backgeound downwards and add the same backgeound after it
User prompt
Stop backgeound scrolling
User prompt
Herobullet should move like hero even when chargin
User prompt
Show cloud over bacjgrouns z axis
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 () {
self.y += self.speedY;
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;
}
};
});
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);
self.x += Math.cos(angle) * self.speedY + Math.sin(LK.ticks / 60) * 5;
self.y += Math.sin(angle) * self.speedY;
self.lifebar.scale.x = self.life / 100;
};
});
var ScrollingBackground = Container.expand(function () {
var self = Container.call(this);
var backgroundGraphics = self.createAsset('background', 'Game Background', 0, 0);
backgroundGraphics.width = 2048;
backgroundGraphics.height = 2732 * 2;
self.y = -2732;
self.scroll = function () {
self.y += 2;
if (self.y >= 0) {
self.y = -2732;
}
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
var enemies = [];
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 () {
scrollingBackground.scroll();
if (enemySpawnTicker++ % 120 === 0) {
self.spawnEnemy();
}
});
var scrollingBackground = self.addChildAt(new ScrollingBackground(), 0);
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();
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;
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 = [];
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 - 180;
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) {
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;
}
}
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.