User prompt
delete enemy cant get into house
User prompt
give a bloodmoon
User prompt
make the background is midninght
User prompt
make the start game at the top of the house
User prompt
delete the enemy gone
User prompt
make the player, time, and enemy not move when the player not press start
User prompt
add a menu screen
User prompt
make the start game button
User prompt
make the start game at the bottom of the house
User prompt
delete house moving
User prompt
make the house positon near the top of the screen
User prompt
make the house move from the start game
User prompt
make the menu screen
User prompt
decrease player's speed to 1
User prompt
decrease player's speed
User prompt
make the player delay to move
User prompt
make the enemy increase speed every 10 seconds
User prompt
make the clock is 4 PM
User prompt
make the clock at the screen
User prompt
make the player refill the generator by touching the shed
User prompt
make the gas can appear again after refill the generator
User prompt
make the player can grab gas can
User prompt
make the gas can reappear after refill the generator
User prompt
refill generator by player touching the shed
User prompt
make the player can grab gas can
/**** * Classes ****/ // Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); // Attach head var head = self.attachAsset('enemyHead', { anchorX: 0.5, anchorY: 0.5, y: -70 }); // Attach body var body = self.attachAsset('enemyBody', { anchorX: 0.5, anchorY: 0.5 }); // Attach arms var leftArm = self.attachAsset('enemyArm', { anchorX: 0.5, anchorY: 0.5, x: -45, y: -20 }); var rightArm = self.attachAsset('enemyArm', { anchorX: 0.5, anchorY: 0.5, x: 45, y: -20 }); // Attach legs var leftLeg = self.attachAsset('enemyLeg', { anchorX: 0.5, anchorY: 0.5, x: -20, y: 60 }); var rightLeg = self.attachAsset('enemyLeg', { anchorX: 0.5, anchorY: 0.5, x: 20, y: 60 }); self.tired = false; self.energy = 100; // Initial energy level self.update = function () { // Decrease energy over time self.energy -= 0.1; // Decrease energy over time if (self.energy <= 0) { self.tired = true; // Set tired state when energy is depleted } // Logic to make the enemy disappear after getting tired if (self.tired) { self.destroy(); return; } // Enemy movement logic to chase the player var dx = player.x - self.x; var dy = player.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); var speed = 7; // Speed at which the enemy chases the player if (distance > 0) { var newX = self.x + dx / distance * speed; var newY = self.y + dy / distance * speed; // Check if the new position would intersect with the house if (!self.intersects(house)) { self.x = newX; self.y = newY; } else { // If intersecting, find an alternative path if (Math.abs(dx) > Math.abs(dy)) { // Try moving vertically self.y += (dy > 0 ? 1 : -1) * speed; } else { // Try moving horizontally self.x += (dx > 0 ? 1 : -1) * speed; } } } }; }); // GasCan class var GasCan = Container.expand(function () { var self = Container.call(this); var gasCanGraphic = self.attachAsset('playerBody', { anchorX: 0.5, anchorY: 0.5 }); gasCanGraphic.tint = 0xff0000; // Set color to red }); // Generator class var Generator = Container.expand(function () { var self = Container.call(this); var generatorGraphic = self.attachAsset('playerBody', { anchorX: 0.5, anchorY: 0.5 }); self.isOn = false; // Initial state of the generator self.energy = 100; // Initial energy level of the generator self.toggle = function () { self.isOn = !self.isOn; console.log("Generator is now " + (self.isOn ? "ON" : "OFF")); if (self.isOn && self.energy > 0) { self.energy -= 0.1; // Decrease energy over time console.log("Generator energy: " + self.energy.toFixed(1) + "/100"); if (self.energy <= 0) { self.isOn = false; // Turn off the generator when energy is depleted console.log("Generator is now OFF due to energy depletion"); } } }; self.update = function () { if (self.isOn && self.energy > 0) { self.energy -= 0.1; // Decrease energy over time console.log("Generator energy: " + self.energy.toFixed(1) + "/100"); if (self.energy <= 0) { self.isOn = false; // Turn off the generator when energy is depleted console.log("Generator is now OFF due to energy depletion"); } } }; }); // House class var House = Container.expand(function () { var self = Container.call(this); var houseBase = self.attachAsset('houseBase', { anchorX: 0.5, anchorY: 0.5 }); var houseRoof = self.attachAsset('houseRoof', { anchorX: 0.5, anchorY: 1.0, y: -75 }); // Attach door var houseDoor = self.attachAsset('houseBase', { anchorX: 0.5, anchorY: 0.5, width: 80, height: 150, color: 0x654321, y: 75 }); }); // Joystick class var Joystick = Container.expand(function () { var self = Container.call(this); var joystickButton = self.attachAsset('joystickButton', { anchorX: 0.5, anchorY: 0.5 }); self.active = false; self.startX = 0; self.startY = 0; self.down = function (x, y, obj) { self.active = true; self.startX = x; self.startY = y; }; self.move = function (x, y, obj) { if (self.active) { var dx = x - self.startX; var dy = y - self.startY; player.x += dx; player.y += dy; self.startX = x; self.startY = y; } }; self.up = function (x, y, obj) { self.active = false; }; }); // Joystick controls // The game engine will automatically load the required assets // Player class var Player = Container.expand(function () { var self = Container.call(this); // Attach head var head = self.attachAsset('playerHead', { anchorX: 0.5, anchorY: 0.5, y: -60 }); // Attach body var body = self.attachAsset('playerBody', { anchorX: 0.5, anchorY: 0.5 }); // Attach arms var leftArm = self.attachAsset('playerArm', { anchorX: 0.5, anchorY: 0.5, x: -25, y: -20 }); var rightArm = self.attachAsset('playerArm', { anchorX: 0.5, anchorY: 0.5, x: 25, y: -20 }); // Attach legs var leftLeg = self.attachAsset('playerLeg', { anchorX: 0.5, anchorY: 0.5, x: -10, y: 40 }); var rightLeg = self.attachAsset('playerLeg', { anchorX: 0.5, anchorY: 0.5, x: 10, y: 40 }); self.update = function () { // Player movement logic goes here // Check if player intersects with the shotgun for (var i = 0; i < shotguns.length; i++) { if (self.intersects(shotguns[i])) { // Logic to prevent player from grabbing the shotgun console.log("Player cannot grab the shotgun!"); } } // Check if player intersects with the gas can if (self.intersects(gasCan)) { console.log("Player grabbed the gas can!"); // Logic to refill the generator if (!generator.isOn) { generator.energy = 100; // Refill generator energy console.log("Generator refilled!"); gasCan.destroy(); // Remove the gas can from the game world } } }; }); // Shed class var Shed = Container.expand(function () { var self = Container.call(this); var shedBase = self.attachAsset('houseBase', { anchorX: 0.5, anchorY: 0.5 }); var generator = self.attachAsset('playerBody', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 50 }); }); // Shotgun class var Shotgun = Container.expand(function () { var self = Container.call(this); var shotgunGraphic = self.attachAsset('playerBody', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Rotate the shotgun towards the player var dx = player.x - self.x; var dy = player.y - self.y; self.rotation = Math.atan2(dy, dx); // Fire logic: Check if the player is within a certain range and fire var distanceToPlayer = Math.sqrt(dx * dx + dy * dy); if (distanceToPlayer < 500) { // Example range // Logic to fire at the player console.log("Shotgun fires at the player!"); // Implement firing effect or damage logic here } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Blood texture color // Blood texture color // Blood texture color // Initialize joystick var joystick = game.addChild(new Joystick()); joystick.x = 150; // Position joystick on the screen joystick.y = 2582; // Near the bottom of the screen // Add player to the game var player = game.addChild(new Player()); player.x = 2048 / 2; player.y = 2732 / 2; // Add mouse movement control for player game.move = function (x, y, obj) { player.x = x; player.y = y; }; var enemies = []; var enemy = game.addChild(new Enemy()); enemy.x = Math.random() * 2048; enemy.y = Math.random() * 2732; enemies.push(enemy); // Game update function game.update = function () { // Game logic goes here generator.update(); // Check if player is inside the house if (player.intersects(house)) { // Logic to make the player feel cold // For example, decrease player's health or display a message console.log("Player feels cold inside the house!"); // Implement logic to encourage player to leave the house // This could be a visual effect, sound, or health decrease } // Check for collisions between player and enemies for (var i = 0; i < enemies.length; i++) { if (player.intersects(enemies[i])) { if (shotguns.length === 0) { // Enemy dies if player has grabbed the shotgun enemies[i].destroy(); enemies.splice(i, 1); } else { // Flash screen red for 1 second (1000ms) to show player is killed LK.effects.flashScreen(0xff0000, 1000); // Show game over. The game will be automatically paused while game over is showing. LK.showGameOver(); break; } } } // Reappear enemies after a delay if (enemies.length === 0) { LK.setTimeout(function () { if (enemies.length < 1) { // Ensure only one enemy is added var newEnemy = game.addChild(new Enemy()); newEnemy.x = Math.random() * 2048; newEnemy.y = Math.random() * 2732; enemies.push(newEnemy); } }, 5000); // Reappear after 5 seconds } }; // Add a house to the game var house = game.addChild(new House()); house.x = 2048 / 2; house.y = 2732 / 2; // Add a shed with a generator inside to the game var shed = game.addChild(new Shed()); shed.x = 500; // Position the shed at a specific location shed.y = 2000; // Position the shed at a specific location // Add a generator inside the shed var generator = shed.addChild(new Generator()); generator.x = 0; // Center the generator inside the shed generator.y = 50; // Position the generator inside the shed // Add a gas can near the shed var gasCan = game.addChild(new GasCan()); gasCan.x = shed.x + 300; // Move the gas can further away from the shed gasCan.y = shed.y + 150; // Adjust the y position accordingly // Add a single shotgun near the house var shotguns = []; var shotgun = game.addChild(new Shotgun()); shotgun.x = 200; // Position the shotgun at x position 200 shotgun.y = 1500; // Position the shotgun at a specific y location shotguns.push(shotgun); // Set an interval for the shotgun to check for firing LK.setInterval(function () { shotgun.update(); }, 1000); // Check every second // Keyboard controls for WASD movement are not supported in this environment
/****
* Classes
****/
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
// Attach head
var head = self.attachAsset('enemyHead', {
anchorX: 0.5,
anchorY: 0.5,
y: -70
});
// Attach body
var body = self.attachAsset('enemyBody', {
anchorX: 0.5,
anchorY: 0.5
});
// Attach arms
var leftArm = self.attachAsset('enemyArm', {
anchorX: 0.5,
anchorY: 0.5,
x: -45,
y: -20
});
var rightArm = self.attachAsset('enemyArm', {
anchorX: 0.5,
anchorY: 0.5,
x: 45,
y: -20
});
// Attach legs
var leftLeg = self.attachAsset('enemyLeg', {
anchorX: 0.5,
anchorY: 0.5,
x: -20,
y: 60
});
var rightLeg = self.attachAsset('enemyLeg', {
anchorX: 0.5,
anchorY: 0.5,
x: 20,
y: 60
});
self.tired = false;
self.energy = 100; // Initial energy level
self.update = function () {
// Decrease energy over time
self.energy -= 0.1; // Decrease energy over time
if (self.energy <= 0) {
self.tired = true; // Set tired state when energy is depleted
}
// Logic to make the enemy disappear after getting tired
if (self.tired) {
self.destroy();
return;
}
// Enemy movement logic to chase the player
var dx = player.x - self.x;
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
var speed = 7; // Speed at which the enemy chases the player
if (distance > 0) {
var newX = self.x + dx / distance * speed;
var newY = self.y + dy / distance * speed;
// Check if the new position would intersect with the house
if (!self.intersects(house)) {
self.x = newX;
self.y = newY;
} else {
// If intersecting, find an alternative path
if (Math.abs(dx) > Math.abs(dy)) {
// Try moving vertically
self.y += (dy > 0 ? 1 : -1) * speed;
} else {
// Try moving horizontally
self.x += (dx > 0 ? 1 : -1) * speed;
}
}
}
};
});
// GasCan class
var GasCan = Container.expand(function () {
var self = Container.call(this);
var gasCanGraphic = self.attachAsset('playerBody', {
anchorX: 0.5,
anchorY: 0.5
});
gasCanGraphic.tint = 0xff0000; // Set color to red
});
// Generator class
var Generator = Container.expand(function () {
var self = Container.call(this);
var generatorGraphic = self.attachAsset('playerBody', {
anchorX: 0.5,
anchorY: 0.5
});
self.isOn = false; // Initial state of the generator
self.energy = 100; // Initial energy level of the generator
self.toggle = function () {
self.isOn = !self.isOn;
console.log("Generator is now " + (self.isOn ? "ON" : "OFF"));
if (self.isOn && self.energy > 0) {
self.energy -= 0.1; // Decrease energy over time
console.log("Generator energy: " + self.energy.toFixed(1) + "/100");
if (self.energy <= 0) {
self.isOn = false; // Turn off the generator when energy is depleted
console.log("Generator is now OFF due to energy depletion");
}
}
};
self.update = function () {
if (self.isOn && self.energy > 0) {
self.energy -= 0.1; // Decrease energy over time
console.log("Generator energy: " + self.energy.toFixed(1) + "/100");
if (self.energy <= 0) {
self.isOn = false; // Turn off the generator when energy is depleted
console.log("Generator is now OFF due to energy depletion");
}
}
};
});
// House class
var House = Container.expand(function () {
var self = Container.call(this);
var houseBase = self.attachAsset('houseBase', {
anchorX: 0.5,
anchorY: 0.5
});
var houseRoof = self.attachAsset('houseRoof', {
anchorX: 0.5,
anchorY: 1.0,
y: -75
});
// Attach door
var houseDoor = self.attachAsset('houseBase', {
anchorX: 0.5,
anchorY: 0.5,
width: 80,
height: 150,
color: 0x654321,
y: 75
});
});
// Joystick class
var Joystick = Container.expand(function () {
var self = Container.call(this);
var joystickButton = self.attachAsset('joystickButton', {
anchorX: 0.5,
anchorY: 0.5
});
self.active = false;
self.startX = 0;
self.startY = 0;
self.down = function (x, y, obj) {
self.active = true;
self.startX = x;
self.startY = y;
};
self.move = function (x, y, obj) {
if (self.active) {
var dx = x - self.startX;
var dy = y - self.startY;
player.x += dx;
player.y += dy;
self.startX = x;
self.startY = y;
}
};
self.up = function (x, y, obj) {
self.active = false;
};
});
// Joystick controls
// The game engine will automatically load the required assets
// Player class
var Player = Container.expand(function () {
var self = Container.call(this);
// Attach head
var head = self.attachAsset('playerHead', {
anchorX: 0.5,
anchorY: 0.5,
y: -60
});
// Attach body
var body = self.attachAsset('playerBody', {
anchorX: 0.5,
anchorY: 0.5
});
// Attach arms
var leftArm = self.attachAsset('playerArm', {
anchorX: 0.5,
anchorY: 0.5,
x: -25,
y: -20
});
var rightArm = self.attachAsset('playerArm', {
anchorX: 0.5,
anchorY: 0.5,
x: 25,
y: -20
});
// Attach legs
var leftLeg = self.attachAsset('playerLeg', {
anchorX: 0.5,
anchorY: 0.5,
x: -10,
y: 40
});
var rightLeg = self.attachAsset('playerLeg', {
anchorX: 0.5,
anchorY: 0.5,
x: 10,
y: 40
});
self.update = function () {
// Player movement logic goes here
// Check if player intersects with the shotgun
for (var i = 0; i < shotguns.length; i++) {
if (self.intersects(shotguns[i])) {
// Logic to prevent player from grabbing the shotgun
console.log("Player cannot grab the shotgun!");
}
}
// Check if player intersects with the gas can
if (self.intersects(gasCan)) {
console.log("Player grabbed the gas can!");
// Logic to refill the generator
if (!generator.isOn) {
generator.energy = 100; // Refill generator energy
console.log("Generator refilled!");
gasCan.destroy(); // Remove the gas can from the game world
}
}
};
});
// Shed class
var Shed = Container.expand(function () {
var self = Container.call(this);
var shedBase = self.attachAsset('houseBase', {
anchorX: 0.5,
anchorY: 0.5
});
var generator = self.attachAsset('playerBody', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 50
});
});
// Shotgun class
var Shotgun = Container.expand(function () {
var self = Container.call(this);
var shotgunGraphic = self.attachAsset('playerBody', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Rotate the shotgun towards the player
var dx = player.x - self.x;
var dy = player.y - self.y;
self.rotation = Math.atan2(dy, dx);
// Fire logic: Check if the player is within a certain range and fire
var distanceToPlayer = Math.sqrt(dx * dx + dy * dy);
if (distanceToPlayer < 500) {
// Example range
// Logic to fire at the player
console.log("Shotgun fires at the player!");
// Implement firing effect or damage logic here
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Blood texture color
// Blood texture color
// Blood texture color
// Initialize joystick
var joystick = game.addChild(new Joystick());
joystick.x = 150; // Position joystick on the screen
joystick.y = 2582; // Near the bottom of the screen
// Add player to the game
var player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 / 2;
// Add mouse movement control for player
game.move = function (x, y, obj) {
player.x = x;
player.y = y;
};
var enemies = [];
var enemy = game.addChild(new Enemy());
enemy.x = Math.random() * 2048;
enemy.y = Math.random() * 2732;
enemies.push(enemy);
// Game update function
game.update = function () {
// Game logic goes here
generator.update();
// Check if player is inside the house
if (player.intersects(house)) {
// Logic to make the player feel cold
// For example, decrease player's health or display a message
console.log("Player feels cold inside the house!");
// Implement logic to encourage player to leave the house
// This could be a visual effect, sound, or health decrease
}
// Check for collisions between player and enemies
for (var i = 0; i < enemies.length; i++) {
if (player.intersects(enemies[i])) {
if (shotguns.length === 0) {
// Enemy dies if player has grabbed the shotgun
enemies[i].destroy();
enemies.splice(i, 1);
} else {
// Flash screen red for 1 second (1000ms) to show player is killed
LK.effects.flashScreen(0xff0000, 1000);
// Show game over. The game will be automatically paused while game over is showing.
LK.showGameOver();
break;
}
}
}
// Reappear enemies after a delay
if (enemies.length === 0) {
LK.setTimeout(function () {
if (enemies.length < 1) {
// Ensure only one enemy is added
var newEnemy = game.addChild(new Enemy());
newEnemy.x = Math.random() * 2048;
newEnemy.y = Math.random() * 2732;
enemies.push(newEnemy);
}
}, 5000); // Reappear after 5 seconds
}
};
// Add a house to the game
var house = game.addChild(new House());
house.x = 2048 / 2;
house.y = 2732 / 2;
// Add a shed with a generator inside to the game
var shed = game.addChild(new Shed());
shed.x = 500; // Position the shed at a specific location
shed.y = 2000; // Position the shed at a specific location
// Add a generator inside the shed
var generator = shed.addChild(new Generator());
generator.x = 0; // Center the generator inside the shed
generator.y = 50; // Position the generator inside the shed
// Add a gas can near the shed
var gasCan = game.addChild(new GasCan());
gasCan.x = shed.x + 300; // Move the gas can further away from the shed
gasCan.y = shed.y + 150; // Adjust the y position accordingly
// Add a single shotgun near the house
var shotguns = [];
var shotgun = game.addChild(new Shotgun());
shotgun.x = 200; // Position the shotgun at x position 200
shotgun.y = 1500; // Position the shotgun at a specific y location
shotguns.push(shotgun);
// Set an interval for the shotgun to check for firing
LK.setInterval(function () {
shotgun.update();
}, 1000); // Check every second
// Keyboard controls for WASD movement are not supported in this environment