User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 104
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 104
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 104
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 104
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 104
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 104
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 95
User prompt
Please fix the bug: 'TypeError is not a constructor' in or related to this line: 'throw new TypeError("Super expression must either be null or a function");' Line Number: 95
User prompt
Please fix the bug: '_Laya$Sprite is not defined' in or related to this line: '_inherits(Boat, _Laya$Sprite);' Line Number: 124
User prompt
Please fix the bug: 'Laya is not defined' in or related to this line: 'var Boat = /*#__PURE__*/function (_LK$Container) {' Line Number: 113
User prompt
Please fix the bug: 'Laya is not defined' in or related to this line: 'var Boat = /*#__PURE__*/function (_LK$Container) {' Line Number: 113
User prompt
Please fix the bug: 'Laya is not defined' in or related to this line: 'var Boat = /*#__PURE__*/function (_LK$Container) {' Line Number: 113
User prompt
Please fix the bug: 'Laya is not defined' in or related to this line: 'var Boat = /*#__PURE__*/function (_Laya$Sprite) {' Line Number: 113
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'IMAGE')' in or related to this line: 'LK.loadAssets([{' Line Number: 105
User prompt
Please fix the bug: 'Laya is not defined' in or related to this line: 'Laya.loader.load([{' Line Number: 105
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'LK.init is not a function' in or related to this line: 'LK.init({' Line Number: 145
User prompt
Please fix the bug: 'LK.start is not a function' in or related to this line: 'LK.start({' Line Number: 145
User prompt
Please fix the bug: 'LK.init is not a function' in or related to this line: 'LK.init({' Line Number: 145
User prompt
Please fix the bug: 'LK.start is not a function' in or related to this line: 'LK.start({' Line Number: 145
User prompt
Please fix the bug: 'LK.init is not a function' in or related to this line: 'LK.init({' Line Number: 145
User prompt
Please fix the bug: 'LK.start is not a function' in or related to this line: 'LK.start({' Line Number: 145
User prompt
Please fix the bug: 'LK.init is not a function' in or related to this line: 'LK.init({' Line Number: 145
User prompt
Please fix the bug: 'frvr is not defined' in or related to this line: 'frvr.init({' Line Number: 145
Code edit (1 edits merged)
Please save this source code
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000
});
/**** 
* Game Code
****/ 
// Load assets (boat, obstacle, treasure)
function _typeof(o) {
	"@babel/helpers - typeof";
	return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
		return typeof o;
	} : function (o) {
		return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
	}, _typeof(o);
}
function _classCallCheck(a, n) {
	if (!(a instanceof n)) {
		throw new TypeError("Cannot call a class as a function");
	}
}
function _defineProperties(e, r) {
	for (var t = 0; t < r.length; t++) {
		var o = r[t];
		o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
	}
}
function _createClass(e, r, t) {
	return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
		writable: !1
	}), e;
}
function _toPropertyKey(t) {
	var i = _toPrimitive(t, "string");
	return "symbol" == _typeof(i) ? i : i + "";
}
function _toPrimitive(t, r) {
	if ("object" != _typeof(t) || !t) {
		return t;
	}
	var e = t[Symbol.toPrimitive];
	if (void 0 !== e) {
		var i = e.call(t, r || "default");
		if ("object" != _typeof(i)) {
			return i;
		}
		throw new TypeError("@@toPrimitive must return a primitive value.");
	}
	return ("string" === r ? String : Number)(t);
}
function _callSuper(t, o, e) {
	return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
}
function _possibleConstructorReturn(t, e) {
	if (e && ("object" == _typeof(e) || "function" == typeof e)) {
		return e;
	}
	if (void 0 !== e) {
		throw new TypeError("Derived constructors may only return object or undefined");
	}
	return _assertThisInitialized(t);
}
function _assertThisInitialized(e) {
	if (void 0 === e) {
		throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
	}
	return e;
}
function _isNativeReflectConstruct() {
	try {
		var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
	} catch (t) {}
	return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
		return !!t;
	})();
}
function _getPrototypeOf(t) {
	return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
		return t.__proto__ || Object.getPrototypeOf(t);
	}, _getPrototypeOf(t);
}
function _inherits(t, e) {
	if ("function" != typeof e && null !== e) {
		throw new TypeError("Super expression must either be null or a function");
	}
	t.prototype = Object.create(e && e.prototype, {
		constructor: {
			value: t,
			writable: !0,
			configurable: !0
		}
	}), Object.defineProperty(t, "prototype", {
		writable: !1
	}), e && _setPrototypeOf(t, e);
}
function _setPrototypeOf(t, e) {
	return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
		return t.__proto__ = e, t;
	}, _setPrototypeOf(t, e);
}
Laya.loader.load([{
	url: "boat.png",
	type: Laya.Loader.IMAGE
}, {
	url: "obstacle.png",
	type: Laya.Loader.IMAGE
}, {
	url: "treasure.png",
	type: Laya.Loader.IMAGE
}]);
// Boat class to represent the player's boat
var Boat = /*#__PURE__*/function (_Laya$Sprite) {
	function Boat() {
		var _this;
		_classCallCheck(this, Boat);
		_this = _callSuper(this, Boat);
		_this.loadImage("boat.png"); // Load boat image
		_this.anchorX = 0.5; // Center the boat horizontally
		_this.anchorY = 0.5; // Center the boat vertically
		_this.speed = 10; // Boat speed
		return _this;
	}
	_inherits(Boat, _Laya$Sprite);
	return _createClass(Boat, [{
		key: "update",
		value: function update() {
			// Boat movement logic will be handled in the game move event
		}
	}]);
}(Laya.Sprite); // Obstacle class to represent rocks and logs
var Obstacle = /*#__PURE__*/function (_Laya$Sprite2) {
	function Obstacle() {
		var _this2;
		_classCallCheck(this, Obstacle);
		_this2 = _callSuper(this, Obstacle);
		_this2.loadImage("obstacle.png"); // Load obstacle image
		_this2.anchorX = 0.5; // Center the obstacle horizontally
		_this2.anchorY = 0.5; // Center the obstacle vertically
		_this2.speed = 5; // Obstacle speed
		return _this2;
	}
	_inherits(Obstacle, _Laya$Sprite2);
	return _createClass(Obstacle, [{
		key: "update",
		value: function update() {
			this.y += this.speed; // Move the obstacle down the screen
			if (this.y > Laya.stage.height) {
				this.destroy(); // Destroy the obstacle if it goes off-screen
			}
		}
	}]);
}(Laya.Sprite); // Treasure class to represent collectible treasures
var Treasure = /*#__PURE__*/function (_Laya$Sprite3) {
	function Treasure() {
		var _this3;
		_classCallCheck(this, Treasure);
		_this3 = _callSuper(this, Treasure);
		_this3.loadImage("treasure.png"); // Load treasure image
		_this3.anchorX = 0.5; // Center the treasure horizontally
		_this3.anchorY = 0.5; // Center the treasure vertically
		_this3.speed = 5; // Treasure speed
		return _this3;
	}
	_inherits(Treasure, _Laya$Sprite3);
	return _createClass(Treasure, [{
		key: "update",
		value: function update() {
			this.y += this.speed; // Move the treasure down the screen
			if (this.y > Laya.stage.height) {
				this.destroy(); // Destroy the treasure if it goes off-screen
			}
		}
	}]);
}(Laya.Sprite);
Laya.init(800, 600); // Initialize the game stage (800x600)
Laya.stage.bgColor = "#87CEEB"; // Light blue background for the river
// Initialize game variables
var boat = new Boat();
boat.pos(Laya.stage.width / 2, Laya.stage.height - 100); // Position the boat at the bottom center
Laya.stage.addChild(boat);
var obstacles = []; // Array to store obstacles
var treasures = []; // Array to store treasures
var score = 0; // Player's score
// Display the score on the screen
var scoreTxt = new Laya.Text();
scoreTxt.text = "Score: 0";
scoreTxt.fontSize = 30;
scoreTxt.color = "#FFFFFF"; // White text
scoreTxt.pos(10, 10); // Position the score text at the top-left corner
Laya.stage.addChild(scoreTxt);
// Function to handle boat movement
function handleMove(e) {
	boat.x = Laya.stage.mouseX; // Move the boat to the mouse X position
	if (boat.x < 0) {
		boat.x = 0; // Prevent the boat from going off the left edge
	}
	if (boat.x > Laya.stage.width) {
		boat.x = Laya.stage.width; // Prevent the boat from going off the right edge
	}
}
// Game move event to handle swiping
Laya.stage.on(Laya.Event.MOUSE_MOVE, void 0, handleMove);
// Game update loop
Laya.timer.frameLoop(1, void 0, function () {
	// Spawn obstacles and treasures every 60 frames (1 second)
	if (Laya.timer.currFrame % 60 == 0) {
		// Spawn a new obstacle
		var newObstacle = new Obstacle();
		newObstacle.pos(Math.random() * Laya.stage.width, -50); // Random x position, start above the screen
		obstacles.push(newObstacle);
		Laya.stage.addChild(newObstacle);
		// Spawn a new treasure
		var newTreasure = new Treasure();
		newTreasure.pos(Math.random() * Laya.stage.width, -50); // Random x position, start above the screen
		treasures.push(newTreasure);
		Laya.stage.addChild(newTreasure);
	}
	// Update obstacles and check for collisions
	for (var i = obstacles.length - 1; i >= 0; i--) {
		var obstacle = obstacles[i];
		obstacle.update(); // Move the obstacle down the screen
		// Check for collision between the boat and the obstacle
		if (boat.getBounds().intersects(obstacle.getBounds())) {
			Laya.stage.off(Laya.Event.MOUSE_MOVE, this, handleMove); // Stop boat movement
			Laya.timer.clear(this, update); // Stop the game loop
			console.log("Game Over!");
			return;
		}
		// Remove the obstacle if it goes off the screen
		if (obstacle.y > Laya.stage.height) {
			obstacle.destroy();
			obstacles.splice(i, 1);
		}
	}
	// Update treasures and check for collection
	for (var j = treasures.length - 1; j >= 0; j--) {
		var treasure = treasures[j];
		treasure.update(); // Move the treasure down the screen
		// Check for collision between the boat and the treasure
		if (boat.getBounds().intersects(treasure.getBounds())) {
			score += 10; // Increase the score
			scoreTxt.text = "Score: " + score; // Update the score display
			treasure.destroy(); // Remove the treasure
			treasures.splice(j, 1); // Remove the treasure from the array
		}
		// Remove the treasure if it goes off the screen
		if (treasure.y > Laya.stage.height) {
			treasure.destroy();
			treasures.splice(j, 1);
		}
	}
}); ===================================================================
--- original.js
+++ change.js
@@ -1,115 +1,237 @@
 /**** 
-* Classes
-****/ 
-// Boat class to represent the player's boat
-var Boat = Container.expand(function () {
-	var self = Container.call(this);
-	var boatGraphics = self.attachAsset('boat', {
-		anchorX: 0.5,
-		anchorY: 0.5
-	});
-	self.speed = 10; // Boat speed
-	self.update = function () {
-		// Boat movement logic will be handled in the game move event
-	};
-});
-// Obstacle class to represent rocks and logs
-var Obstacle = Container.expand(function () {
-	var self = Container.call(this);
-	var obstacleGraphics = self.attachAsset('obstacle', {
-		anchorX: 0.5,
-		anchorY: 0.5
-	});
-	self.speed = 5; // Obstacle speed
-	self.update = function () {
-		self.y += self.speed;
-		if (self.y > 2732) {
-			self.destroy();
-		}
-	};
-});
-// Treasure class to represent collectible treasures
-var Treasure = Container.expand(function () {
-	var self = Container.call(this);
-	var treasureGraphics = self.attachAsset('treasure', {
-		anchorX: 0.5,
-		anchorY: 0.5
-	});
-	self.speed = 5; // Treasure speed
-	self.update = function () {
-		self.y += self.speed;
-		if (self.y > 2732) {
-			self.destroy();
-		}
-	};
-});
-
-/**** 
 * Initialize Game
 ****/ 
 var game = new LK.Game({
-	backgroundColor: 0x87CEEB // Light blue background to represent the river
+	backgroundColor: 0x000000
 });
 
 /**** 
 * Game Code
 ****/ 
