User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = trailPoint.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphic = LK.getAsset('slice', {' Line Number: 143
User prompt
2. Ve 3. Gerçekleştir
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = LK.getAsset('slice', {' Line Number: 309
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = trailPoint.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = LK.getAsset('slice', {' Line Number: 309
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = trailContainer.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = LK.getAsset('slice', {' Line Number: 309
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = trailContainer.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = LK.getAsset('slice', {' Line Number: 309
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var sliceGraphics = trailPoint.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var trailPoint = LK.getAsset('slice', {' Line Number: 309
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var trailGraphics = trailPoint.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var trailPoint = LK.getAsset('slice', {' Line Number: 309
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var trailPoint = trailContainer.attachAsset('slice', {' Line Number: 310
User prompt
Please fix the bug: 'TypeError: dynamicAssets[t].push is not a function' in or related to this line: 'var trailPoint = LK.getAsset('slice', {' Line Number: 309
Code edit (1 edits merged)
Please save this source code
User prompt
Slice Master
Initial prompt
Fruit ninja
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Bomb = Container.expand(function () {
var self = Container.call(this);
var bombGraphics = self.attachAsset('bomb', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityX = 0;
self.velocityY = 0;
self.gravity = 0.3;
self.sliced = false;
self.update = function () {
if (!self.sliced) {
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityY += self.gravity;
// Flash bomb red occasionally
if (LK.ticks % 30 < 15) {
bombGraphics.tint = 0xff0000;
} else {
bombGraphics.tint = 0x333333;
}
}
};
return self;
});
var Fruit = Container.expand(function () {
var self = Container.call(this);
var fruitGraphics = self.attachAsset('fruit', {
anchorX: 0.5,
anchorY: 0.5
});
// Random fruit colors
var colors = [0xff6b35, 0xff9500, 0xffb700, 0xff006e, 0x8338ec, 0x3a86ff];
fruitGraphics.tint = colors[Math.floor(Math.random() * colors.length)];
self.velocityX = 0;
self.velocityY = 0;
self.gravity = 0.3;
self.sliced = false;
self.update = function () {
if (!self.sliced) {
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityY += self.gravity;
// Rotate fruit as it moves
fruitGraphics.rotation += 0.05;
}
};
return self;
});
var Particle = Container.expand(function () {
var self = Container.call(this);
var particleGraphics = self.attachAsset('particle', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityX = (Math.random() - 0.5) * 10;
self.velocityY = (Math.random() - 0.5) * 10;
self.life = 60;
self.maxLife = 60;
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
self.life--;
self.alpha = self.life / self.maxLife;
self.velocityY += 0.2;
if (self.life <= 0) {
self.destroy();
}
};
return self;
});
var SliceTrail = Container.expand(function () {
var self = Container.call(this);
self.points = [];
self.maxPoints = 15;
self.fadeTime = 30;
self.currentFade = 0;
self.addPoint = function (x, y) {
self.points.push({
x: x,
y: y
});
if (self.points.length > self.maxPoints) {
self.points.shift();
}
self.currentFade = self.fadeTime;
};
self.update = function () {
if (self.currentFade > 0) {
self.currentFade--;
self.alpha = self.currentFade / self.fadeTime;
}
// Remove old points
if (self.points.length > 0 && self.currentFade <= 0) {
self.points = [];
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
var fruits = [];
var bombs = [];
var particles = [];
var sliceTrail = new SliceTrail();
var isSlicing = false;
var lastSliceX = 0;
var lastSliceY = 0;
var comboCount = 0;
var spawnRate = 120;
var gameSpeed = 1;
game.addChild(sliceTrail);
// Score display
var scoreTxt = new Text2('0', {
size: 100,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Combo display
var comboTxt = new Text2('', {
size: 60,
fill: 0xFFFF00
});
comboTxt.anchor.set(0.5, 0);
comboTxt.y = 120;
LK.gui.top.addChild(comboTxt);
function spawnFruit() {
var fruit = new Fruit();
fruit.x = Math.random() * 1600 + 224; // Spawn within screen bounds
fruit.y = 2732 + 100; // Start below screen
// Random trajectory
fruit.velocityX = (Math.random() - 0.5) * 8;
fruit.velocityY = -12 - Math.random() * 8;
fruits.push(fruit);
game.addChild(fruit);
}
function spawnBomb() {
var bomb = new Bomb();
bomb.x = Math.random() * 1600 + 224;
bomb.y = 2732 + 100;
bomb.velocityX = (Math.random() - 0.5) * 6;
bomb.velocityY = -10 - Math.random() * 6;
bombs.push(bomb);
game.addChild(bomb);
}
function createParticles(x, y, color) {
for (var i = 0; i < 8; i++) {
var particle = new Particle();
particle.x = x;
particle.y = y;
var particleGraphics = particle.children[0];
particleGraphics.tint = color;
particles.push(particle);
game.addChild(particle);
}
}
function checkSliceCollision(x1, y1, x2, y2, target) {
var dx = target.x - x1;
var dy = target.y - y1;
var lineX = x2 - x1;
var lineY = y2 - y1;
var lineLength = Math.sqrt(lineX * lineX + lineY * lineY);
if (lineLength === 0) return false;
var dot = (dx * lineX + dy * lineY) / (lineLength * lineLength);
dot = Math.max(0, Math.min(1, dot));
var closestX = x1 + dot * lineX;
var closestY = y1 + dot * lineY;
var distance = Math.sqrt((target.x - closestX) * (target.x - closestX) + (target.y - closestY) * (target.y - closestY));
return distance < 60; // Hit radius
}
game.down = function (x, y, obj) {
isSlicing = true;
lastSliceX = x;
lastSliceY = y;
sliceTrail.addPoint(x, y);
comboCount = 0;
};
game.move = function (x, y, obj) {
if (isSlicing) {
sliceTrail.addPoint(x, y);
// Check slice collision with fruits
for (var i = fruits.length - 1; i >= 0; i--) {
var fruit = fruits[i];
if (!fruit.sliced && checkSliceCollision(lastSliceX, lastSliceY, x, y, fruit)) {
fruit.sliced = true;
comboCount++;
var baseScore = 10;
var comboBonus = comboCount > 1 ? (comboCount - 1) * 5 : 0;
LK.setScore(LK.getScore() + baseScore + comboBonus);
// Create particles
var fruitColor = fruit.children[0].tint;
createParticles(fruit.x, fruit.y, fruitColor);
// Play slice sound
LK.getSound('slice_sound').play();
// Remove fruit
fruit.destroy();
fruits.splice(i, 1);
}
}
// Check slice collision with bombs
for (var i = bombs.length - 1; i >= 0; i--) {
var bomb = bombs[i];
if (!bomb.sliced && checkSliceCollision(lastSliceX, lastSliceY, x, y, bomb)) {
bomb.sliced = true;
// Game over
LK.getSound('bomb_sound').play();
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
lastSliceX = x;
lastSliceY = y;
}
};
game.up = function (x, y, obj) {
isSlicing = false;
if (comboCount > 1) {
comboTxt.setText('COMBO x' + comboCount + '!');
tween(comboTxt, {
alpha: 0
}, {
duration: 2000,
onFinish: function onFinish() {
comboTxt.setText('');
comboTxt.alpha = 1;
}
});
}
comboCount = 0;
};
game.update = function () {
// Update score display
scoreTxt.setText(LK.getScore());
// Increase difficulty over time
if (LK.ticks % 600 === 0) {
// Every 10 seconds
gameSpeed += 0.1;
spawnRate = Math.max(60, spawnRate - 5);
}
// Spawn fruits
if (LK.ticks % Math.floor(spawnRate / gameSpeed) === 0) {
spawnFruit();
}
// Spawn bombs occasionally
if (LK.ticks % Math.floor(300 / gameSpeed) === 0 && Math.random() < 0.3) {
spawnBomb();
}
// Clean up off-screen fruits
for (var i = fruits.length - 1; i >= 0; i--) {
var fruit = fruits[i];
if (fruit.y > 2732 + 200 || fruit.x < -200 || fruit.x > 2248) {
fruit.destroy();
fruits.splice(i, 1);
}
}
// Clean up off-screen bombs
for (var i = bombs.length - 1; i >= 0; i--) {
var bomb = bombs[i];
if (bomb.y > 2732 + 200 || bomb.x < -200 || bomb.x > 2248) {
bomb.destroy();
bombs.splice(i, 1);
}
}
// Clean up dead particles
for (var i = particles.length - 1; i >= 0; i--) {
var particle = particles[i];
if (particle.life <= 0) {
particles.splice(i, 1);
}
}
// Draw slice trail
if (sliceTrail.points.length > 1) {
// Clear previous trail graphics
sliceTrail.removeChildren();
// Draw trail points
for (var i = 0; i < sliceTrail.points.length; i++) {
var point = sliceTrail.points[i];
var trailPoint = LK.getAsset('slice', {
anchorX: 0.5,
anchorY: 0.5
});
trailPoint.x = point.x;
trailPoint.y = point.y;
trailPoint.alpha = i / sliceTrail.points.length * sliceTrail.alpha;
sliceTrail.addChild(trailPoint);
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,307 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Bomb = Container.expand(function () {
+ var self = Container.call(this);
+ var bombGraphics = self.attachAsset('bomb', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.velocityX = 0;
+ self.velocityY = 0;
+ self.gravity = 0.3;
+ self.sliced = false;
+ self.update = function () {
+ if (!self.sliced) {
+ self.x += self.velocityX;
+ self.y += self.velocityY;
+ self.velocityY += self.gravity;
+ // Flash bomb red occasionally
+ if (LK.ticks % 30 < 15) {
+ bombGraphics.tint = 0xff0000;
+ } else {
+ bombGraphics.tint = 0x333333;
+ }
+ }
+ };
+ return self;
+});
+var Fruit = Container.expand(function () {
+ var self = Container.call(this);
+ var fruitGraphics = self.attachAsset('fruit', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Random fruit colors
+ var colors = [0xff6b35, 0xff9500, 0xffb700, 0xff006e, 0x8338ec, 0x3a86ff];
+ fruitGraphics.tint = colors[Math.floor(Math.random() * colors.length)];
+ self.velocityX = 0;
+ self.velocityY = 0;
+ self.gravity = 0.3;
+ self.sliced = false;
+ self.update = function () {
+ if (!self.sliced) {
+ self.x += self.velocityX;
+ self.y += self.velocityY;
+ self.velocityY += self.gravity;
+ // Rotate fruit as it moves
+ fruitGraphics.rotation += 0.05;
+ }
+ };
+ return self;
+});
+var Particle = Container.expand(function () {
+ var self = Container.call(this);
+ var particleGraphics = self.attachAsset('particle', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.velocityX = (Math.random() - 0.5) * 10;
+ self.velocityY = (Math.random() - 0.5) * 10;
+ self.life = 60;
+ self.maxLife = 60;
+ self.update = function () {
+ self.x += self.velocityX;
+ self.y += self.velocityY;
+ self.life--;
+ self.alpha = self.life / self.maxLife;
+ self.velocityY += 0.2;
+ if (self.life <= 0) {
+ self.destroy();
+ }
+ };
+ return self;
+});
+var SliceTrail = Container.expand(function () {
+ var self = Container.call(this);
+ self.points = [];
+ self.maxPoints = 15;
+ self.fadeTime = 30;
+ self.currentFade = 0;
+ self.addPoint = function (x, y) {
+ self.points.push({
+ x: x,
+ y: y
+ });
+ if (self.points.length > self.maxPoints) {
+ self.points.shift();
+ }
+ self.currentFade = self.fadeTime;
+ };
+ self.update = function () {
+ if (self.currentFade > 0) {
+ self.currentFade--;
+ self.alpha = self.currentFade / self.fadeTime;
+ }
+ // Remove old points
+ if (self.points.length > 0 && self.currentFade <= 0) {
+ self.points = [];
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87ceeb
+});
+
+/****
+* Game Code
+****/
+var fruits = [];
+var bombs = [];
+var particles = [];
+var sliceTrail = new SliceTrail();
+var isSlicing = false;
+var lastSliceX = 0;
+var lastSliceY = 0;
+var comboCount = 0;
+var spawnRate = 120;
+var gameSpeed = 1;
+game.addChild(sliceTrail);
+// Score display
+var scoreTxt = new Text2('0', {
+ size: 100,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Combo display
+var comboTxt = new Text2('', {
+ size: 60,
+ fill: 0xFFFF00
+});
+comboTxt.anchor.set(0.5, 0);
+comboTxt.y = 120;
+LK.gui.top.addChild(comboTxt);
+function spawnFruit() {
+ var fruit = new Fruit();
+ fruit.x = Math.random() * 1600 + 224; // Spawn within screen bounds
+ fruit.y = 2732 + 100; // Start below screen
+ // Random trajectory
+ fruit.velocityX = (Math.random() - 0.5) * 8;
+ fruit.velocityY = -12 - Math.random() * 8;
+ fruits.push(fruit);
+ game.addChild(fruit);
+}
+function spawnBomb() {
+ var bomb = new Bomb();
+ bomb.x = Math.random() * 1600 + 224;
+ bomb.y = 2732 + 100;
+ bomb.velocityX = (Math.random() - 0.5) * 6;
+ bomb.velocityY = -10 - Math.random() * 6;
+ bombs.push(bomb);
+ game.addChild(bomb);
+}
+function createParticles(x, y, color) {
+ for (var i = 0; i < 8; i++) {
+ var particle = new Particle();
+ particle.x = x;
+ particle.y = y;
+ var particleGraphics = particle.children[0];
+ particleGraphics.tint = color;
+ particles.push(particle);
+ game.addChild(particle);
+ }
+}
+function checkSliceCollision(x1, y1, x2, y2, target) {
+ var dx = target.x - x1;
+ var dy = target.y - y1;
+ var lineX = x2 - x1;
+ var lineY = y2 - y1;
+ var lineLength = Math.sqrt(lineX * lineX + lineY * lineY);
+ if (lineLength === 0) return false;
+ var dot = (dx * lineX + dy * lineY) / (lineLength * lineLength);
+ dot = Math.max(0, Math.min(1, dot));
+ var closestX = x1 + dot * lineX;
+ var closestY = y1 + dot * lineY;
+ var distance = Math.sqrt((target.x - closestX) * (target.x - closestX) + (target.y - closestY) * (target.y - closestY));
+ return distance < 60; // Hit radius
+}
+game.down = function (x, y, obj) {
+ isSlicing = true;
+ lastSliceX = x;
+ lastSliceY = y;
+ sliceTrail.addPoint(x, y);
+ comboCount = 0;
+};
+game.move = function (x, y, obj) {
+ if (isSlicing) {
+ sliceTrail.addPoint(x, y);
+ // Check slice collision with fruits
+ for (var i = fruits.length - 1; i >= 0; i--) {
+ var fruit = fruits[i];
+ if (!fruit.sliced && checkSliceCollision(lastSliceX, lastSliceY, x, y, fruit)) {
+ fruit.sliced = true;
+ comboCount++;
+ var baseScore = 10;
+ var comboBonus = comboCount > 1 ? (comboCount - 1) * 5 : 0;
+ LK.setScore(LK.getScore() + baseScore + comboBonus);
+ // Create particles
+ var fruitColor = fruit.children[0].tint;
+ createParticles(fruit.x, fruit.y, fruitColor);
+ // Play slice sound
+ LK.getSound('slice_sound').play();
+ // Remove fruit
+ fruit.destroy();
+ fruits.splice(i, 1);
+ }
+ }
+ // Check slice collision with bombs
+ for (var i = bombs.length - 1; i >= 0; i--) {
+ var bomb = bombs[i];
+ if (!bomb.sliced && checkSliceCollision(lastSliceX, lastSliceY, x, y, bomb)) {
+ bomb.sliced = true;
+ // Game over
+ LK.getSound('bomb_sound').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ }
+ lastSliceX = x;
+ lastSliceY = y;
+ }
+};
+game.up = function (x, y, obj) {
+ isSlicing = false;
+ if (comboCount > 1) {
+ comboTxt.setText('COMBO x' + comboCount + '!');
+ tween(comboTxt, {
+ alpha: 0
+ }, {
+ duration: 2000,
+ onFinish: function onFinish() {
+ comboTxt.setText('');
+ comboTxt.alpha = 1;
+ }
+ });
+ }
+ comboCount = 0;
+};
+game.update = function () {
+ // Update score display
+ scoreTxt.setText(LK.getScore());
+ // Increase difficulty over time
+ if (LK.ticks % 600 === 0) {
+ // Every 10 seconds
+ gameSpeed += 0.1;
+ spawnRate = Math.max(60, spawnRate - 5);
+ }
+ // Spawn fruits
+ if (LK.ticks % Math.floor(spawnRate / gameSpeed) === 0) {
+ spawnFruit();
+ }
+ // Spawn bombs occasionally
+ if (LK.ticks % Math.floor(300 / gameSpeed) === 0 && Math.random() < 0.3) {
+ spawnBomb();
+ }
+ // Clean up off-screen fruits
+ for (var i = fruits.length - 1; i >= 0; i--) {
+ var fruit = fruits[i];
+ if (fruit.y > 2732 + 200 || fruit.x < -200 || fruit.x > 2248) {
+ fruit.destroy();
+ fruits.splice(i, 1);
+ }
+ }
+ // Clean up off-screen bombs
+ for (var i = bombs.length - 1; i >= 0; i--) {
+ var bomb = bombs[i];
+ if (bomb.y > 2732 + 200 || bomb.x < -200 || bomb.x > 2248) {
+ bomb.destroy();
+ bombs.splice(i, 1);
+ }
+ }
+ // Clean up dead particles
+ for (var i = particles.length - 1; i >= 0; i--) {
+ var particle = particles[i];
+ if (particle.life <= 0) {
+ particles.splice(i, 1);
+ }
+ }
+ // Draw slice trail
+ if (sliceTrail.points.length > 1) {
+ // Clear previous trail graphics
+ sliceTrail.removeChildren();
+ // Draw trail points
+ for (var i = 0; i < sliceTrail.points.length; i++) {
+ var point = sliceTrail.points[i];
+ var trailPoint = LK.getAsset('slice', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ trailPoint.x = point.x;
+ trailPoint.y = point.y;
+ trailPoint.alpha = i / sliceTrail.points.length * sliceTrail.alpha;
+ sliceTrail.addChild(trailPoint);
+ }
+ }
+};
\ No newline at end of file
Fruit ninja arkaplan. In-Game asset. 2d. High contrast. No shadows
Meyve kesme animasyonu için arkaplan. In-Game asset. 2d. High contrast. No shadows
Muz meyvesi. In-Game asset. 2d. High contrast. No shadows
Çilek. In-Game asset. 2d. High contrast. No shadows
Çilek şeklinde bomba. In-Game asset. 2d. High contrast. No shadows