User prompt
**Size 1**: 0 points (starting size) - **Size 2**: 100 points - **Size 3**: 600 points - **Size 4**: 2600 points - **Size 5**: 5600 points - **Size 6**: 10,000 points ## Fish Point Values - **smallFish**: 10 points - **mediumFish**: 50 points - **largeFish**: 250 points - **hugeFish**: 500 points - **bossfish**: 1000 points - **dangerfish**: 2000 points Attack için gereken score: 5000 olarak değerleri düzenle
User prompt
score 10000 olduğunda size 6 olsun ve dangerfish i yiyebilelim dangerfish yendiğinde oyun kazanılsın
User prompt
bütün balıkların spawn oranını %10 arttır
User prompt
oyun 12000 score olunca kazanılsın
User prompt
score 10000 ve üzeri olduğunda bütün dangerfishler ölsün
User prompt
largerfish hızını %20 arttır
User prompt
largerfish spawn oranını %20 arttır
User prompt
dangerfish 3000 score ve üzerinde spawn olmalı
User prompt
coinleri alabilmek için çok yaklaşmamız gerekiyor collisionu düzenle daha uzaktan değerek coin toplayabilelim
User prompt
Modify collision detection for regular fish to allow octopus to penetrate slightly before collision triggers bu komutu iptal et tüm balıklar için
User prompt
Modify collision detection to allow octopus to penetrate fish slightly before collision triggers bunu dangerfish içi iptal et
User prompt
dangerfish çok yakınına yaklaşabiliyoruz ucuna değdiğimizde ölmeliyiz
User prompt
3000 score üzerinde dangerfish ler ahtapota doğru gelsin
User prompt
3000 score olunca yazan attack yazısı sahne ortasında 2 saniye belirsin ve yok olsun, 3000 score ve üzerinde balıkların ahtapota doğru gelmesini istemiştim bu özellik sadece dangerfish de kalsın diğer balıklardaki bu özelliği kaldır ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
size 5 e geçtiğinde boy artışını %20 arttır
User prompt
balıkların spawn oranını %50 azalt
User prompt
balıkların spawn oranını %10 azalt
User prompt
coin spawn oranını arttır
User prompt
smallfish ve mediumfish sahnenin kenarından değil ortasından spawn olsun
User prompt
dangerfish sadece score 3000 ve üzeri olduğunda spawn olur
User prompt
balıkların collider radiusunu arttır
User prompt
balık sıklığını arttır, balıkara çok yaklaşamdan ölelim , coinlere kenarında değince toplanabilsin
User prompt
balık sıklığını arttır balıkarın içine çok yaklaşıyoruz bunu azalt kenara yakın değince kaybetmeliyiz
User prompt
dangerfish adlı en büyük balık asseti ekle
User prompt
dangerfish adlı en büyük balık asseti ekle
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
// Add floating animation
self.floatOffset = Math.random() * Math.PI * 2;
self.startY = 0;
self.update = function () {
// Floating animation
if (self.startY === 0) {
self.startY = self.y;
}
self.y = self.startY + Math.sin(LK.ticks * 0.1 + self.floatOffset) * 10;
// Rotate coin
coinGraphics.rotation += 0.05;
};
return self;
});
var Fish = Container.expand(function (fishType) {
var self = Container.call(this);
self.fishType = fishType || 'smallFish';
self.fishSize = 1;
if (self.fishType === 'smallFish') {
self.fishSize = 1;
} else if (self.fishType === 'mediumFish') {
self.fishSize = 2;
} else if (self.fishType === 'largeFish') {
self.fishSize = 3;
} else if (self.fishType === 'hugeFish') {
self.fishSize = 4;
} else if (self.fishType === 'bossfish') {
self.fishSize = 5;
} else if (self.fishType === 'dangerfish') {
self.fishSize = 6;
}
var fishGraphics = self.attachAsset(self.fishType, {
anchorX: 0.5,
anchorY: 0.5
});
self.speedX = (Math.random() - 0.5) * 3;
self.speedY = (Math.random() - 0.5) * 3;
self.update = function () {
if (attackMode) {
// In attack mode, move towards octopus
var dx = octopus.x - self.x;
var dy = octopus.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
var dirX = dx / distance;
var dirY = dy / distance;
var attackSpeed = 2; // Speed when moving towards octopus
self.x += dirX * attackSpeed;
self.y += dirY * attackSpeed;
}
} else {
// Normal movement
self.x += self.speedX;
self.y += self.speedY;
}
// Use expanding ocean bounds for feeding game
var currentWidth = oceanWidth;
var currentHeight = oceanHeight;
if (!attackMode) {
// Only bounce off edges when not in attack mode
if (self.x < 0 || self.x > currentWidth) {
self.speedX *= -1;
}
if (self.y < 0 || self.y > currentHeight) {
self.speedY *= -1;
}
// Keep within bounds
self.x = Math.max(0, Math.min(currentWidth, self.x));
self.y = Math.max(0, Math.min(currentHeight, self.y));
}
};
return self;
});
var Octopus = Container.expand(function () {
var self = Container.call(this);
self.octopusSize = 1;
var octopusGraphics = self.attachAsset('octopus', {
anchorX: 0.5,
anchorY: 0.5
});
self.grow = function () {
self.octopusSize++;
// Scale up the octopus
var newScale = 1 + (self.octopusSize - 1) * 0.3;
tween(octopusGraphics, {
scaleX: newScale,
scaleY: newScale
}, {
duration: 500
});
// Expand the ocean bounds like in feeding games
oceanWidth += 400; // Increase ocean width by 400 pixels
oceanHeight += 400; // Increase ocean height by 400 pixels
// Scale background to match expanding ocean bounds
var bgScaleX = oceanWidth / 2048;
var bgScaleY = oceanHeight / 2732;
tween(oceanBg, {
scaleX: bgScaleX,
scaleY: bgScaleY
}, {
duration: 1000
});
// Use tween to smoothly expand the camera view
tween(game, {
scaleX: game.scaleX * 0.9,
scaleY: game.scaleY * 0.9
}, {
duration: 1000
});
LK.getSound('grow').play();
};
self.canEat = function (fish) {
return self.octopusSize >= fish.fishSize;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x006994
});
/****
* Game Code
****/
// Add ocean background
var oceanBg = game.addChild(LK.getAsset('oceanBackground', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
}));
// Initialize game scale for ocean expansion
game.scaleX = 1;
game.scaleY = 1;
// Track ocean bounds for feeding game expansion
var oceanWidth = 2048;
var oceanHeight = 2732;
var octopus = game.addChild(new Octopus());
octopus.x = 1024;
octopus.y = 1366;
var fish = [];
var fishTypes = ['smallFish', 'mediumFish', 'largeFish', 'hugeFish', 'bossfish', 'dangerfish'];
// Create initial fish (increased to 50 for higher density)
for (var i = 0; i < 50; i++) {
var currentWidth = oceanWidth;
var currentHeight = oceanHeight;
// Weighted spawning - increase spawn rate for fish matching octopus size
var rand = Math.random();
var fishType;
// Adjust spawn rates based on octopus size
var sizeBonus = 0.3; // 30% bonus for matching size
if (octopus.octopusSize === 1) {
// Size 1: boost smallFish spawn rate
if (rand < 0.55 + sizeBonus) {
fishType = 'smallFish'; // 85% chance when octopus is size 1
} else if (rand < 0.80 + sizeBonus) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.90 + sizeBonus) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.95 + sizeBonus) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.98 + sizeBonus) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 2% chance
} else {
fishType = 'smallFish'; // fallback if score < 3000
}
} else if (octopus.octopusSize === 2) {
// Size 2: boost mediumFish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.25 + 0.25 + sizeBonus) {
fishType = 'mediumFish'; // 55% chance when octopus is size 2
} else if (rand < 0.80) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.90) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.95) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 5% chance
} else {
fishType = 'mediumFish'; // fallback if score < 3000
}
} else if (octopus.octopusSize === 3) {
// Size 3: boost largeFish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.45) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.45 + 0.10 + sizeBonus) {
fishType = 'largeFish'; // 40% chance when octopus is size 3
} else if (rand < 0.90) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.95) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 5% chance
} else {
fishType = 'largeFish'; // fallback if score < 3000
}
} else if (octopus.octopusSize === 4) {
// Size 4: boost hugeFish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.45) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.60) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.60 + 0.05 + sizeBonus) {
fishType = 'hugeFish'; // 35% chance when octopus is size 4
} else if (rand < 0.95) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 5% chance
} else {
fishType = 'hugeFish'; // fallback if score < 3000
}
} else {
// Size 5+: boost bossfish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.45) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.60) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.75) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.90) {
fishType = 'bossfish'; // 15% chance when octopus is size 5+
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 10% chance when octopus is size 5+
} else {
fishType = 'bossfish'; // fallback if score < 3000
}
}
var newFish = new Fish(fishType);
// Spawn fish from ocean edges
var edge = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
if (edge === 0) {
// Top edge
newFish.x = Math.random() * currentWidth;
newFish.y = 0;
} else if (edge === 1) {
// Right edge
newFish.x = currentWidth;
newFish.y = Math.random() * currentHeight;
} else if (edge === 2) {
// Bottom edge
newFish.x = Math.random() * currentWidth;
newFish.y = currentHeight;
} else {
// Left edge
newFish.x = 0;
newFish.y = Math.random() * currentHeight;
}
fish.push(newFish);
game.addChild(newFish);
}
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
var sizeTxt = new Text2('Size: 1', {
size: 60,
fill: 0xFFFFFF
});
sizeTxt.anchor.set(0, 0);
sizeTxt.x = 150;
sizeTxt.y = 100;
LK.gui.topLeft.addChild(sizeTxt);
var mouseX = octopus.x;
var mouseY = octopus.y;
var moveSpeed = 8;
var baseSpeed = 8;
var lastClickTime = 0;
var doubleClickThreshold = 300; // 300ms between clicks for double-click
var speedBoostActive = false;
var speedBoostTimer = null;
var attackMode = false;
var attackTxt = null;
var coins = 0;
var coinObjects = [];
var coinTxt = new Text2('Coins: 0', {
size: 60,
fill: 0xFFD700
}); //{coin_txt}
coinTxt.anchor.set(1, 0);
LK.gui.topRight.addChild(coinTxt);
game.down = function (x, y, obj) {
var currentTime = Date.now();
if (currentTime - lastClickTime < doubleClickThreshold) {
// Double-click detected - check if we have enough coins
if (!speedBoostActive && coins >= 5) {
// Deduct coins
coins -= 5;
coinTxt.setText('Coins: ' + coins);
// Activate speed boost
speedBoostActive = true;
moveSpeed = baseSpeed * 2; // 100% speed increase
// Clear any existing timer
if (speedBoostTimer) {
LK.clearTimeout(speedBoostTimer);
}
// Set timer to reset speed after 3 seconds
speedBoostTimer = LK.setTimeout(function () {
speedBoostActive = false;
moveSpeed = baseSpeed;
speedBoostTimer = null;
}, 3000);
}
}
lastClickTime = currentTime;
};
game.move = function (x, y, obj) {
// Update mouse position for octopus to follow
mouseX = x;
mouseY = y;
};
game.update = function () {
// Move octopus towards mouse position
var dx = mouseX - octopus.x;
var dy = mouseY - octopus.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 5) {
// Normalize direction and apply speed
var dirX = dx / distance;
var dirY = dy / distance;
octopus.x += dirX * moveSpeed;
octopus.y += dirY * moveSpeed;
// Keep octopus within expanding ocean bounds
octopus.x = Math.max(40, Math.min(oceanWidth - 40, octopus.x));
octopus.y = Math.max(40, Math.min(oceanHeight - 40, octopus.y));
}
// Check collisions between octopus and fish
for (var i = fish.length - 1; i >= 0; i--) {
var currentFish = fish[i];
// Calculate distance between octopus and fish centers
var dx = octopus.x - currentFish.x;
var dy = octopus.y - currentFish.y;
var distance = Math.sqrt(dx * dx + dy * dy);
// Get approximate radii (half of width/height)
var octopusRadius = octopus.width / 2 * 0.6; // 60% of actual size for larger collision
var fishRadius = currentFish.width / 2 * 0.8; // 80% of actual size for larger collision
// Check if distance is less than combined radii (allowing more penetration)
if (distance < octopusRadius + fishRadius) {
if (octopus.canEat(currentFish)) {
// Eat the fish
var points;
if (currentFish.fishType === 'dangerfish') {
points = 1000;
} else if (currentFish.fishType === 'bossfish') {
points = 500;
} else if (currentFish.fishType === 'hugeFish') {
points = 200;
} else if (currentFish.fishType === 'largeFish') {
points = 100;
} else if (currentFish.fishType === 'mediumFish') {
points = 50;
} else {
points = 10; // smallFish
}
var oldScore = LK.getScore();
LK.setScore(oldScore + points);
LK.getSound('eat').play();
// Remove fish
currentFish.destroy();
fish.splice(i, 1);
// Check if octopus should grow with exponential point requirements
var newScore = LK.getScore();
var requiredPoints = [0, 100, 300, 700, 1500]; // Cumulative points needed for each size
// Check if we can grow to next size
if (octopus.octopusSize < requiredPoints.length && newScore >= requiredPoints[octopus.octopusSize]) {
octopus.grow();
sizeTxt.setText('Size: ' + octopus.octopusSize);
}
// Spawn 3 new fish within expanding ocean bounds (increased for higher density)
for (var j = 0; j < 3; j++) {
var currentWidth = oceanWidth;
var currentHeight = oceanHeight;
// Weighted spawning - increase spawn rate for fish matching octopus size
var rand = Math.random();
var fishType;
// Adjust spawn rates based on octopus size
var sizeBonus = 0.3; // 30% bonus for matching size
if (octopus.octopusSize === 1) {
// Size 1: boost smallFish spawn rate
if (rand < 0.55 + sizeBonus) {
fishType = 'smallFish'; // 85% chance when octopus is size 1
} else if (rand < 0.80 + sizeBonus) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.90 + sizeBonus) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.95 + sizeBonus) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.98 + sizeBonus) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 2% chance
} else {
fishType = 'smallFish'; // fallback if score < 3000
}
} else if (octopus.octopusSize === 2) {
// Size 2: boost mediumFish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.25 + 0.25 + sizeBonus) {
fishType = 'mediumFish'; // 55% chance when octopus is size 2
} else if (rand < 0.80) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.90) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.95) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 5% chance
} else {
fishType = 'mediumFish'; // fallback if score < 3000
}
} else if (octopus.octopusSize === 3) {
// Size 3: boost largeFish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.45) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.45 + 0.10 + sizeBonus) {
fishType = 'largeFish'; // 40% chance when octopus is size 3
} else if (rand < 0.90) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.95) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 5% chance
} else {
fishType = 'largeFish'; // fallback if score < 3000
}
} else if (octopus.octopusSize === 4) {
// Size 4: boost hugeFish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.45) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.60) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.60 + 0.05 + sizeBonus) {
fishType = 'hugeFish'; // 35% chance when octopus is size 4
} else if (rand < 0.95) {
fishType = 'bossfish'; // reduced chance
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 5% chance
} else {
fishType = 'hugeFish'; // fallback if score < 3000
}
} else {
// Size 5+: boost bossfish spawn rate
if (rand < 0.25) {
fishType = 'smallFish'; // reduced chance
} else if (rand < 0.45) {
fishType = 'mediumFish'; // reduced chance
} else if (rand < 0.60) {
fishType = 'largeFish'; // reduced chance
} else if (rand < 0.75) {
fishType = 'hugeFish'; // reduced chance
} else if (rand < 0.90) {
fishType = 'bossfish'; // 15% chance when octopus is size 5+
} else if (LK.getScore() >= 3000) {
fishType = 'dangerfish'; // 10% chance when octopus is size 5+
} else {
fishType = 'bossfish'; // fallback if score < 3000
}
}
var newFish = new Fish(fishType);
// Spawn fish from ocean edges
var edge = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
if (edge === 0) {
// Top edge
newFish.x = Math.random() * currentWidth;
newFish.y = 0;
} else if (edge === 1) {
// Right edge
newFish.x = currentWidth;
newFish.y = Math.random() * currentHeight;
} else if (edge === 2) {
// Bottom edge
newFish.x = Math.random() * currentWidth;
newFish.y = currentHeight;
} else {
// Left edge
newFish.x = 0;
newFish.y = Math.random() * currentHeight;
}
fish.push(newFish);
game.addChild(newFish);
}
} else {
// Game over - touched larger fish
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
}
// Spawn coins randomly
if (LK.ticks % 60 === 0) {
// Every 1 second (increased spawn rate)
var newCoin = new Coin();
newCoin.x = Math.random() * oceanWidth;
newCoin.y = Math.random() * oceanHeight;
coinObjects.push(newCoin);
game.addChild(newCoin);
}
// Additional coin spawning for even higher density
if (LK.ticks % 90 === 30) {
// Every 1.5 seconds with 0.5 second offset
var newCoin = new Coin();
newCoin.x = Math.random() * oceanWidth;
newCoin.y = Math.random() * oceanHeight;
coinObjects.push(newCoin);
game.addChild(newCoin);
}
// Check coin collection
for (var k = coinObjects.length - 1; k >= 0; k--) {
var coin = coinObjects[k];
var dx = octopus.x - coin.x;
var dy = octopus.y - coin.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < 120) {
// Coin collected (increased radius for easier collection)
coins++;
coinTxt.setText('Coins: ' + coins);
coin.destroy();
coinObjects.splice(k, 1);
}
}
// Update score display
scoreTxt.setText('Score: ' + LK.getScore());
// Check if attack mode should be activated
if (LK.getScore() >= 3000 && !attackMode) {
attackMode = true;
// Create and display attack text
attackTxt = new Text2('ATTACK!!!', {
size: 120,
fill: 0xFF0000,
font: "'Arial Black', 'Impact', 'Arial-Bold', sans-serif"
});
attackTxt.anchor.set(0.5, 0.5);
attackTxt.x = 1024; // Center horizontally
attackTxt.y = 400; // Position near top
game.addChild(attackTxt);
// Flash the attack text red
LK.effects.flashObject(attackTxt, 0xff0000, 2000);
// Remove attack text after 3 seconds
LK.setTimeout(function () {
if (attackTxt) {
attackTxt.destroy();
attackTxt = null;
}
}, 3000);
}
// Win condition - reach score 10000
if (LK.getScore() >= 10000) {
LK.showYouWin();
}
}; ===================================================================
--- original.js
+++ change.js
@@ -252,38 +252,26 @@
fishType = 'bossfish'; // fallback if score < 3000
}
}
var newFish = new Fish(fishType);
- // Spawn smallfish and mediumfish from center, others from edges
- if (fishType === 'smallFish' || fishType === 'mediumFish') {
- // Spawn from center area
- var centerX = currentWidth / 2;
- var centerY = currentHeight / 2;
- var centerRadius = Math.min(currentWidth, currentHeight) / 4;
- var angle = Math.random() * Math.PI * 2;
- var distance = Math.random() * centerRadius;
- newFish.x = centerX + Math.cos(angle) * distance;
- newFish.y = centerY + Math.sin(angle) * distance;
+ // Spawn fish from ocean edges
+ var edge = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
+ if (edge === 0) {
+ // Top edge
+ newFish.x = Math.random() * currentWidth;
+ newFish.y = 0;
+ } else if (edge === 1) {
+ // Right edge
+ newFish.x = currentWidth;
+ newFish.y = Math.random() * currentHeight;
+ } else if (edge === 2) {
+ // Bottom edge
+ newFish.x = Math.random() * currentWidth;
+ newFish.y = currentHeight;
} else {
- // Spawn larger fish from ocean edges
- var edge = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
- if (edge === 0) {
- // Top edge
- newFish.x = Math.random() * currentWidth;
- newFish.y = 0;
- } else if (edge === 1) {
- // Right edge
- newFish.x = currentWidth;
- newFish.y = Math.random() * currentHeight;
- } else if (edge === 2) {
- // Bottom edge
- newFish.x = Math.random() * currentWidth;
- newFish.y = currentHeight;
- } else {
- // Left edge
- newFish.x = 0;
- newFish.y = Math.random() * currentHeight;
- }
+ // Left edge
+ newFish.x = 0;
+ newFish.y = Math.random() * currentHeight;
}
fish.push(newFish);
game.addChild(newFish);
}
@@ -501,38 +489,26 @@
fishType = 'bossfish'; // fallback if score < 3000
}
}
var newFish = new Fish(fishType);
- // Spawn smallfish and mediumfish from center, others from edges
- if (fishType === 'smallFish' || fishType === 'mediumFish') {
- // Spawn from center area
- var centerX = currentWidth / 2;
- var centerY = currentHeight / 2;
- var centerRadius = Math.min(currentWidth, currentHeight) / 4;
- var angle = Math.random() * Math.PI * 2;
- var distance = Math.random() * centerRadius;
- newFish.x = centerX + Math.cos(angle) * distance;
- newFish.y = centerY + Math.sin(angle) * distance;
+ // Spawn fish from ocean edges
+ var edge = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
+ if (edge === 0) {
+ // Top edge
+ newFish.x = Math.random() * currentWidth;
+ newFish.y = 0;
+ } else if (edge === 1) {
+ // Right edge
+ newFish.x = currentWidth;
+ newFish.y = Math.random() * currentHeight;
+ } else if (edge === 2) {
+ // Bottom edge
+ newFish.x = Math.random() * currentWidth;
+ newFish.y = currentHeight;
} else {
- // Spawn larger fish from ocean edges
- var edge = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
- if (edge === 0) {
- // Top edge
- newFish.x = Math.random() * currentWidth;
- newFish.y = 0;
- } else if (edge === 1) {
- // Right edge
- newFish.x = currentWidth;
- newFish.y = Math.random() * currentHeight;
- } else if (edge === 2) {
- // Bottom edge
- newFish.x = Math.random() * currentWidth;
- newFish.y = currentHeight;
- } else {
- // Left edge
- newFish.x = 0;
- newFish.y = Math.random() * currentHeight;
- }
+ // Left edge
+ newFish.x = 0;
+ newFish.y = Math.random() * currentHeight;
}
fish.push(newFish);
game.addChild(newFish);
}
@@ -544,16 +520,25 @@
}
}
}
// Spawn coins randomly
- if (LK.ticks % 180 === 0) {
- // Every 3 seconds
+ if (LK.ticks % 60 === 0) {
+ // Every 1 second (increased spawn rate)
var newCoin = new Coin();
newCoin.x = Math.random() * oceanWidth;
newCoin.y = Math.random() * oceanHeight;
coinObjects.push(newCoin);
game.addChild(newCoin);
}
+ // Additional coin spawning for even higher density
+ if (LK.ticks % 90 === 30) {
+ // Every 1.5 seconds with 0.5 second offset
+ var newCoin = new Coin();
+ newCoin.x = Math.random() * oceanWidth;
+ newCoin.y = Math.random() * oceanHeight;
+ coinObjects.push(newCoin);
+ game.addChild(newCoin);
+ }
// Check coin collection
for (var k = coinObjects.length - 1; k >= 0; k--) {
var coin = coinObjects[k];
var dx = octopus.x - coin.x;
tatlı balık görseli. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
kırmızı renk tatlı balık görseli. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
yeşil renk tatlı balık görseli. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
kalamar görseli. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
okyanusun derinlikleri okyanusun üstü görünmesin renk geçişleri olabilir. 2d oyun içi asset balık olmasın
mürekkep balığı. In-Game asset. 2d. High contrast. No shadows
coin image üzerinde balık işareti olan bir madeni para altın renkte. In-Game asset. 2d. High contrast. No shadows
korkunç bir deniz canavarı. In-Game asset. 2d. High contrast. No shadows
tatlı ahtapot mor