Code edit (1 edits merged)
Please save this source code
User prompt
Tidy Up Time
Initial prompt
Toca tidy up (2004). The powerpuff girls’s bedroom is full of 6 toys. Use your finger to drag and drop the toy frog, or the toy Violet cat, or the monkey toy, or a toy dinosaur, or a plate of jelly, or a maraca into the toy basket. Tap the red toy basket jump to make 6 toys go all over the floor again.
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Toy = Container.expand(function (toyType, startX, startY) { var self = Container.call(this); self.toyType = toyType; self.isCollected = false; self.startX = startX; self.startY = startY; var toyGraphics = self.attachAsset(toyType, { anchorX: 0.5, anchorY: 0.5 }); self.x = startX; self.y = startY; self.down = function (x, y, obj) { if (!self.isCollected) { dragToy = self; self.alpha = 0.8; tween(self, { scaleX: 1.1, scaleY: 1.1 }, { duration: 100 }); } }; self.collectToy = function () { self.isCollected = true; self.alpha = 0; toysCollected++; LK.getSound('collect').play(); tween(self, { scaleX: 1.5, scaleY: 1.5 }, { duration: 200 }); if (toysCollected >= 6) { allToysCollected = true; } }; self.resetToy = function (newX, newY) { self.isCollected = false; self.alpha = 1; self.scaleX = 1; self.scaleY = 1; self.x = newX; self.y = newY; self.startX = newX; self.startY = newY; }; return self; }); var ToyBasket = Container.expand(function () { var self = Container.call(this); var basketGraphics = self.attachAsset('toyBasket', { anchorX: 0.5, anchorY: 0.5 }); self.x = 1024; self.y = 1800; self.down = function (x, y, obj) { if (allToysCollected) { self.scatterToys(); } }; self.scatterToys = function () { LK.getSound('scatter').play(); tween(self, { scaleX: 1.2, scaleY: 0.8 }, { duration: 150, onFinish: function onFinish() { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 150 }); } }); for (var i = 0; i < toys.length; i++) { var toy = toys[i]; var newX = 200 + Math.random() * 1600; var newY = 800 + Math.random() * 800; toy.resetToy(newX, newY); } toysCollected = 0; allToysCollected = false; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xffffff }); /**** * Game Code ****/ game.setBackgroundColor(0xffe6f2); var toys = []; var toyBasket; var dragToy = null; var toysCollected = 0; var allToysCollected = false; var toyTypes = ['frog', 'cat', 'monkey', 'dinosaur', 'jelly', 'maraca']; var toyPositions = [{ x: 300, y: 1000 }, { x: 800, y: 1200 }, { x: 1500, y: 900 }, { x: 400, y: 1600 }, { x: 1200, y: 1400 }, { x: 1700, y: 1100 }]; for (var i = 0; i < toyTypes.length; i++) { var toy = new Toy(toyTypes[i], toyPositions[i].x, toyPositions[i].y); toys.push(toy); game.addChild(toy); } toyBasket = new ToyBasket(); game.addChild(toyBasket); var titleText = new Text2('Tidy Up Time!', { size: 80, fill: 0xFF3366 }); titleText.anchor.set(0.5, 0); LK.gui.top.addChild(titleText); titleText.y = 100; var instructionText = new Text2('Drag toys to the red basket!', { size: 50, fill: 0x666666 }); instructionText.anchor.set(0.5, 0); LK.gui.top.addChild(instructionText); instructionText.y = 200; var completedText = new Text2('Tap the basket to scatter toys!', { size: 60, fill: 0x44AA44 }); completedText.anchor.set(0.5, 1); completedText.alpha = 0; LK.gui.bottom.addChild(completedText); completedText.y = -100; function handleMove(x, y, obj) { if (dragToy) { dragToy.x = x; dragToy.y = y; } } game.move = handleMove; game.up = function (x, y, obj) { if (dragToy) { var distance = Math.sqrt(Math.pow(dragToy.x - toyBasket.x, 2) + Math.pow(dragToy.y - toyBasket.y, 2)); if (distance < 200) { dragToy.collectToy(); } else { tween(dragToy, { x: dragToy.startX, y: dragToy.startY }, { duration: 300 }); } tween(dragToy, { scaleX: 1, scaleY: 1 }, { duration: 200 }); dragToy.alpha = 1; dragToy = null; } }; game.update = function () { if (allToysCollected) { if (completedText.alpha < 1) { completedText.alpha += 0.02; } instructionText.alpha = Math.max(0, instructionText.alpha - 0.02); } else { if (completedText.alpha > 0) { completedText.alpha -= 0.02; } if (instructionText.alpha < 1) { instructionText.alpha += 0.02; } } };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Toy = Container.expand(function (toyType, startX, startY) {
var self = Container.call(this);
self.toyType = toyType;
self.isCollected = false;
self.startX = startX;
self.startY = startY;
var toyGraphics = self.attachAsset(toyType, {
anchorX: 0.5,
anchorY: 0.5
});
self.x = startX;
self.y = startY;
self.down = function (x, y, obj) {
if (!self.isCollected) {
dragToy = self;
self.alpha = 0.8;
tween(self, {
scaleX: 1.1,
scaleY: 1.1
}, {
duration: 100
});
}
};
self.collectToy = function () {
self.isCollected = true;
self.alpha = 0;
toysCollected++;
LK.getSound('collect').play();
tween(self, {
scaleX: 1.5,
scaleY: 1.5
}, {
duration: 200
});
if (toysCollected >= 6) {
allToysCollected = true;
}
};
self.resetToy = function (newX, newY) {
self.isCollected = false;
self.alpha = 1;
self.scaleX = 1;
self.scaleY = 1;
self.x = newX;
self.y = newY;
self.startX = newX;
self.startY = newY;
};
return self;
});
var ToyBasket = Container.expand(function () {
var self = Container.call(this);
var basketGraphics = self.attachAsset('toyBasket', {
anchorX: 0.5,
anchorY: 0.5
});
self.x = 1024;
self.y = 1800;
self.down = function (x, y, obj) {
if (allToysCollected) {
self.scatterToys();
}
};
self.scatterToys = function () {
LK.getSound('scatter').play();
tween(self, {
scaleX: 1.2,
scaleY: 0.8
}, {
duration: 150,
onFinish: function onFinish() {
tween(self, {
scaleX: 1,
scaleY: 1
}, {
duration: 150
});
}
});
for (var i = 0; i < toys.length; i++) {
var toy = toys[i];
var newX = 200 + Math.random() * 1600;
var newY = 800 + Math.random() * 800;
toy.resetToy(newX, newY);
}
toysCollected = 0;
allToysCollected = false;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xffffff
});
/****
* Game Code
****/
game.setBackgroundColor(0xffe6f2);
var toys = [];
var toyBasket;
var dragToy = null;
var toysCollected = 0;
var allToysCollected = false;
var toyTypes = ['frog', 'cat', 'monkey', 'dinosaur', 'jelly', 'maraca'];
var toyPositions = [{
x: 300,
y: 1000
}, {
x: 800,
y: 1200
}, {
x: 1500,
y: 900
}, {
x: 400,
y: 1600
}, {
x: 1200,
y: 1400
}, {
x: 1700,
y: 1100
}];
for (var i = 0; i < toyTypes.length; i++) {
var toy = new Toy(toyTypes[i], toyPositions[i].x, toyPositions[i].y);
toys.push(toy);
game.addChild(toy);
}
toyBasket = new ToyBasket();
game.addChild(toyBasket);
var titleText = new Text2('Tidy Up Time!', {
size: 80,
fill: 0xFF3366
});
titleText.anchor.set(0.5, 0);
LK.gui.top.addChild(titleText);
titleText.y = 100;
var instructionText = new Text2('Drag toys to the red basket!', {
size: 50,
fill: 0x666666
});
instructionText.anchor.set(0.5, 0);
LK.gui.top.addChild(instructionText);
instructionText.y = 200;
var completedText = new Text2('Tap the basket to scatter toys!', {
size: 60,
fill: 0x44AA44
});
completedText.anchor.set(0.5, 1);
completedText.alpha = 0;
LK.gui.bottom.addChild(completedText);
completedText.y = -100;
function handleMove(x, y, obj) {
if (dragToy) {
dragToy.x = x;
dragToy.y = y;
}
}
game.move = handleMove;
game.up = function (x, y, obj) {
if (dragToy) {
var distance = Math.sqrt(Math.pow(dragToy.x - toyBasket.x, 2) + Math.pow(dragToy.y - toyBasket.y, 2));
if (distance < 200) {
dragToy.collectToy();
} else {
tween(dragToy, {
x: dragToy.startX,
y: dragToy.startY
}, {
duration: 300
});
}
tween(dragToy, {
scaleX: 1,
scaleY: 1
}, {
duration: 200
});
dragToy.alpha = 1;
dragToy = null;
}
};
game.update = function () {
if (allToysCollected) {
if (completedText.alpha < 1) {
completedText.alpha += 0.02;
}
instructionText.alpha = Math.max(0, instructionText.alpha - 0.02);
} else {
if (completedText.alpha > 0) {
completedText.alpha -= 0.02;
}
if (instructionText.alpha < 1) {
instructionText.alpha += 0.02;
}
}
};