/****
* Classes
****/
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Mole class representing each mole that appears on the screen
var Mole = Container.expand(function () {
var self = Container.call(this);
// Attach a mole asset
var moleGraphics = self.attachAsset('mole', {
anchorX: 0.5,
anchorY: 0.5
});
// Mole's initial state
self.isVisible = false;
// Method to show the mole
self.show = function () {
self.isVisible = true;
moleGraphics.alpha = 1;
};
// Method to hide the mole
self.hide = function () {
self.isVisible = false;
moleGraphics.alpha = 0;
};
// Method to handle tap on the mole
self.tap = function () {
if (self.isVisible) {
self.hide();
}
};
// Initialize mole as hidden
self.hide();
});
// Points class representing each point that appears on the screen
var Point = Container.expand(function () {
var self = Container.call(this);
// Attach a point asset
var pointGraphics = self.attachAsset('point', {
anchorX: 0.5,
anchorY: 0.5
});
// Point's initial state
self.isVisible = false;
// Method to show the point
self.show = function () {
self.isVisible = true;
pointGraphics.alpha = 1;
};
// Method to hide the point
self.hide = function () {
self.isVisible = false;
pointGraphics.alpha = 0;
};
// Method to handle tap on the point
self.tap = function () {
if (self.isVisible) {
self.hide();
if (LK.getScore() === 0) {
LK.setScore(10);
} else {
LK.setScore(LK.getScore() + 10);
}
}
};
// Initialize point as hidden
self.hide();
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Add a large background image to the game
var background = LK.getAsset('backgroundImage', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 40,
// Scale the background to be larger
scaleY: 40,
// Scale the background to be larger
x: 1024,
// Center of the screen
y: 1366 // Center of the screen
});
game.addChild(background);
// Array to hold all moles
var moles = [];
// Function to randomly show moles
function showRandomMole() {
if (moles.length > 0) {
var randomIndex = Math.floor(Math.random() * moles.length);
moles[randomIndex].show();
}
}
// Array to hold all moles
var moles = [];
// Create moles and add them to the game
for (var i = 0; i < 9; i++) {
var mole = new Mole();
mole.x = i % 3 * 300 + 500; // Position moles in a grid
mole.y = Math.floor(i / 3) * 300 + 800;
moles.push(mole);
game.addChild(mole);
}
// Array to hold all points
var points = [];
// Create points and add them to the game
for (var i = 0; i < 9; i++) {
var point = new Point();
point.x = i % 3 * 300 + 500; // Position points in a grid
point.y = Math.floor(i / 3) * 300 + 800;
points.push(point);
game.addChild(point);
}
// Set interval to show moles at random
var moleInterval = LK.setInterval(function () {
// Hide all moles first
moles.forEach(function (mole) {
mole.hide();
});
// Show a random mole
showRandomMole();
}, 1000);
// Handle tap events on the game
game.down = function (x, y, obj) {
var localPos = game.toLocal(obj.global);
points.forEach(function (point) {
if (point.isVisible && point.intersects(localPos)) {
point.tap();
}
});
moles.forEach(function (mole) {
if (mole.isVisible && mole.intersects(localPos)) {
mole.tap();
}
});
};
// Update function to handle game logic
game.update = function () {
// Check for win condition
if (LK.getScore() >= 20) {
LK.showYouWin();
}
};