User prompt
add 2 time more fish
User prompt
Add 10 time more fish
User prompt
Add 5 time more fish
User prompt
improve the ai of all the fish
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'return {' Line Number: 115
User prompt
Please fix the bug: 'TypeError: self.getChildByName is not a function' in or related to this line: 'var waterGraphics = self.getChildByName('Water Graphics');' Line Number: 112
User prompt
Please fix the bug: 'TypeError: this.getChildByName is not a function' in or related to this line: 'var waterGraphics = this.getChildByName('Water Graphics');' Line Number: 112
User prompt
Please fix the bug: 'TypeError: self.getWaterBounds is not a function' in or related to this line: 'var waterBounds = self.getWaterBounds();' Line Number: 156
User prompt
Please fix the bug: 'TypeError: fishes[i]._move_migrated is not a function' in or related to this line: 'fishes[i]._move_migrated();' Line Number: 228
User prompt
Migrate to the latest version of LK
User prompt
Migrate to the latest version of LK
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'attachAsset')' in or related to this line: 'var fishGraphics = self.attachAsset('zebraDanio', {' Line Number: 116
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'attachAsset')' in or related to this line: 'self.fishGraphics = self.attachAsset('zebraDanio', {' Line Number: 116
===================================================================
--- original.js
+++ change.js
@@ -17,8 +17,56 @@
anchorY: 0.5
});
self.speed = 0.75;
self._move_migrated = function () {
+ // Obstacle avoidance logic
+ var obstacles = aquarium.children.filter(function (child) {
+ return child !== self && child !== fishGraphics;
+ });
+ var avoidVector = {
+ x: 0,
+ y: 0
+ };
+ obstacles.forEach(function (obstacle) {
+ var dx = self.x - obstacle.x;
+ var dy = self.y - obstacle.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance < 100) {
+ // Avoid if within 100 pixels
+ avoidVector.x += dx / distance;
+ avoidVector.y += dy / distance;
+ }
+ });
+ if (avoidVector.x !== 0 || avoidVector.y !== 0) {
+ var avoidAngle = Math.atan2(avoidVector.y, avoidVector.x);
+ self.targetRotation = avoidAngle;
+ self.rotationStartTime = LK.ticks;
+ self.rotationDuration = Math.random() * 60 + 30;
+ }
+ // Obstacle avoidance logic
+ var obstacles = aquarium.children.filter(function (child) {
+ return child !== self && child !== fishGraphics;
+ });
+ var avoidVector = {
+ x: 0,
+ y: 0
+ };
+ obstacles.forEach(function (obstacle) {
+ var dx = self.x - obstacle.x;
+ var dy = self.y - obstacle.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance < 100) {
+ // Avoid if within 100 pixels
+ avoidVector.x += dx / distance;
+ avoidVector.y += dy / distance;
+ }
+ });
+ if (avoidVector.x !== 0 || avoidVector.y !== 0) {
+ var avoidAngle = Math.atan2(avoidVector.y, avoidVector.x);
+ self.targetRotation = avoidAngle;
+ self.rotationStartTime = LK.ticks;
+ self.rotationDuration = Math.random() * 60 + 30;
+ }
if (self.targetRotation === undefined || LK.ticks - self.rotationStartTime >= self.rotationDuration) {
self.targetRotation = Math.random() * Math.PI * 2;
self.rotationStartTime = LK.ticks;
self.rotationDuration = Math.random() * 180 + 90;
@@ -91,8 +139,32 @@
anchorY: 0.5
});
self.speed = 0.5;
self._move_migrated = function () {
+ // Obstacle avoidance logic
+ var obstacles = aquarium.children.filter(function (child) {
+ return child !== self && child !== fishGraphics;
+ });
+ var avoidVector = {
+ x: 0,
+ y: 0
+ };
+ obstacles.forEach(function (obstacle) {
+ var dx = self.x - obstacle.x;
+ var dy = self.y - obstacle.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance < 100) {
+ // Avoid if within 100 pixels
+ avoidVector.x += dx / distance;
+ avoidVector.y += dy / distance;
+ }
+ });
+ if (avoidVector.x !== 0 || avoidVector.y !== 0) {
+ var avoidAngle = Math.atan2(avoidVector.y, avoidVector.x);
+ self.targetRotation = avoidAngle;
+ self.rotationStartTime = LK.ticks;
+ self.rotationDuration = Math.random() * 60 + 30;
+ }
if (self.targetRotation === undefined || LK.ticks - self.rotationStartTime >= self.rotationDuration) {
self.targetRotation = Math.random() * Math.PI * 2;
self.rotationStartTime = LK.ticks;
self.rotationDuration = Math.random() * 180 + 90;
@@ -176,8 +248,32 @@
anchorY: 0.5
});
self.speed = 0.65;
self._move_migrated = function () {
+ // Obstacle avoidance logic
+ var obstacles = aquarium.children.filter(function (child) {
+ return child !== self && child !== fishGraphics;
+ });
+ var avoidVector = {
+ x: 0,
+ y: 0
+ };
+ obstacles.forEach(function (obstacle) {
+ var dx = self.x - obstacle.x;
+ var dy = self.y - obstacle.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance < 100) {
+ // Avoid if within 100 pixels
+ avoidVector.x += dx / distance;
+ avoidVector.y += dy / distance;
+ }
+ });
+ if (avoidVector.x !== 0 || avoidVector.y !== 0) {
+ var avoidAngle = Math.atan2(avoidVector.y, avoidVector.x);
+ self.targetRotation = avoidAngle;
+ self.rotationStartTime = LK.ticks;
+ self.rotationDuration = Math.random() * 60 + 30;
+ }
if (self.targetRotation === undefined || LK.ticks - self.rotationStartTime >= self.rotationDuration) {
self.targetRotation = Math.random() * Math.PI * 2;
self.rotationStartTime = LK.ticks;
self.rotationDuration = Math.random() * 180 + 90;
An aquarium with no fish on a sheel in a photorealistic style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic goldfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic Angelfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic koyfish swiming to the right. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic gupyfish swiming to the right. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic bettafish swiming to the right. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic clownfish swiming to the right. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic pufferfish swiming to the right. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic surgeonfish swiming to the right. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic buble of water. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic fish egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic celestial pearl danio. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic Parrotfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic dartfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic moorishidol. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic tangfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic bannerfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic butterflyfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A realistic mandarinfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a realistic lionfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a realistic emperorFish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a realistic sunfish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a realistic discusFish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a realistic neonTetra. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a realistic oscarFish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a cardinal tetra. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a tang fish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a clown fish. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.