Code edit (1 edits merged)
Please save this source code
User prompt
Render the caught fish on the cast screen.
Code edit (7 edits merged)
Please save this source code
User prompt
Render the caught fish on the cast screen.
Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
Please fix the bug: 'size is not defined' in or related to this line: 'var buttonText = new Text2(self.text, {' Line Number: 43
Code edit (1 edits merged)
Please save this source code
Code edit (4 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'var localPos = game.toLocal(obj.position);' Line Number: 201
User prompt
Hide the `tabBackground` when you tap anywhere else that is not on the `tabLayer`, I recommend using `game.down`
Code edit (14 edits merged)
Please save this source code
User prompt
Hide the `tabBackground` when you tap anywhere else that is not on the `tabLayer`, I recommend using `game.down`
User prompt
Hide the `tabBackground` when you don't tap on `tabLayer`
Code edit (1 edits merged)
Please save this source code
Code edit (6 edits merged)
Please save this source code
User prompt
Please fix the bug: 'papyrus is not defined' in or related to this line: 'papyrus;' Line Number: 134
Code edit (1 edits merged)
Please save this source code
Code edit (5 edits merged)
Please save this source code
User prompt
Make a fish class that swims randomly around the screen
Code edit (1 edits merged)
Please save this source code
Code edit (14 edits merged)
Please save this source code
User prompt
Make an add fish button on the bottom left
Code edit (1 edits merged)
Please save this source code
User prompt
Bowlfish
/****
* Classes
****/
var Button = Container.expand(function (onPress, size, text) {
var self = Container.call(this);
self.onPress = onPress;
self.isPressed = false;
var background = self.attachAsset('buttonBackground', {
width: size,
height: size
});
var backgroundPressed = self.attachAsset('buttonBackgroundPressed', {
visible: false,
width: size,
height: size
});
var buttonText = new Text2(text, {
size: size / 5,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
buttonText.x = size / 2;
buttonText.y = size / 2;
self.addChild(buttonText);
self.down = function (x, y, obj) {
self.isPressed = true;
background.visible = false;
backgroundPressed.visible = true;
currentButton = self;
if (self.onPress) {
self.onPress();
}
};
self.up = function (x, y, obj) {
self.isPressed = false;
background.visible = true;
backgroundPressed.visible = false;
};
return self;
});
var Fish = Container.expand(function (fishType) {
var self = Container.call(this);
// Store fish type
self.fishType = fishType || 'blueFish';
// Create fish visual
var fishGraphics = self.attachAsset(self.fishType, {
anchorX: 0.5,
anchorY: 0.5
});
// Swimming properties
self.speed = 2 + Math.random() * 3; // Random speed between 2-5
self.direction = Math.random() * Math.PI * 2; // Random initial direction
self.turnSpeed = 0.02 + Math.random() * 0.03; // How fast fish can turn
self.targetDirection = self.direction;
self.wobbleAmount = 0.1 + Math.random() * 0.1; // Slight wobble for natural movement
self.wobbleSpeed = 0.05 + Math.random() * 0.05;
self.wobbleOffset = Math.random() * Math.PI * 2;
// Boundaries with margin
self.margin = 100;
// Initialize position
self.x = self.margin + Math.random() * (2048 - self.margin * 2);
self.y = self.margin + Math.random() * (2732 - self.margin * 2);
self.update = function () {
// Add wobble to movement
var wobble = Math.sin(LK.ticks * self.wobbleSpeed + self.wobbleOffset) * self.wobbleAmount;
// Gradually turn towards target direction
var directionDiff = self.targetDirection - self.direction;
// Normalize angle difference to -PI to PI
while (directionDiff > Math.PI) {
directionDiff -= Math.PI * 2;
}
while (directionDiff < -Math.PI) {
directionDiff += Math.PI * 2;
}
self.direction += directionDiff * self.turnSpeed;
// Move fish
self.x += Math.cos(self.direction + wobble) * self.speed;
self.y += Math.sin(self.direction + wobble) * self.speed;
// Face the direction of movement
fishGraphics.rotation = self.direction;
// Check boundaries and change direction
var turnAwayForce = 0.1;
var boundaryDistance = 200;
if (self.x < self.margin + boundaryDistance) {
self.targetDirection = 0; // Turn right
} else if (self.x > 2048 - self.margin - boundaryDistance) {
self.targetDirection = Math.PI; // Turn left
}
if (self.y < self.margin + boundaryDistance) {
self.targetDirection = Math.PI / 2; // Turn down
} else if (self.y > 2732 - self.margin - boundaryDistance) {
self.targetDirection = -Math.PI / 2; // Turn up
}
// Occasionally change direction randomly
if (Math.random() < 0.005) {
// 0.5% chance per frame
self.targetDirection = Math.random() * Math.PI * 2;
}
// Keep fish within bounds (hard limit)
self.x = Math.max(self.margin, Math.min(2048 - self.margin, self.x));
self.y = Math.max(self.margin, Math.min(2732 - self.margin, self.y));
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x83C7FF
});
/****
* Game Code
****/
game.attachAsset('waterBackground', {});
// Array to keep track of all fish
var fishes = [];
// Fish types available
var fishTypes = ['blueFish', 'greenFish', 'pinkFish', 'redFish'];
// Create add fish button
var addFishButton = new Button(function () {
// Create a new fish with random type
var randomType = fishTypes[Math.floor(Math.random() * fishTypes.length)];
var newFish = new Fish(randomType);
fishes.push(newFish);
game.addChild(newFish);
}, 250, "Add Fish");
// Position button in bottom left with margin
addFishButton.x = 2048 - 300;
addFishButton.y = 2732 - 300;
game.addChild(addFishButton);
// Game update loop
game.update = function () {
// All fish will update automatically through their own update methods
}; ===================================================================
--- original.js
+++ change.js
@@ -65,10 +65,14 @@
var wobble = Math.sin(LK.ticks * self.wobbleSpeed + self.wobbleOffset) * self.wobbleAmount;
// Gradually turn towards target direction
var directionDiff = self.targetDirection - self.direction;
// Normalize angle difference to -PI to PI
- while (directionDiff > Math.PI) directionDiff -= Math.PI * 2;
- while (directionDiff < -Math.PI) directionDiff += Math.PI * 2;
+ while (directionDiff > Math.PI) {
+ directionDiff -= Math.PI * 2;
+ }
+ while (directionDiff < -Math.PI) {
+ directionDiff += Math.PI * 2;
+ }
self.direction += directionDiff * self.turnSpeed;
// Move fish
self.x += Math.cos(self.direction + wobble) * self.speed;
self.y += Math.sin(self.direction + wobble) * self.speed;