User prompt
Dokunmatik animasyonu degiş bıçak izi olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Parcacık animasyonu ve dagılma oranını arttır ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Meyveleri ve bombayı büyğlt
User prompt
Dokunmatik animasyon efektini bıcakla kesme animasyonuyla degiştir ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Dokunma animasyonu ekle oyıncu elini ekranda tuttugu sürece peşindem bir iz takip etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Meyve rastgele tenk kodunu kaldır
User prompt
Meyve resim varlıgını sil tekrar ekle
User prompt
Meyve renkleri degişmedi
User prompt
Parçacık animasyonu daha götünür ve geliştir ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Parçacık abimasyonu büyült parçacık ekle ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Meyver rengini degiştir ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Parçacık animasyonunu büyült ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Parcacık animasyonlarını arttır ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Arkaplan varlıgı ekle
User prompt
Parcacık dagılımını arttır büyült ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Meyve animasyonlarını arttır ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Varlık resimlerini büyült
User prompt
Meyveler ve bombalar yanlardan ekrandan cıkmasın
User prompt
Fırlayan meyveleri cogalt
User prompt
Fırlayan meyveler yere düşmeden yenileri cıkmasın
User prompt
Bomba ve meyve aşagıdan daha cok yukarı fırlason ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Nesneleri büyült ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Meyveler çok aşagıda kalıyor ekranın ortasına dogru fırlamalılar
User prompt
Herşeyi sil tekrardan oluştur
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
/**** * 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 using simple Container graphics for (var i = 0; i < sliceTrail.points.length; i++) { var point = sliceTrail.points[i]; var trailPoint = new Container(); trailPoint.x = point.x; trailPoint.y = point.y; trailPoint.alpha = i / sliceTrail.points.length * sliceTrail.alpha; sliceTrail.addChild(trailPoint); } } };
/****
* 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 using simple Container graphics
for (var i = 0; i < sliceTrail.points.length; i++) {
var point = sliceTrail.points[i];
var trailPoint = new Container();
trailPoint.x = point.x;
trailPoint.y = point.y;
trailPoint.alpha = i / sliceTrail.points.length * sliceTrail.alpha;
sliceTrail.addChild(trailPoint);
}
}
};
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