/**** * Classes ****/ //<Assets used in the game will automatically appear here> // Family member class var FamilyMember = Container.expand(function (name, color) { var self = Container.call(this); self.name = name; self.health = 100; self.hunger = 0; self.thirst = 0; var memberGraphics = self.attachAsset('character', { width: 100, height: 100, color: color, anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Update hunger and thirst over time self.hunger += 0.1; self.thirst += 0.1; // Check if health should decrease if (self.hunger > 100 || self.thirst > 100) { self.health -= 1; } // Check if the family member is dead if (self.health <= 0) { self.destroy(); } }; return self; }); // Resource class var Resource = Container.expand(function (type, color) { var self = Container.call(this); self.type = type; var resourceGraphics = self.attachAsset('resource', { width: 50, height: 50, color: color, anchorX: 0.5, anchorY: 0.5 }); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ // Initialize family members var familyMembers = []; var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00]; // Red, Green, Blue, Yellow var names = ["Dad", "Mom", "Son", "Daughter"]; for (var i = 0; i < 4; i++) { var member = new FamilyMember(names[i], colors[i]); member.x = 200 + i * 150; member.y = 200; familyMembers.push(member); game.addChild(member); } // Initialize resources var resources = []; var resourceTypes = ["food", "water"]; var resourceColors = [0x8B4513, 0x1E90FF]; // Brown for food, Blue for water for (var j = 0; j < 10; j++) { var typeIndex = Math.floor(Math.random() * resourceTypes.length); var resource = new Resource(resourceTypes[typeIndex], resourceColors[typeIndex]); resource.x = Math.random() * 2048; resource.y = Math.random() * 2732; resources.push(resource); game.addChild(resource); } // Event listeners for dragging family members var dragNode = null; game.down = function (x, y, obj) { for (var i = 0; i < familyMembers.length; i++) { if (familyMembers[i].intersects({ x: x, y: y })) { dragNode = familyMembers[i]; break; } } }; game.move = function (x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; } }; game.up = function (x, y, obj) { dragNode = null; }; // Update game state game.update = function () { for (var i = 0; i < familyMembers.length; i++) { familyMembers[i].update(); } // Check for resource collection for (var j = 0; j < resources.length; j++) { for (var k = 0; k < familyMembers.length; k++) { if (resources[j].intersects(familyMembers[k])) { if (resources[j].type === "food") { familyMembers[k].hunger = Math.max(0, familyMembers[k].hunger - 50); } else if (resources[j].type === "water") { familyMembers[k].thirst = Math.max(0, familyMembers[k].thirst - 50); } resources[j].destroy(); resources.splice(j, 1); break; } } } };
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
// Family member class
var FamilyMember = Container.expand(function (name, color) {
var self = Container.call(this);
self.name = name;
self.health = 100;
self.hunger = 0;
self.thirst = 0;
var memberGraphics = self.attachAsset('character', {
width: 100,
height: 100,
color: color,
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Update hunger and thirst over time
self.hunger += 0.1;
self.thirst += 0.1;
// Check if health should decrease
if (self.hunger > 100 || self.thirst > 100) {
self.health -= 1;
}
// Check if the family member is dead
if (self.health <= 0) {
self.destroy();
}
};
return self;
});
// Resource class
var Resource = Container.expand(function (type, color) {
var self = Container.call(this);
self.type = type;
var resourceGraphics = self.attachAsset('resource', {
width: 50,
height: 50,
color: color,
anchorX: 0.5,
anchorY: 0.5
});
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Sky blue background
});
/****
* Game Code
****/
// Initialize family members
var familyMembers = [];
var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00]; // Red, Green, Blue, Yellow
var names = ["Dad", "Mom", "Son", "Daughter"];
for (var i = 0; i < 4; i++) {
var member = new FamilyMember(names[i], colors[i]);
member.x = 200 + i * 150;
member.y = 200;
familyMembers.push(member);
game.addChild(member);
}
// Initialize resources
var resources = [];
var resourceTypes = ["food", "water"];
var resourceColors = [0x8B4513, 0x1E90FF]; // Brown for food, Blue for water
for (var j = 0; j < 10; j++) {
var typeIndex = Math.floor(Math.random() * resourceTypes.length);
var resource = new Resource(resourceTypes[typeIndex], resourceColors[typeIndex]);
resource.x = Math.random() * 2048;
resource.y = Math.random() * 2732;
resources.push(resource);
game.addChild(resource);
}
// Event listeners for dragging family members
var dragNode = null;
game.down = function (x, y, obj) {
for (var i = 0; i < familyMembers.length; i++) {
if (familyMembers[i].intersects({
x: x,
y: y
})) {
dragNode = familyMembers[i];
break;
}
}
};
game.move = function (x, y, obj) {
if (dragNode) {
dragNode.x = x;
dragNode.y = y;
}
};
game.up = function (x, y, obj) {
dragNode = null;
};
// Update game state
game.update = function () {
for (var i = 0; i < familyMembers.length; i++) {
familyMembers[i].update();
}
// Check for resource collection
for (var j = 0; j < resources.length; j++) {
for (var k = 0; k < familyMembers.length; k++) {
if (resources[j].intersects(familyMembers[k])) {
if (resources[j].type === "food") {
familyMembers[k].hunger = Math.max(0, familyMembers[k].hunger - 50);
} else if (resources[j].type === "water") {
familyMembers[k].thirst = Math.max(0, familyMembers[k].thirst - 50);
}
resources[j].destroy();
resources.splice(j, 1);
break;
}
}
}
};