+// Load assets (boat, obstacle, treasure)
+function _typeof(o) {
+	"@babel/helpers - typeof";
+	return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
+		return typeof o;
+	} : function (o) {
+		return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
+	}, _typeof(o);
+}
+function _classCallCheck(a, n) {
+	if (!(a instanceof n)) {
+		throw new TypeError("Cannot call a class as a function");
+	}
+}
+function _defineProperties(e, r) {
+	for (var t = 0; t < r.length; t++) {
+		var o = r[t];
+		o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
+	}
+}
+function _createClass(e, r, t) {
+	return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
+		writable: !1
+	}), e;
+}
+function _toPropertyKey(t) {
+	var i = _toPrimitive(t, "string");
+	return "symbol" == _typeof(i) ? i : i + "";
+}
+function _toPrimitive(t, r) {
+	if ("object" != _typeof(t) || !t) {
+		return t;
+	}
+	var e = t[Symbol.toPrimitive];
+	if (void 0 !== e) {
+		var i = e.call(t, r || "default");
+		if ("object" != _typeof(i)) {
+			return i;
+		}
+		throw new TypeError("@@toPrimitive must return a primitive value.");
+	}
+	return ("string" === r ? String : Number)(t);
+}
+function _callSuper(t, o, e) {
+	return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
+}
+function _possibleConstructorReturn(t, e) {
+	if (e && ("object" == _typeof(e) || "function" == typeof e)) {
+		return e;
+	}
+	if (void 0 !== e) {
+		throw new TypeError("Derived constructors may only return object or undefined");
+	}
+	return _assertThisInitialized(t);
+}
+function _assertThisInitialized(e) {
+	if (void 0 === e) {
+		throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+	}
+	return e;
+}
+function _isNativeReflectConstruct() {
+	try {
+		var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
+	} catch (t) {}
+	return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
+		return !!t;
+	})();
+}
+function _getPrototypeOf(t) {
+	return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
+		return t.__proto__ || Object.getPrototypeOf(t);
+	}, _getPrototypeOf(t);
+}
+function _inherits(t, e) {
+	if ("function" != typeof e && null !== e) {
+		throw new TypeError("Super expression must either be null or a function");
+	}
+	t.prototype = Object.create(e && e.prototype, {
+		constructor: {
+			value: t,
+			writable: !0,
+			configurable: !0
+		}
+	}), Object.defineProperty(t, "prototype", {
+		writable: !1
+	}), e && _setPrototypeOf(t, e);
+}
+function _setPrototypeOf(t, e) {
+	return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
+		return t.__proto__ = e, t;
+	}, _setPrototypeOf(t, e);
+}
+Laya.loader.load([{
+	url: "boat.png",
+	type: Laya.Loader.IMAGE
+}, {
+	url: "obstacle.png",
+	type: Laya.Loader.IMAGE
+}, {
+	url: "treasure.png",
+	type: Laya.Loader.IMAGE
+}]);
+// Boat class to represent the player's boat
+var Boat = /*#__PURE__*/function (_Laya$Sprite) {
+	function Boat() {
+		var _this;
+		_classCallCheck(this, Boat);
+		_this = _callSuper(this, Boat);
+		_this.loadImage("boat.png"); // Load boat image
+		_this.anchorX = 0.5; // Center the boat horizontally
+		_this.anchorY = 0.5; // Center the boat vertically
+		_this.speed = 10; // Boat speed
+		return _this;
+	}
+	_inherits(Boat, _Laya$Sprite);
+	return _createClass(Boat, [{
+		key: "update",
+		value: function update() {
+			// Boat movement logic will be handled in the game move event
+		}
+	}]);
+}(Laya.Sprite); // Obstacle class to represent rocks and logs
+var Obstacle = /*#__PURE__*/function (_Laya$Sprite2) {
+	function Obstacle() {
+		var _this2;
+		_classCallCheck(this, Obstacle);
+		_this2 = _callSuper(this, Obstacle);
+		_this2.loadImage("obstacle.png"); // Load obstacle image
+		_this2.anchorX = 0.5; // Center the obstacle horizontally
+		_this2.anchorY = 0.5; // Center the obstacle vertically
+		_this2.speed = 5; // Obstacle speed
+		return _this2;
+	}
+	_inherits(Obstacle, _Laya$Sprite2);
+	return _createClass(Obstacle, [{
+		key: "update",
+		value: function update() {
+			this.y += this.speed; // Move the obstacle down the screen
+			if (this.y > Laya.stage.height) {
+				this.destroy(); // Destroy the obstacle if it goes off-screen
+			}
+		}
+	}]);
+}(Laya.Sprite); // Treasure class to represent collectible treasures
+var Treasure = /*#__PURE__*/function (_Laya$Sprite3) {
+	function Treasure() {
+		var _this3;
+		_classCallCheck(this, Treasure);
+		_this3 = _callSuper(this, Treasure);
+		_this3.loadImage("treasure.png"); // Load treasure image
+		_this3.anchorX = 0.5; // Center the treasure horizontally
+		_this3.anchorY = 0.5; // Center the treasure vertically
+		_this3.speed = 5; // Treasure speed
+		return _this3;
+	}
+	_inherits(Treasure, _Laya$Sprite3);
+	return _createClass(Treasure, [{
+		key: "update",
+		value: function update() {
+			this.y += this.speed; // Move the treasure down the screen
+			if (this.y > Laya.stage.height) {
+				this.destroy(); // Destroy the treasure if it goes off-screen
+			}
+		}
+	}]);
+}(Laya.Sprite);
+Laya.init(800, 600); // Initialize the game stage (800x600)
+Laya.stage.bgColor = "#87CEEB"; // Light blue background for the river
 // Initialize game variables
