/****
* 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;
}
}
}
};