User prompt
on tick check hero bullet size and change tint to pink if size is more than 100 px
User prompt
change the color of the hero bullet it is increasing it size and attached to the hero for over 1 second.
User prompt
if hold duration longer than 1 second, on tick, update herobullet color to orange when not moving.
User prompt
if hold duration longer than 1 second then change color of herobullet to orange.
Code edit (2 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 247
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 247
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 247
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 247
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
make enemy boss move sideways 20 pixels in a gap of 2 second
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 227
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 227
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 227
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 227
User prompt
Fix Bug: 'ReferenceError: bulletGraphics is not defined' in this line: 'bulletGraphics.tint = 0xFFA500;' Line Number: 227
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'self.bulletGraphics.tint = 0xADD8E6;' Line Number: 227
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'this.bulletGraphics.tint = 0xADD8E6;' Line Number: 227
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'this.bulletGraphics.tint = 0xADD8E6;' Line Number: 228
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'this.bulletGraphics.tint = 0xADD8E6;' Line Number: 229
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'this.bulletGraphics.tint = 0xADD8E6;' Line Number: 229
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'this.bulletGraphics.tint = 0xADD8E6;' Line Number: 228
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'tint')' in this line: 'this.bulletGraphics.tint = 0xADD8E6;' Line Number: 229
var EnemyBoss = Container.expand(function (hero) {
var self = Container.call(this);
var bossGraphics = self.createAsset('enemyBoss', 'Enemy Boss Graphics', .5, .5);
bossGraphics.tint = Math.random() * 0xFFFFFF;
self.speedY = 3;
self.hero = hero;
self.lifebar = self.createAsset('lifebar', 'Boss Lifebar', .5, 0);
self.lifebar.y = -self.lifebar.height - 170;
self.lifebar.x -= 10;
self.life = 500;
self.move = function () {
var dx = this.hero.x - this.x + (Math.random() - 0.5) * 100;
var dy = this.hero.y - this.y + (Math.random() - 0.5) * 100;
var angle = Math.atan2(dy, dx);
self.x += Math.cos(angle) * self.speedY;
self.y += Math.sin(angle) * self.speedY;
self.lifebar.scale.x = self.life / 500;
if (self.life <= 0) {
self.destroy();
}
};
self.shoot = function () {};
self.on('tick', function () {
self.move();
self.shoot();
});
});
var Cloud = Container.expand(function () {
var self = Container.call(this);
var trail = LK.getAsset('trail', 'Trail Graphics', 0.5, 0.5);
var cloudGraphics = self.createAsset('cloud', 'Cloud Graphics', 0.5, 0.5);
self.speedY = 1;
self.move = function () {
var cloudSpeed = 3.5;
self.y += cloudSpeed;
if (self.y > 2732) {
self.y = -cloudGraphics.height;
}
};
});
var HeroBullet = Container.expand(function (hero) {
var self = Container.call(this);
this.bulletGraphics = self.createAsset('heroBullet', 'Hero Bullet Graphics', .5, .5);
this.bulletGraphics.tint = 0xADD8E6;
self.speed = -1.5;
self.damage = 1;
self.isShot = false;
self.flickerSpeed = 0.1;
self.flickerMinAlpha = 0.5;
self.flickerMaxAlpha = 1.0;
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;
if (self.scale.x > 2 && self.scale.y > 2) {
this.bulletGraphics.tint = 0xFFA500;
}
if (self.flicker) {
self.alpha += self.flickerSpeed;
if (self.alpha <= self.flickerMinAlpha || self.alpha >= self.flickerMaxAlpha) {
self.flickerSpeed *= -1;
}
self.alpha = Math.max(self.flickerMinAlpha, Math.min(self.alpha, self.flickerMaxAlpha));
}
};
self.flicker = function () {
if (!self.isShot) {
self.alpha += self.flickerSpeed;
if (self.alpha <= self.flickerMinAlpha || self.alpha >= self.flickerMaxAlpha) {
self.flickerSpeed *= -1;
}
self.alpha = Math.max(self.flickerMinAlpha, Math.min(self.alpha, self.flickerMaxAlpha));
}
};
LK.on('tick', self.flicker);
LK.setTimeout(function () {
LK.off('tick', self.flicker);
self.destroy();
}, 2000);
});
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);
var trail = self.createAsset('trail', 'Trail Graphics', 1, 0.5);
trail.rotation = Math.PI / 4;
trail.y = heroGraphics.height / 2 - 80;
trail.x = -heroGraphics.width / 2 + 30;
trail.flicker = true;
trail.flickerSpeed = 0.1;
trail.flickerMinAlpha = 0.3;
trail.flickerMaxAlpha = 0.7;
LK.on('tick', function () {
if (trail.flicker) {
trail.alpha += trail.flickerSpeed;
if (trail.alpha < trail.flickerMinAlpha || trail.alpha > trail.flickerMaxAlpha) {
trail.flickerSpeed *= -1;
trail.alpha = Math.max(trail.flickerMinAlpha, Math.min(trail.alpha, trail.flickerMaxAlpha));
}
}
});
self.movementDirection = 1;
self.movementSpeed = 0.5;
self.movementRange = 100;
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);
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.y = -2732;
self.addChild(bg1);
self.addChild(bg2);
self.move = function () {
bg1.y += 1;
bg2.y += 1;
if (bg1.y >= 2732) bg1.y = -2732;
if (bg2.y >= 2732) bg2.y = -2732;
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
var enemies = [];
var enemiesSpawnedCount = 0;
var particles = [];
var background = self.addChild(new Background());
background.alpha = 0.3;
self.spawnEnemy = function () {
var enemy;
if (enemiesSpawnedCount % 10 === 0 && enemiesSpawnedCount !== 0) {
enemy = new EnemyBoss(hero);
enemy.scale.x *= 1 * (1 + enemiesSpawnedCount / 100);
enemy.scale.y *= 1 * (1 + enemiesSpawnedCount / 100);
enemy.speedY *= 1 * (1 + enemiesSpawnedCount / 100);
enemy.life *= 1 * (0.5 + enemiesSpawnedCount / 100);
} else {
enemy = new Enemy(hero);
}
enemy.x = Math.random() * 2048;
enemy.y = -enemy.height;
enemies.push(enemy);
self.addChild(enemy);
enemiesSpawnedCount++;
};
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.isShot = true;
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);
if (currentBullet.scale.x < sizeMultiplier) {
currentBullet.scale.x = sizeMultiplier;
currentBullet.scale.y = sizeMultiplier;
}
currentBullet.flicker = true;
var flickerAmount = Math.abs(Math.sin(LK.ticks / 30)) * (currentBullet.flickerMaxAlpha - currentBullet.flickerMinAlpha);
currentBullet.alpha = currentBullet.flickerMinAlpha + flickerAmount;
if (currentBullet.flicker) {
currentBullet.alpha += currentBullet.flickerSpeed;
if (currentBullet.alpha <= currentBullet.flickerMinAlpha || currentBullet.alpha >= currentBullet.flickerMaxAlpha) {
currentBullet.flickerSpeed *= -1;
}
currentBullet.alpha = Math.max(currentBullet.flickerMinAlpha, Math.min(currentBullet.alpha, currentBullet.flickerMaxAlpha));
}
currentBullet.rotation = hero.rotation;
currentBullet.x = hero.x;
currentBullet.y = hero.y - hero.height / 2 - currentBullet.height / 2 - 10;
currentBullet.flicker = true;
currentBullet.flickerSpeed = 0.5;
currentBullet.flickerMinAlpha = 0.3;
currentBullet.flickerMaxAlpha = 8;
this.bulletGraphics.tint = 0xADD8E6;
if (self.scale.x > 2 && self.scale.y > 2) {
bulletGraphics.tint = 0xFFA500;
}
}
});
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 = [];
var particles = [];
for (var i = 0; i < 3; i++) {
var cloud = new Cloud();
cloud.alpha = 0.49;
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++) {
if (heroBullets[i]) heroBullets[i].move();
for (var j = 0; j < enemies.length; j++) {
if (heroBullets[i] && heroBullets[i].intersects(enemies[j])) {
enemies[j].life -= heroBullets[i].damage * 10;
if (enemies[j].life <= 0) {
var scoreIncrement = enemies[j] instanceof EnemyBoss ? 50 : 10;
scoreIncrement += 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);
i--;
i--;
}
}
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.