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