Code edit (1 edits merged)
Please save this source code
User prompt
move gauge bar even closer to custoemr
User prompt
move gauge bar closer to customer
User prompt
make gauge bar colors softer
User prompt
change gauge bar tint depending on its size%.
User prompt
gauge bar should be decreaseing its witdh constantly
Code edit (1 edits merged)
Please save this source code
User prompt
make gauge bar a little thicker
User prompt
add a gauge bar under each customer
User prompt
move score to the right corner
User prompt
customers shoudl not be created close to each other
User prompt
when a level is complete delete previous customers
User prompt
add a level structure to the game. when all orders are fulfilled start next level
Code edit (3 edits merged)
Please save this source code
User prompt
customer also cant be cretaed on the top 10% of the screen
Code edit (1 edits merged)
Please save this source code
User prompt
customer cant be created in the bottom 105 of the screen
User prompt
custoemrs should have 300 pixels spacign between each other
User prompt
customers should not be positioned int he top 10% or bottom 10% of the screen
User prompt
add more space between each inventroy item
User prompt
add 100 more pixels between invetory items
User prompt
double the size of inventory items
User prompt
double size of items on the bottom of the screen and add 100 pixels between each item
User prompt
items should start dimmed
User prompt
dim items when unselected and undime when selected
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
// Customer class
var Customer = Container.expand(function () {
var self = Container.call(this);
var customerGraphics = self.attachAsset('customer', {
anchorX: 0.5,
anchorY: 0.5
});
self.orderBubble = null;
self.gaugeBar = null;
self.setOrder = function (order) {
if (self.orderBubble) {
self.removeChild(self.orderBubble);
}
self.order = Array.isArray(order) ? order : [order];
self.orderBubble = new OrderBubble(self.order);
self.orderBubble.x = 0;
self.orderBubble.y = -self.height / 2 - self.orderBubble.height / 2;
if (!self.orderBubble.visible) {
self.orderBubble.visible = false; // Hide order bubble on game start
}
self.addChild(self.orderBubble);
self.update = function () {
if (self.gaugeBar.width > 0) {
self.gaugeBar.width -= 0.1;
// Change gauge bar tint depending on its size
if (self.gaugeBar.width > 70) {
self.gaugeBar.tint = 0x90EE90; // Light Green
} else if (self.gaugeBar.width > 30) {
self.gaugeBar.tint = 0xFFFFE0; // Light Yellow
} else {
self.gaugeBar.tint = 0xFFB6C1; // Light Red
}
} else {
// Handle what happens when the gauge bar is empty
}
};
self.gaugeBar = LK.getAsset('gaugeBar', {
anchorX: 0.5,
anchorY: 0.5,
width: self.width,
height: 40
});
self.gaugeBar.x = 0;
self.gaugeBar.y = self.height / 2 + 5;
self.addChild(self.gaugeBar);
};
self.getOrder = function () {
return self.order;
};
self.on('down', function (x, y, obj) {
if (self.orderBubble && !self.orderBubble.visible) {
self.orderBubble.visible = true;
}
if (selectedItem && self.order.includes(selectedItem.getType())) {
// Dim the item in the order bubble
if (self.orderBubble.orderAsset1 && self.orderBubble.orderAsset1.type === selectedItem.getType()) {
self.orderBubble.orderAsset1.alpha = 0.5;
}
if (self.orderBubble.orderAsset2 && self.orderBubble.orderAsset2.type === selectedItem.getType()) {
self.orderBubble.orderAsset2.alpha = 0.5;
}
// Check if the order is fulfilled
checkOrderFulfillment(self);
}
});
});
// Item class
var Item = Container.expand(function (type) {
var self = Container.call(this);
var itemGraphics = self.attachAsset(type, {
anchorX: 0.5,
anchorY: 0.5
});
self.type = type;
self.getType = function () {
return self.type;
};
self.alpha = 0.5; // Start items as dimmed
self.on('down', function (x, y, obj) {
if (selectedItem) {
selectedItem.scaleX = 1;
selectedItem.scaleY = 1;
selectedItem.alpha = 0.5; // Dim the previously selected item
}
selectedItem = self;
console.log("Item selected:", self.type);
self.scaleX = 1.2;
self.scaleY = 1.2;
self.alpha = 1; // Undim the selected item
});
});
// OrderBubble class
var OrderBubble = Container.expand(function (order) {
var self = Container.call(this);
var bubbleGraphics = self.attachAsset('bubble', {
anchorX: 0.5,
anchorY: 0.5
});
self.order = order;
if (Array.isArray(order)) {
if (order.length > 0) {
self.orderAsset1 = self.attachAsset(order[0], {
anchorX: 0.5,
anchorY: 0.5
});
self.orderAsset1.type = order[0];
self.orderAsset1.x = -60;
}
if (order.length > 1) {
self.orderAsset2 = self.attachAsset(order[1], {
anchorX: 0.5,
anchorY: 0.5
});
self.orderAsset2.type = order[1];
self.orderAsset2.x = 60;
}
} else {
self.orderAsset = self.attachAsset(order, {
anchorX: 0.5,
anchorY: 0.5
});
}
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Init game with sky blue background
});
/****
* Game Code
****/
// Initialize arrays and variables
var selectedItem = null; // Variable to track the currently selected item
var customers = [];
var items = [];
var inventory = []; // Inventory array to hold all items from the bar
var score = 0;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Function to check if all items of an order are delivered
function checkOrderFulfillment(customer) {
// Check if all items are dimmed
var allDimmed = true;
if (customer.orderBubble.orderAsset1 && customer.orderBubble.orderAsset1.alpha === 1) {
allDimmed = false;
}
if (customer.orderBubble.orderAsset2 && customer.orderBubble.orderAsset2.alpha === 1) {
allDimmed = false;
}
if (allDimmed) {
// Increase score
score += 10;
scoreTxt.setText(score);
}
}
// Function to create a new customer
function createCustomer() {
var customer = new Customer();
var safeDistance = 200; // Minimum distance between customers
var validPosition = false;
while (!validPosition) {
customer.x = Math.random() * 2048;
customer.y = Math.random() * (2200 - 300) + 373.2;
validPosition = true;
for (var i = 0; i < customers.length; i++) {
var distance = Math.sqrt(Math.pow(customers[i].x - customer.x, 2) + Math.pow(customers[i].y - customer.y, 2));
if (distance < safeDistance) {
validPosition = false;
break;
}
}
}
var order = ['towel', 'umbrella', 'refreshment', 'snack'].sort(function () {
return 0.5 - Math.random();
}).slice(0, Math.floor(Math.random() * 2) + 1);
customer.setOrder(order);
customers.push(customer);
game.addChild(customer);
}
// Function to create a new item
function createItem(type, x, y) {
var item = new Item(type);
item.x = x;
item.y = y;
item.width = 200;
item.height = 200;
items.push(item);
inventory.push(item); // Add item to inventory array
item.visible = true; // Show item on game start
game.addChild(item);
}
// Create initial customers
for (var i = 0; i < 5; i++) {
createCustomer();
}
// Update function
game.update = function () {
if (LK.ticks % 300 == 0 && customers.length < 5) {
createCustomer();
}
};
// Create initial items
createItem('towel', 2048 / 2 - 500, 2732 - 200);
createItem('umbrella', 2048 / 2 - 250, 2732 - 200);
createItem('refreshment', 2048 / 2, 2732 - 200);
createItem('snack', 2048 / 2 + 250, 2732 - 200); ===================================================================
--- original.js
+++ change.js
@@ -44,9 +44,9 @@
width: self.width,
height: 40
});
self.gaugeBar.x = 0;
- self.gaugeBar.y = self.height / 2 + 10;
+ self.gaugeBar.y = self.height / 2 + 5;
self.addChild(self.gaugeBar);
};
self.getOrder = function () {
return self.order;
8bit. cartoon. icecream. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon and 8 bit message. reads: Time's Up!. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
8bit. cartoon. palm tree.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.