-var boat = game.addChild(new Boat());
-boat.x = 2048 / 2; // Center the boat horizontally
-boat.y = 2500; // Position the boat near the bottom of the screen
+var boat = new Boat();
+boat.pos(Laya.stage.width / 2, Laya.stage.height - 100); // Position the boat at the bottom center
+Laya.stage.addChild(boat);
 var obstacles = []; // Array to store obstacles
 var treasures = []; // Array to store treasures
 var score = 0; // Player's score
 // Display the score on the screen
-var scoreTxt = new Text2('Score: 0', {
-	size: 100,
-	fill: 0xFFFFFF // White text
-});
-scoreTxt.anchor.set(0.5, 0); // Center the text horizontally
-LK.gui.top.addChild(scoreTxt); // Add the score text to the top of the screen
+var scoreTxt = new Laya.Text();
+scoreTxt.text = "Score: 0";
+scoreTxt.fontSize = 30;
+scoreTxt.color = "#FFFFFF"; // White text
+scoreTxt.pos(10, 10); // Position the score text at the top-left corner
+Laya.stage.addChild(scoreTxt);
 // Function to handle boat movement
-function handleMove(x, y, obj) {
-	boat.x = x; // Move the boat to the x position of the swipe
+function handleMove(e) {
+	boat.x = Laya.stage.mouseX; // Move the boat to the mouse X position
 	if (boat.x < 0) {
 		boat.x = 0; // Prevent the boat from going off the left edge
 	}
-	if (boat.x > 2048) {
-		boat.x = 2048; // Prevent the boat from going off the right edge
+	if (boat.x > Laya.stage.width) {
+		boat.x = Laya.stage.width; // Prevent the boat from going off the right edge
 	}
 }
 // Game move event to handle swiping
-game.move = handleMove;
+Laya.stage.on(Laya.Event.MOUSE_MOVE, void 0, handleMove);
 // Game update loop
-game.update = function () {
-	// Spawn obstacles and treasures every 60 ticks (1 second)
-	if (LK.ticks % 60 == 0) {
+Laya.timer.frameLoop(1, void 0, function () {
+	// Spawn obstacles and treasures every 60 frames (1 second)
+	if (Laya.timer.currFrame % 60 == 0) {
 		// Spawn a new obstacle
 		var newObstacle = new Obstacle();
-		newObstacle.x = Math.random() * 2048; // Random x position
-		newObstacle.y = -50; // Start above the screen
+		newObstacle.pos(Math.random() * Laya.stage.width, -50); // Random x position, start above the screen
 		obstacles.push(newObstacle);
-		game.addChild(newObstacle);
+		Laya.stage.addChild(newObstacle);
 		// Spawn a new treasure
 		var newTreasure = new Treasure();
-		newTreasure.x = Math.random() * 2048; // Random x position
-		newTreasure.y = -50; // Start above the screen
+		newTreasure.pos(Math.random() * Laya.stage.width, -50); // Random x position, start above the screen
 		treasures.push(newTreasure);
-		game.addChild(newTreasure);
+		Laya.stage.addChild(newTreasure);
 	}
 	// Update obstacles and check for collisions
 	for (var i = obstacles.length - 1; i >= 0; i--) {
 		var obstacle = obstacles[i];
 		obstacle.update(); // Move the obstacle down the screen
 		// Check for collision between the boat and the obstacle
-		if (boat.intersects(obstacle)) {
-			LK.effects.flashScreen(0xff0000, 1000); // Flash the screen red
-			LK.showGameOver(); // End the game
+		if (boat.getBounds().intersects(obstacle.getBounds())) {
+			Laya.stage.off(Laya.Event.MOUSE_MOVE, this, handleMove); // Stop boat movement
+			Laya.timer.clear(this, update); // Stop the game loop
+			console.log("Game Over!");
 			return;
 		}
 		// Remove the obstacle if it goes off the screen
-		if (obstacle.y > 2732) {
+		if (obstacle.y > Laya.stage.height) {
 			obstacle.destroy();
 			obstacles.splice(i, 1);
 		}
 	}
@@ -117,43 +239,17 @@
 	for (var j = treasures.length - 1; j >= 0; j--) {
 		var treasure = treasures[j];
 		treasure.update(); // Move the treasure down the screen
 		// Check for collision between the boat and the treasure
-		if (boat.intersects(treasure)) {
+		if (boat.getBounds().intersects(treasure.getBounds())) {
 			score += 10; // Increase the score
-			scoreTxt.setText('Score: ' + score); // Update the score display
+			scoreTxt.text = "Score: " + score; // Update the score display
 			treasure.destroy(); // Remove the treasure
 			treasures.splice(j, 1); // Remove the treasure from the array
 		}
 		// Remove the treasure if it goes off the screen
-		if (treasure.y > 2732) {
+		if (treasure.y > Laya.stage.height) {
 			treasure.destroy();
 			treasures.splice(j, 1);
 		}
 	}
-};
-/**** 
-* FRVR Integration
-****/ 
-// Initialize the LK SDK
-LK.start({
-	gameId: "your-game-id",
-	// Replace with your LK game ID
-	onReady: function onReady() {
-		console.log("LK SDK is ready!");
-		// Start the game
-		game.start();
-	},
-	onGameOver: function onGameOver(score) {
-		// Submit the player's score to LK leaderboard
-		LK.submitScore(score);
-	}
-});
-// Function to handle game over
-function gameOver() {
-	// Submit the player's score to FRVR
-	frvr.submitScore(score);
-	// Show FRVR's game over screen
-	frvr.showGameOver();
-}
-// Update the game over logic to use FRVR's game over function
-LK.showGameOver = gameOver;
\ No newline at end of file
+});
\ No newline at end of file
 
 shining moon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 a single shining yellowish golden coin with the boat on it. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 a colorful, cartoon style boat with an orange and blue color scheme. the boat has a small flag on top, round windows and a curved hull , with the BOAT text on it with bold letters. the design is vibrant, playful and optimized for a mobile game. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 
 
 white water bubble. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 single rock. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 gold sparkle. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 single gold sparkle. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 red shining heart symbol. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 whale head in octogonal box with green background asset. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 orange life rings asset that revive from water. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 single rounded white bubble firefly trail. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 shining sun cartoon style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 flying owl with blue gold color mix asset. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 coin magnet white blue red in color. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
 
 warning asset. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows