/**** * Classes ****/ // Define a class for the Arrow var Arrow = Container.expand(function () { var self = Container.call(this); var arrowGraphics = self.attachAsset('arrows', { anchorX: 0.5, anchorY: 0.66 }); self.x = 2048 / 2 + 350; // Move the arrow right by 350 units self.y = 2732 / 2 + 720; // Move the arrow down by 720 units }); // Define a class for the Box Lid var BoxLid = Container.expand(function () { var self = Container.call(this); var boxLidGraphics = self.attachAsset('boxLid', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2; // Center the box lid horizontally self.y = 2732 / 2 + 720 - 350; // Position the box lid to the top of the wooden box }); // Assets will be automatically created and loaded by the LK engine based on their usage in the code. // Define a class for the Cat var Cat = Container.expand(function () { var self = Container.call(this); // Method to animate the cat paw stretching towards the toggle switch self.stretchPaw = function () { var targetX = toggleSwitch.x; var targetY = toggleSwitch.y; var stretchInterval = LK.setInterval(function () { if (catPaw.x < targetX) { catPaw.x += 5; // Move the paw towards the toggle switch } if (catPaw.y > targetY) { catPaw.y -= 5; // Move the paw upwards towards the toggle switch } if (Math.abs(catPaw.x - targetX) < 5 && Math.abs(catPaw.y - targetY) < 5) { LK.clearInterval(stretchInterval); // Stop the interval when the paw reaches the toggle switch catPaw.visible = false; // Hide the cat paw toggleSwitch.isTouched = true; // Set toggle switch as touched LK.getSound('ts').play(); // Play 'ts' sound when the cat paw touches the toggle switch } }, 16); // Approximately 60 FPS }; var catGraphics = self.attachAsset('cat', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2; self.y = 2732 / 2 + 950; // Move the cat down by 950 units }); // Define a class for the Cat Paw var CatPaw = Container.expand(function () { var self = Container.call(this); var pawGraphics = self.attachAsset('catPaw', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2 + 110 - 50 + 10 + 45 - 20 - 20 + 70; self.y = 2732 / 2 + 550; // Move the cat arm up by 10 units pawGraphics.rotation = Math.PI / 4; // Rotate the cat paw 45 degrees to the right }); // Define a class for the Ceiling Light var CeilingLight = Container.expand(function () { var self = Container.call(this); var lightGraphics = self.attachAsset('ceilingLight', { anchorX: 0.5, anchorY: 0.0 }); self.x = 2048 / 2; // Center the ceiling light horizontally self.y = 2732 / 2 - 1400; // Move the ceiling light up by 300 units // Initialize swaying properties self.swaySpeed = 0.005; self.swayDirection = 1; self.swaying = false; self.swayCount = 0; // Method to start swaying self.startSwaying = function () { if (!self.swaying) { self.swaying = true; self.swayCount = 0; self.swaySpeed = 0.01; // Reset sway speed to default } }; // Method to update swaying self.updateSwaying = function () { if (self.swaying) { self.rotation += self.swaySpeed * self.swayDirection; if (self.rotation > 0.349 || self.rotation < -0.349) { // 20 degrees in radians self.swayDirection *= -1; } self.swayCount++; if (self.swayCount > 120) { // 2 seconds at 60 FPS self.swaySpeed *= 0.99; // Gradually slow down if (Math.abs(self.rotation) < 0.01) { self.rotation = 0; // Reset to original position self.swaying = false; // Stop swaying } } } }; // Event handler for when the ceiling light is touched self.down = function (x, y, obj) { self.startSwaying(); self.clickCount = (self.clickCount || 0) + 1; // Increment click count if (self.clickCount >= 10) { self.fallToGround(); // Trigger the fall to ground method self.clickCount = 0; // Reset click count } self.swaySpeed *= 1.2; // Increase swaying speed self.swayCount = 0; // Reset sway count }; // Method to make the ceiling light fall to the ground self.fallToGround = function () { darkOverlay.toggle(); // Turn on the dark overlay var fallInterval = LK.setInterval(function () { if (self.y < 2732 / 2 + 1100) { self.y += 64; // Move the ceiling light down at double the previous speed } else { LK.clearInterval(fallInterval); // Stop the interval when it reaches the ground self.visible = false; // Hide the ceiling light } }, 16); // Approximately 60 FPS }; }); // Define a class for the DarkOverlay var DarkOverlay = Container.expand(function () { var self = Container.call(this); var overlayGraphics = LK.getAsset('darkOverlay', { anchorX: 0.0, anchorY: 0.0, width: 2048, height: 2732, alpha: 0.95 }); self.addChild(overlayGraphics); self.visible = false; // Initially hidden // Method to toggle visibility self.toggle = function () { self.visible = !self.visible; }; }); // Define a class for the LED Light var LEDLight = Container.expand(function () { var self = Container.call(this); var ledGraphics = self.attachAsset('ledLight', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2; // Center the LED light horizontally self.y = 2732 / 2 - 1000; // Position the LED light above the center }); // Define a class for the LightSwitch var LightSwitch = Container.expand(function () { var self = Container.call(this); var switchGraphics = self.attachAsset('lightswitch', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2 + 800; self.y = 2732 / 2 - 500; // Move the light switch up by 500 units self.isTouched = false; // Event handler for when the switch is touched self.down = function (x, y, obj) { self.isTouched = true; LK.getSound('ls').play(); // Play 'ls' sound when the light switch is touched // Mirror the light switch vertically switchGraphics.scale.y *= -1; }; }); // Define a class for the StickyNote var StickyNote = Container.expand(function () { var self = Container.call(this); var stickyNoteGraphics = self.attachAsset('stickyNote', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2 - 300; // Move the sticky note left by 300 units self.y = 2732 / 2 + 700; // Move the sticky note up by 500 units self.touchCount = 0; // Initialize touch counter // Method to handle touch events self.down = function (x, y, obj) { self.touchCount++; if (self.touchCount >= 3) { self.fallToBottom(); self.touchCount = 0; // Reset touch counter } }; // Method to animate falling to the bottom self.fallToBottom = function () { var fallInterval = LK.setInterval(function () { if (self.y < 2732 / 2 + 1100) { self.y += 5; // Move the sticky note down } else { LK.clearInterval(fallInterval); // Stop the interval when it reaches the bottom } }, 16); // Approximately 60 FPS }; }); // Define a class for the Table var Table = Container.expand(function () { var self = Container.call(this); var tableGraphics = self.attachAsset('table', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2; // Center the table horizontally self.y = 2732 / 2 + 2200; // Move the table down by 2000 units }); // Define a class for the Toggle Switch var ToggleSwitch = Container.expand(function () { var self = Container.call(this); var switchGraphics = self.attachAsset('toggleSwitch', { anchorX: 0.5, anchorY: 0.33 }); self.x = 2048 / 2; self.y = 2732 / 2 + 750; // Move the toggle switch down by 50 units self.isTouched = false; // Event handler for when the switch is touched self.down = function (x, y, obj) { self.isTouched = true; LK.getSound('ts').play(); boxLid.visible = !boxLid.visible; // Toggle the visibility of the box lid if (boxLid.visible) { LK.setTimeout(function () { cat.visible = boxLid.visible; // Make the cat visible only if the box lid is visible var targetY = 2732 / 2 + 100; // Target position for the cat var moveInterval = LK.setInterval(function () { if (cat.y > targetY) { cat.y -= 10; // Move the cat upwards at double speed } else { LK.clearInterval(moveInterval); // Stop the interval when the cat reaches the target position cat.stretchPaw(); // Trigger the paw stretch animation catPaw.visible = true; // Show the cat paw when the toggle switch is open switchGraphics.scale.y *= -1; // Flip the toggle switch vertically LK.setTimeout(function () { catPaw.visible = false; // Hide the cat paw when the toggle switch is closed boxLid.visible = false; // Hide the box lid when the cat and paw are hidden cat.y = 2732 / 2 + 950; // Move the cat back behind the box }, 500); } }, 16); // Approximately 60 FPS }, 500); } else { cat.visible = false; // Hide the cat when the box lid is not visible catPaw.visible = false; // Hide the cat paw when the toggle switch is closed } // Mirror the toggle switch vertically switchGraphics.scale.y *= -1; }; }); // Define a class for the Wallpaper var Wallpaper = Container.expand(function () { var self = Container.call(this); var wallpaperGraphics = self.attachAsset('wallpaper', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2 - 10; // Move the wallpaper left by 10 units self.y = 2732 / 2 - 300; // Move the wallpaper up by 300 units }); // Define a class for the Wooden Box var WoodenBox = Container.expand(function () { var self = Container.call(this); var boxGraphics = self.attachAsset('woodenBox', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2; // Center the wooden box horizontally self.y = 2732 / 2 + 720; // Move the wooden box down by 220 units }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Add the light switch to the game var lightSwitch = game.addChild(new LightSwitch()); // Add the LED light to the game var ledLight = new LEDLight(); ledLight.x = lightSwitch.x; // Align LED light with the light switch ledLight.y = lightSwitch.y; // Align LED light with the light switch game.addChild(ledLight); // Add the ceiling light to the game, ensuring it is in front of the wallpaper var wallpaper = game.addChild(new Wallpaper()); // Add the ceiling light to the game, ensuring it is in front of the wallpaper ceilingLight = game.addChild(new CeilingLight()); game.setChildIndex(ceilingLight, game.children.length - 1); // Add the box lid to the game var boxLid = game.addChild(new BoxLid()); boxLid.visible = false; // Ensure the box lid is initially invisible when the game starts // Initialize game elements var cat = game.addChild(new Cat()); cat.visible = true; // Ensure the cat is visible when the game starts // Add the table to the game var table = game.addChild(new Table()); // Add the wooden box to the game var woodenBox = game.addChild(new WoodenBox()); var toggleSwitch = game.addChild(new ToggleSwitch()); toggleSwitch.isTouched = false; // Ensure toggle switch is in close state when the game starts var lightSwitch = game.addChild(new LightSwitch()); var catPaw = game.addChild(new CatPaw()); catPaw.visible = false; // Ensure the cat's paw is initially invisible when the game starts game.setChildIndex(catPaw, game.children.length - 1); // Add the sticky note to the game var stickyNote = game.addChild(new StickyNote()); // Add the arrow to the game var arrow = game.addChild(new Arrow()); // Add the dark overlay to the game darkOverlay = game.addChild(new DarkOverlay()); // Re-add the LED light to ensure it is rendered on top of the dark overlay game.setChildIndex(ledLight, game.children.length - 1); // Add 'Close' text to the center of the map var closeText = new Text2('Close', { size: 75, fill: 0x000000 }); closeText.anchor.set(0.5, 0.5); // Center the text closeText.x = 2048 / 2 + 350; // Move right by 600 units closeText.y = 2732 / 2 - 500 + 1400 + 50; // Move down by 1450 units game.addChild(closeText); // Add 'Open' text to the game var openText = new Text2('Open', { size: 75, fill: 0x000000 }); openText.anchor.set(0.5, 0.5); // Center the text openText.x = 2048 / 2 + 350; // Move right by 600 units openText.y = 2732 / 2 + 500; // Move down by 500 units game.addChild(openText); // Game update loop game.update = function () { // Check if the light switch is touched if (lightSwitch.isTouched && ceilingLight.visible) { darkOverlay.toggle(); // Toggle the dark overlay lightSwitch.isTouched = false; // Reset the switch state } ceilingLight.updateSwaying(); // Update swaying effect for ceiling light ledLight.visible = darkOverlay.visible; // Ensure LED light is only visible when darkOverlay is active // Move the cat down by 600 units if (toggleSwitch.isTouched) { if (!boxLid.visible) { cat.y = 2732 / 2 + 790; // Ensure the cat's position is set correctly when visible } LK.getSound('ts').play(); // Play 'ts' sound when the player reaches the toggleSwitch toggleSwitch.isTouched = false; // Reset the switch state } }; // Handle touch events on the game game.down = function (x, y, obj) { // Convert global coordinates to local game coordinates var localPos = game.toLocal(obj.global); // Check if the touch is on the light switch if (lightSwitch.intersects({ x: localPos.x, y: localPos.y, width: 1, height: 1 })) { lightSwitch.down(x, y, obj); LK.effects.flashScreen(0xff0000, 1000); // Flash screen red LK.showGameOver(); // End the game } // Check if the touch is on the sticky note if (stickyNote.intersects({ x: localPos.x, y: localPos.y, width: 1, height: 1 })) { stickyNote.down(x, y, obj); } };
/****
* Classes
****/
// Define a class for the Arrow
var Arrow = Container.expand(function () {
var self = Container.call(this);
var arrowGraphics = self.attachAsset('arrows', {
anchorX: 0.5,
anchorY: 0.66
});
self.x = 2048 / 2 + 350; // Move the arrow right by 350 units
self.y = 2732 / 2 + 720; // Move the arrow down by 720 units
});
// Define a class for the Box Lid
var BoxLid = Container.expand(function () {
var self = Container.call(this);
var boxLidGraphics = self.attachAsset('boxLid', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2; // Center the box lid horizontally
self.y = 2732 / 2 + 720 - 350; // Position the box lid to the top of the wooden box
});
// Assets will be automatically created and loaded by the LK engine based on their usage in the code.
// Define a class for the Cat
var Cat = Container.expand(function () {
var self = Container.call(this);
// Method to animate the cat paw stretching towards the toggle switch
self.stretchPaw = function () {
var targetX = toggleSwitch.x;
var targetY = toggleSwitch.y;
var stretchInterval = LK.setInterval(function () {
if (catPaw.x < targetX) {
catPaw.x += 5; // Move the paw towards the toggle switch
}
if (catPaw.y > targetY) {
catPaw.y -= 5; // Move the paw upwards towards the toggle switch
}
if (Math.abs(catPaw.x - targetX) < 5 && Math.abs(catPaw.y - targetY) < 5) {
LK.clearInterval(stretchInterval); // Stop the interval when the paw reaches the toggle switch
catPaw.visible = false; // Hide the cat paw
toggleSwitch.isTouched = true; // Set toggle switch as touched
LK.getSound('ts').play(); // Play 'ts' sound when the cat paw touches the toggle switch
}
}, 16); // Approximately 60 FPS
};
var catGraphics = self.attachAsset('cat', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2;
self.y = 2732 / 2 + 950; // Move the cat down by 950 units
});
// Define a class for the Cat Paw
var CatPaw = Container.expand(function () {
var self = Container.call(this);
var pawGraphics = self.attachAsset('catPaw', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2 + 110 - 50 + 10 + 45 - 20 - 20 + 70;
self.y = 2732 / 2 + 550; // Move the cat arm up by 10 units
pawGraphics.rotation = Math.PI / 4; // Rotate the cat paw 45 degrees to the right
});
// Define a class for the Ceiling Light
var CeilingLight = Container.expand(function () {
var self = Container.call(this);
var lightGraphics = self.attachAsset('ceilingLight', {
anchorX: 0.5,
anchorY: 0.0
});
self.x = 2048 / 2; // Center the ceiling light horizontally
self.y = 2732 / 2 - 1400; // Move the ceiling light up by 300 units
// Initialize swaying properties
self.swaySpeed = 0.005;
self.swayDirection = 1;
self.swaying = false;
self.swayCount = 0;
// Method to start swaying
self.startSwaying = function () {
if (!self.swaying) {
self.swaying = true;
self.swayCount = 0;
self.swaySpeed = 0.01; // Reset sway speed to default
}
};
// Method to update swaying
self.updateSwaying = function () {
if (self.swaying) {
self.rotation += self.swaySpeed * self.swayDirection;
if (self.rotation > 0.349 || self.rotation < -0.349) {
// 20 degrees in radians
self.swayDirection *= -1;
}
self.swayCount++;
if (self.swayCount > 120) {
// 2 seconds at 60 FPS
self.swaySpeed *= 0.99; // Gradually slow down
if (Math.abs(self.rotation) < 0.01) {
self.rotation = 0; // Reset to original position
self.swaying = false; // Stop swaying
}
}
}
};
// Event handler for when the ceiling light is touched
self.down = function (x, y, obj) {
self.startSwaying();
self.clickCount = (self.clickCount || 0) + 1; // Increment click count
if (self.clickCount >= 10) {
self.fallToGround(); // Trigger the fall to ground method
self.clickCount = 0; // Reset click count
}
self.swaySpeed *= 1.2; // Increase swaying speed
self.swayCount = 0; // Reset sway count
};
// Method to make the ceiling light fall to the ground
self.fallToGround = function () {
darkOverlay.toggle(); // Turn on the dark overlay
var fallInterval = LK.setInterval(function () {
if (self.y < 2732 / 2 + 1100) {
self.y += 64; // Move the ceiling light down at double the previous speed
} else {
LK.clearInterval(fallInterval); // Stop the interval when it reaches the ground
self.visible = false; // Hide the ceiling light
}
}, 16); // Approximately 60 FPS
};
});
// Define a class for the DarkOverlay
var DarkOverlay = Container.expand(function () {
var self = Container.call(this);
var overlayGraphics = LK.getAsset('darkOverlay', {
anchorX: 0.0,
anchorY: 0.0,
width: 2048,
height: 2732,
alpha: 0.95
});
self.addChild(overlayGraphics);
self.visible = false; // Initially hidden
// Method to toggle visibility
self.toggle = function () {
self.visible = !self.visible;
};
});
// Define a class for the LED Light
var LEDLight = Container.expand(function () {
var self = Container.call(this);
var ledGraphics = self.attachAsset('ledLight', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2; // Center the LED light horizontally
self.y = 2732 / 2 - 1000; // Position the LED light above the center
});
// Define a class for the LightSwitch
var LightSwitch = Container.expand(function () {
var self = Container.call(this);
var switchGraphics = self.attachAsset('lightswitch', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2 + 800;
self.y = 2732 / 2 - 500; // Move the light switch up by 500 units
self.isTouched = false;
// Event handler for when the switch is touched
self.down = function (x, y, obj) {
self.isTouched = true;
LK.getSound('ls').play(); // Play 'ls' sound when the light switch is touched
// Mirror the light switch vertically
switchGraphics.scale.y *= -1;
};
});
// Define a class for the StickyNote
var StickyNote = Container.expand(function () {
var self = Container.call(this);
var stickyNoteGraphics = self.attachAsset('stickyNote', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2 - 300; // Move the sticky note left by 300 units
self.y = 2732 / 2 + 700; // Move the sticky note up by 500 units
self.touchCount = 0; // Initialize touch counter
// Method to handle touch events
self.down = function (x, y, obj) {
self.touchCount++;
if (self.touchCount >= 3) {
self.fallToBottom();
self.touchCount = 0; // Reset touch counter
}
};
// Method to animate falling to the bottom
self.fallToBottom = function () {
var fallInterval = LK.setInterval(function () {
if (self.y < 2732 / 2 + 1100) {
self.y += 5; // Move the sticky note down
} else {
LK.clearInterval(fallInterval); // Stop the interval when it reaches the bottom
}
}, 16); // Approximately 60 FPS
};
});
// Define a class for the Table
var Table = Container.expand(function () {
var self = Container.call(this);
var tableGraphics = self.attachAsset('table', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2; // Center the table horizontally
self.y = 2732 / 2 + 2200; // Move the table down by 2000 units
});
// Define a class for the Toggle Switch
var ToggleSwitch = Container.expand(function () {
var self = Container.call(this);
var switchGraphics = self.attachAsset('toggleSwitch', {
anchorX: 0.5,
anchorY: 0.33
});
self.x = 2048 / 2;
self.y = 2732 / 2 + 750; // Move the toggle switch down by 50 units
self.isTouched = false;
// Event handler for when the switch is touched
self.down = function (x, y, obj) {
self.isTouched = true;
LK.getSound('ts').play();
boxLid.visible = !boxLid.visible; // Toggle the visibility of the box lid
if (boxLid.visible) {
LK.setTimeout(function () {
cat.visible = boxLid.visible; // Make the cat visible only if the box lid is visible
var targetY = 2732 / 2 + 100; // Target position for the cat
var moveInterval = LK.setInterval(function () {
if (cat.y > targetY) {
cat.y -= 10; // Move the cat upwards at double speed
} else {
LK.clearInterval(moveInterval); // Stop the interval when the cat reaches the target position
cat.stretchPaw(); // Trigger the paw stretch animation
catPaw.visible = true; // Show the cat paw when the toggle switch is open
switchGraphics.scale.y *= -1; // Flip the toggle switch vertically
LK.setTimeout(function () {
catPaw.visible = false; // Hide the cat paw when the toggle switch is closed
boxLid.visible = false; // Hide the box lid when the cat and paw are hidden
cat.y = 2732 / 2 + 950; // Move the cat back behind the box
}, 500);
}
}, 16); // Approximately 60 FPS
}, 500);
} else {
cat.visible = false; // Hide the cat when the box lid is not visible
catPaw.visible = false; // Hide the cat paw when the toggle switch is closed
}
// Mirror the toggle switch vertically
switchGraphics.scale.y *= -1;
};
});
// Define a class for the Wallpaper
var Wallpaper = Container.expand(function () {
var self = Container.call(this);
var wallpaperGraphics = self.attachAsset('wallpaper', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2 - 10; // Move the wallpaper left by 10 units
self.y = 2732 / 2 - 300; // Move the wallpaper up by 300 units
});
// Define a class for the Wooden Box
var WoodenBox = Container.expand(function () {
var self = Container.call(this);
var boxGraphics = self.attachAsset('woodenBox', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 2048 / 2; // Center the wooden box horizontally
self.y = 2732 / 2 + 720; // Move the wooden box down by 220 units
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Add the light switch to the game
var lightSwitch = game.addChild(new LightSwitch());
// Add the LED light to the game
var ledLight = new LEDLight();
ledLight.x = lightSwitch.x; // Align LED light with the light switch
ledLight.y = lightSwitch.y; // Align LED light with the light switch
game.addChild(ledLight);
// Add the ceiling light to the game, ensuring it is in front of the wallpaper
var wallpaper = game.addChild(new Wallpaper());
// Add the ceiling light to the game, ensuring it is in front of the wallpaper
ceilingLight = game.addChild(new CeilingLight());
game.setChildIndex(ceilingLight, game.children.length - 1);
// Add the box lid to the game
var boxLid = game.addChild(new BoxLid());
boxLid.visible = false; // Ensure the box lid is initially invisible when the game starts
// Initialize game elements
var cat = game.addChild(new Cat());
cat.visible = true; // Ensure the cat is visible when the game starts
// Add the table to the game
var table = game.addChild(new Table());
// Add the wooden box to the game
var woodenBox = game.addChild(new WoodenBox());
var toggleSwitch = game.addChild(new ToggleSwitch());
toggleSwitch.isTouched = false; // Ensure toggle switch is in close state when the game starts
var lightSwitch = game.addChild(new LightSwitch());
var catPaw = game.addChild(new CatPaw());
catPaw.visible = false; // Ensure the cat's paw is initially invisible when the game starts
game.setChildIndex(catPaw, game.children.length - 1);
// Add the sticky note to the game
var stickyNote = game.addChild(new StickyNote());
// Add the arrow to the game
var arrow = game.addChild(new Arrow());
// Add the dark overlay to the game
darkOverlay = game.addChild(new DarkOverlay());
// Re-add the LED light to ensure it is rendered on top of the dark overlay
game.setChildIndex(ledLight, game.children.length - 1);
// Add 'Close' text to the center of the map
var closeText = new Text2('Close', {
size: 75,
fill: 0x000000
});
closeText.anchor.set(0.5, 0.5); // Center the text
closeText.x = 2048 / 2 + 350; // Move right by 600 units
closeText.y = 2732 / 2 - 500 + 1400 + 50; // Move down by 1450 units
game.addChild(closeText);
// Add 'Open' text to the game
var openText = new Text2('Open', {
size: 75,
fill: 0x000000
});
openText.anchor.set(0.5, 0.5); // Center the text
openText.x = 2048 / 2 + 350; // Move right by 600 units
openText.y = 2732 / 2 + 500; // Move down by 500 units
game.addChild(openText);
// Game update loop
game.update = function () {
// Check if the light switch is touched
if (lightSwitch.isTouched && ceilingLight.visible) {
darkOverlay.toggle(); // Toggle the dark overlay
lightSwitch.isTouched = false; // Reset the switch state
}
ceilingLight.updateSwaying(); // Update swaying effect for ceiling light
ledLight.visible = darkOverlay.visible; // Ensure LED light is only visible when darkOverlay is active
// Move the cat down by 600 units
if (toggleSwitch.isTouched) {
if (!boxLid.visible) {
cat.y = 2732 / 2 + 790; // Ensure the cat's position is set correctly when visible
}
LK.getSound('ts').play(); // Play 'ts' sound when the player reaches the toggleSwitch
toggleSwitch.isTouched = false; // Reset the switch state
}
};
// Handle touch events on the game
game.down = function (x, y, obj) {
// Convert global coordinates to local game coordinates
var localPos = game.toLocal(obj.global);
// Check if the touch is on the light switch
if (lightSwitch.intersects({
x: localPos.x,
y: localPos.y,
width: 1,
height: 1
})) {
lightSwitch.down(x, y, obj);
LK.effects.flashScreen(0xff0000, 1000); // Flash screen red
LK.showGameOver(); // End the game
}
// Check if the touch is on the sticky note
if (stickyNote.intersects({
x: localPos.x,
y: localPos.y,
width: 1,
height: 1
})) {
stickyNote.down(x, y, obj);
}
};
Tricolor cat face view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
simple coffee table front view.
matte white rockerSwitch front view.
fehΓ©r fΓ©nyΕ± mennyezeti lΓ‘mpa.
yellow stickyNote with "Let the cat sleep! Xoxo!" text and a red-stain.
thin, black, up and down arrow.