User prompt
remove drag item fucntion
User prompt
items should be dragged on tick
User prompt
orderbubble should not be visible until player touches on customer for the first time
User prompt
add a visible yes no property to the bubble off the customer
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'var item = obj.event.target;' Line Number: 116
User prompt
create an array that will store the currently selected item.
User prompt
when items is held down it can be dragged
User prompt
items should be dragablle
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'if (items[i].intersects(obj.event.target)) {' Line Number: 154
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'if (items[i].intersects(obj.event.target)) {' Line Number: 154
Code edit (1 edits merged)
Please save this source code
User prompt
add more space between items
User prompt
move items to the bottom center of the screen
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'if (items[i].intersects(obj.event.target)) {' Line Number: 154
User prompt
stop spawning customer after 5 are inthe screen
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in or related to this line: 'self.orderAsset2 = self.attachAsset(order[1], {' Line Number: 59
User prompt
if customer has more than 1 item in the order, they should be in the same bubble, not have 2 bubbles
User prompt
customer can have one or two items ins their order
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'if (items[i].intersects(obj.event.target)) {' Line Number: 124
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'if (items[i].intersects(obj.event.target)) {' Line Number: 124
User prompt
order bubble should be attached visually to customer
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'target')' in or related to this line: 'if (items[i].intersects(obj.event.target)) {' Line Number: 124
User prompt
order should be displayed inside of a bubble next to the customer
User prompt
show asset of order instead of text
User prompt
when customer is clicked show his order next to hime
/**** * 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.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; self.addChild(self.orderBubble); }; self.getOrder = function () { return self.order; }; }); // 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; }; }); // 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)) { self.orderAsset1 = self.attachAsset(order[0], { anchorX: 0.5, anchorY: 0.5 }); self.orderAsset1.x = -50; self.orderAsset2 = self.attachAsset(order[1], { anchorX: 0.5, anchorY: 0.5 }); self.orderAsset2.x = 50; } 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 customers = []; var items = []; 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 create a new customer function createCustomer() { var customer = new Customer(); customer.x = Math.random() * 2048; customer.y = Math.random() * 2732; 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; items.push(item); game.addChild(item); } // Function to handle item drop function handleItemDrop(x, y, obj) { var item = obj.event.target; var itemType = item.getType(); for (var i = 0; i < customers.length; i++) { var customer = customers[i]; if (customer.intersects(item)) { if (customer.getOrder().includes(itemType)) { score += 10; LK.setScore(score); scoreTxt.setText(score); item.destroy(); items.splice(items.indexOf(item), 1); var orderIndex = customer.getOrder().indexOf(itemType); customer.getOrder().splice(orderIndex, 1); if (orderIndex === 0) { customer.removeChild(customer.orderBubble); customer.orderBubble = customer.orderBubble2; customer.orderBubble2 = null; } else { customer.removeChild(customer.orderBubble2); customer.orderBubble2 = null; } if (customer.getOrder().length === 0) { customer.destroy(); customers.splice(i, 1); } break; } } } } // Create initial customers for (var i = 0; i < 5; i++) { createCustomer(); } // Event listeners for item drag and drop var dragItem = null; game.down = function (x, y, obj) { for (var i = 0; i < items.length; i++) { if (items[i].intersects(obj.event.target)) { dragItem = items[i]; break; } } }; game.move = function (x, y, obj) { if (dragItem) { dragItem.x = x; dragItem.y = y; if (dragItem instanceof Customer) { dragItem.orderBubble.x = x; dragItem.orderBubble.y = y - 50; } } }; game.up = function (x, y, obj) { if (dragItem) { handleItemDrop(x, y, obj); dragItem = null; } }; // Update function game.update = function () { if (LK.ticks % 300 == 0) { createCustomer(); } }; // Create initial items createItem('towel', 100, 100); createItem('umbrella', 200, 100); createItem('refreshment', 300, 100); createItem('snack', 400, 100);
===================================================================
--- original.js
+++ change.js
@@ -14,15 +14,9 @@
if (self.orderBubble) {
self.removeChild(self.orderBubble);
}
self.order = Array.isArray(order) ? order : [order];
- self.orderBubble = new OrderBubble(self.order[0]);
- if (self.order[1]) {
- self.orderBubble2 = new OrderBubble(self.order[1]);
- self.orderBubble2.x = 50;
- self.orderBubble2.y = -self.height / 2 - self.orderBubble2.height / 2;
- self.addChild(self.orderBubble2);
- }
+ self.orderBubble = new OrderBubble(self.order);
self.orderBubble.x = 0;
self.orderBubble.y = -self.height / 2 - self.orderBubble.height / 2;
self.addChild(self.orderBubble);
};
@@ -49,12 +43,25 @@
anchorX: 0.5,
anchorY: 0.5
});
self.order = order;
- self.orderAsset = self.attachAsset(order, {
- anchorX: 0.5,
- anchorY: 0.5
- });
+ if (Array.isArray(order)) {
+ self.orderAsset1 = self.attachAsset(order[0], {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.orderAsset1.x = -50;
+ self.orderAsset2 = self.attachAsset(order[1], {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.orderAsset2.x = 50;
+ } else {
+ self.orderAsset = self.attachAsset(order, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ }
});
/****
* Initialize Game
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.