Code edit (1 edits merged)
Please save this source code
User prompt
Powerpuff Girls Dress-Up Adventure
Initial prompt
Toca dressing up (2001). The powerpuff girls had a dressing up box. Tap on level 1 police officer, level 2 doctor, level 3 detective, level 4 gunner, or level 5 glasses to get started. Tap on the clothes onto blossom, or bubbles, or buttercup.
/****
* Classes
****/
var CharacterButton = Container.expand(function (characterType, characterName) {
var self = Container.call(this);
self.characterType = characterType;
self.characterName = characterName;
var buttonBg = self.attachAsset('characterButton', {
anchorX: 0.5,
anchorY: 0.5
});
var characterPreview = self.attachAsset(characterType, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.3,
scaleY: 0.3
});
var nameText = new Text2(characterName, {
size: 30,
fill: 0xFFFFFF
});
nameText.anchor.set(0.5, 0.5);
nameText.y = 80;
self.addChild(nameText);
self.down = function (x, y, obj) {
LK.getSound('select').play();
selectedCharacter = self.characterType;
gameState = 'dressUp';
showDressUpScreen();
};
return self;
});
var ClothingItem = Container.expand(function (itemType, itemName) {
var self = Container.call(this);
self.itemType = itemType;
self.itemName = itemName;
self.originalX = 0;
self.originalY = 0;
var itemBg = self.attachAsset('clothingSlot', {
anchorX: 0.5,
anchorY: 0.5
});
var itemGraphic = self.attachAsset(itemType, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.4,
scaleY: 0.4
});
self.down = function (x, y, obj) {
if (gameState === 'dressUp') {
draggedItem = self;
self.originalX = self.x;
self.originalY = self.y;
}
};
return self;
});
var DressedCharacter = Container.expand(function (characterType) {
var self = Container.call(this);
self.characterType = characterType;
self.equippedItems = {};
var characterBase = self.attachAsset(characterType, {
anchorX: 0.5,
anchorY: 0.5
});
self.equipItem = function (itemType, itemName) {
if (self.equippedItems[itemName]) {
self.removeChild(self.equippedItems[itemName]);
}
var equippedItem = self.attachAsset(itemType, {
anchorX: 0.5,
anchorY: 0.5
});
// Position items based on type
if (itemType.includes('Hat') || itemType.includes('Glasses')) {
equippedItem.y = -200;
} else if (itemType.includes('Shirt') || itemType.includes('Coat') || itemType.includes('Vest') || itemType.includes('sweater')) {
equippedItem.y = -50;
} else if (itemType.includes('Pants') || itemType.includes('skirt')) {
equippedItem.y = 150;
} else if (itemType.includes('Badge') || itemType.includes('stethoscope') || itemType.includes('magnifyingGlass')) {
equippedItem.x = 100;
equippedItem.y = 0;
}
self.equippedItems[itemName] = equippedItem;
LK.getSound('dress').play();
};
return self;
});
var LevelButton = Container.expand(function (levelType, levelName) {
var self = Container.call(this);
self.levelType = levelType;
self.levelName = levelName;
var buttonBg = self.attachAsset('levelButton', {
anchorX: 0.5,
anchorY: 0.5
});
var buttonText = new Text2(levelName, {
size: 40,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.down = function (x, y, obj) {
LK.getSound('select').play();
gameState = 'characterSelect';
selectedLevel = self.levelType;
showCharacterSelection();
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
// UI elements
// Clothing items - Glasses
// Clothing items - Gunner
// Clothing items - Detective
// Clothing items - Doctor
// Clothing items - Police
// Profession level backgrounds
// Character bases
var gameState = 'levelSelect'; // 'levelSelect', 'characterSelect', 'dressUp'
var selectedLevel = '';
var selectedCharacter = '';
var draggedItem = null;
var dressedCharacter = null;
// Game containers
var levelSelectContainer = new Container();
var characterSelectContainer = new Container();
var dressUpContainer = new Container();
// Level data
var levels = [{
type: 'police',
name: 'Police Officer',
items: ['policeHat', 'policeShirt', 'policePants', 'policeBadge']
}, {
type: 'doctor',
name: 'Doctor',
items: ['doctorHat', 'doctorCoat', 'stethoscope']
}, {
type: 'detective',
name: 'Detective',
items: ['detectiveHat', 'detectiveCoat', 'magnifyingGlass']
}, {
type: 'gunner',
name: 'Gunner',
items: ['gunnerHat', 'gunnerVest', 'gunnerPants']
}, {
type: 'glasses',
name: 'Scholar',
items: ['nerdGlasses', 'sweater', 'skirt']
}];
var characters = [{
type: 'blossom',
name: 'Blossom'
}, {
type: 'bubbles',
name: 'Bubbles'
}, {
type: 'buttercup',
name: 'Buttercup'
}];
// Initialize level selection screen
function showLevelSelection() {
game.removeChildren();
levelSelectContainer.removeChildren();
var titleText = new Text2('Choose Your Profession', {
size: 80,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 300;
levelSelectContainer.addChild(titleText);
for (var i = 0; i < levels.length; i++) {
var levelButton = new LevelButton(levels[i].type, levels[i].name);
levelButton.x = 1024;
levelButton.y = 500 + i * 200;
levelSelectContainer.addChild(levelButton);
}
game.addChild(levelSelectContainer);
}
// Initialize character selection screen
function showCharacterSelection() {
game.removeChildren();
characterSelectContainer.removeChildren();
var titleText = new Text2('Choose Your Character', {
size: 80,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 400;
characterSelectContainer.addChild(titleText);
for (var i = 0; i < characters.length; i++) {
var characterButton = new CharacterButton(characters[i].type, characters[i].name);
characterButton.x = 400 + i * 400;
characterButton.y = 800;
characterSelectContainer.addChild(characterButton);
}
// Back button
var backButton = new LevelButton('back', 'Back to Levels');
backButton.x = 1024;
backButton.y = 1200;
backButton.down = function () {
gameState = 'levelSelect';
showLevelSelection();
};
characterSelectContainer.addChild(backButton);
game.addChild(characterSelectContainer);
}
// Initialize dress-up screen
function showDressUpScreen() {
game.removeChildren();
dressUpContainer.removeChildren();
// Add background based on selected level
var levelData = levels.find(function (level) {
return level.type === selectedLevel;
});
var background = LK.getAsset(selectedLevel + 'Level', {
anchorX: 0,
anchorY: 0,
alpha: 0.3
});
dressUpContainer.addChild(background);
// Create dressed character
dressedCharacter = new DressedCharacter(selectedCharacter);
dressedCharacter.x = 1024;
dressedCharacter.y = 1000;
dressUpContainer.addChild(dressedCharacter);
// Create clothing items panel
var clothingPanel = new Container();
clothingPanel.x = 100;
clothingPanel.y = 400;
for (var i = 0; i < levelData.items.length; i++) {
var clothingItem = new ClothingItem(levelData.items[i], levelData.items[i]);
clothingItem.x = i % 3 * 200;
clothingItem.y = Math.floor(i / 3) * 200;
clothingPanel.addChild(clothingItem);
}
dressUpContainer.addChild(clothingPanel);
// Back button
var backButton = new LevelButton('back', 'Back');
backButton.x = 1024;
backButton.y = 200;
backButton.down = function () {
gameState = 'characterSelect';
showCharacterSelection();
};
dressUpContainer.addChild(backButton);
game.addChild(dressUpContainer);
}
// Handle dragging
game.move = function (x, y, obj) {
if (draggedItem && gameState === 'dressUp') {
draggedItem.x = x;
draggedItem.y = y;
}
};
game.up = function (x, y, obj) {
if (draggedItem && gameState === 'dressUp') {
// Check if item was dropped on character
if (dressedCharacter && draggedItem.intersects(dressedCharacter)) {
dressedCharacter.equipItem(draggedItem.itemType, draggedItem.itemName);
}
// Return item to original position
draggedItem.x = draggedItem.originalX;
draggedItem.y = draggedItem.originalY;
draggedItem = null;
}
};
// Start the game
showLevelSelection(); ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,282 @@
-/****
+/****
+* Classes
+****/
+var CharacterButton = Container.expand(function (characterType, characterName) {
+ var self = Container.call(this);
+ self.characterType = characterType;
+ self.characterName = characterName;
+ var buttonBg = self.attachAsset('characterButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var characterPreview = self.attachAsset(characterType, {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 0.3,
+ scaleY: 0.3
+ });
+ var nameText = new Text2(characterName, {
+ size: 30,
+ fill: 0xFFFFFF
+ });
+ nameText.anchor.set(0.5, 0.5);
+ nameText.y = 80;
+ self.addChild(nameText);
+ self.down = function (x, y, obj) {
+ LK.getSound('select').play();
+ selectedCharacter = self.characterType;
+ gameState = 'dressUp';
+ showDressUpScreen();
+ };
+ return self;
+});
+var ClothingItem = Container.expand(function (itemType, itemName) {
+ var self = Container.call(this);
+ self.itemType = itemType;
+ self.itemName = itemName;
+ self.originalX = 0;
+ self.originalY = 0;
+ var itemBg = self.attachAsset('clothingSlot', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var itemGraphic = self.attachAsset(itemType, {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 0.4,
+ scaleY: 0.4
+ });
+ self.down = function (x, y, obj) {
+ if (gameState === 'dressUp') {
+ draggedItem = self;
+ self.originalX = self.x;
+ self.originalY = self.y;
+ }
+ };
+ return self;
+});
+var DressedCharacter = Container.expand(function (characterType) {
+ var self = Container.call(this);
+ self.characterType = characterType;
+ self.equippedItems = {};
+ var characterBase = self.attachAsset(characterType, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.equipItem = function (itemType, itemName) {
+ if (self.equippedItems[itemName]) {
+ self.removeChild(self.equippedItems[itemName]);
+ }
+ var equippedItem = self.attachAsset(itemType, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Position items based on type
+ if (itemType.includes('Hat') || itemType.includes('Glasses')) {
+ equippedItem.y = -200;
+ } else if (itemType.includes('Shirt') || itemType.includes('Coat') || itemType.includes('Vest') || itemType.includes('sweater')) {
+ equippedItem.y = -50;
+ } else if (itemType.includes('Pants') || itemType.includes('skirt')) {
+ equippedItem.y = 150;
+ } else if (itemType.includes('Badge') || itemType.includes('stethoscope') || itemType.includes('magnifyingGlass')) {
+ equippedItem.x = 100;
+ equippedItem.y = 0;
+ }
+ self.equippedItems[itemName] = equippedItem;
+ LK.getSound('dress').play();
+ };
+ return self;
+});
+var LevelButton = Container.expand(function (levelType, levelName) {
+ var self = Container.call(this);
+ self.levelType = levelType;
+ self.levelName = levelName;
+ var buttonBg = self.attachAsset('levelButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var buttonText = new Text2(levelName, {
+ size: 40,
+ fill: 0xFFFFFF
+ });
+ buttonText.anchor.set(0.5, 0.5);
+ self.addChild(buttonText);
+ self.down = function (x, y, obj) {
+ LK.getSound('select').play();
+ gameState = 'characterSelect';
+ selectedLevel = self.levelType;
+ showCharacterSelection();
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87CEEB
+});
+
+/****
+* Game Code
+****/
+// UI elements
+// Clothing items - Glasses
+// Clothing items - Gunner
+// Clothing items - Detective
+// Clothing items - Doctor
+// Clothing items - Police
+// Profession level backgrounds
+// Character bases
+var gameState = 'levelSelect'; // 'levelSelect', 'characterSelect', 'dressUp'
+var selectedLevel = '';
+var selectedCharacter = '';
+var draggedItem = null;
+var dressedCharacter = null;
+// Game containers
+var levelSelectContainer = new Container();
+var characterSelectContainer = new Container();
+var dressUpContainer = new Container();
+// Level data
+var levels = [{
+ type: 'police',
+ name: 'Police Officer',
+ items: ['policeHat', 'policeShirt', 'policePants', 'policeBadge']
+}, {
+ type: 'doctor',
+ name: 'Doctor',
+ items: ['doctorHat', 'doctorCoat', 'stethoscope']
+}, {
+ type: 'detective',
+ name: 'Detective',
+ items: ['detectiveHat', 'detectiveCoat', 'magnifyingGlass']
+}, {
+ type: 'gunner',
+ name: 'Gunner',
+ items: ['gunnerHat', 'gunnerVest', 'gunnerPants']
+}, {
+ type: 'glasses',
+ name: 'Scholar',
+ items: ['nerdGlasses', 'sweater', 'skirt']
+}];
+var characters = [{
+ type: 'blossom',
+ name: 'Blossom'
+}, {
+ type: 'bubbles',
+ name: 'Bubbles'
+}, {
+ type: 'buttercup',
+ name: 'Buttercup'
+}];
+// Initialize level selection screen
+function showLevelSelection() {
+ game.removeChildren();
+ levelSelectContainer.removeChildren();
+ var titleText = new Text2('Choose Your Profession', {
+ size: 80,
+ fill: 0xFFFFFF
+ });
+ titleText.anchor.set(0.5, 0.5);
+ titleText.x = 1024;
+ titleText.y = 300;
+ levelSelectContainer.addChild(titleText);
+ for (var i = 0; i < levels.length; i++) {
+ var levelButton = new LevelButton(levels[i].type, levels[i].name);
+ levelButton.x = 1024;
+ levelButton.y = 500 + i * 200;
+ levelSelectContainer.addChild(levelButton);
+ }
+ game.addChild(levelSelectContainer);
+}
+// Initialize character selection screen
+function showCharacterSelection() {
+ game.removeChildren();
+ characterSelectContainer.removeChildren();
+ var titleText = new Text2('Choose Your Character', {
+ size: 80,
+ fill: 0xFFFFFF
+ });
+ titleText.anchor.set(0.5, 0.5);
+ titleText.x = 1024;
+ titleText.y = 400;
+ characterSelectContainer.addChild(titleText);
+ for (var i = 0; i < characters.length; i++) {
+ var characterButton = new CharacterButton(characters[i].type, characters[i].name);
+ characterButton.x = 400 + i * 400;
+ characterButton.y = 800;
+ characterSelectContainer.addChild(characterButton);
+ }
+ // Back button
+ var backButton = new LevelButton('back', 'Back to Levels');
+ backButton.x = 1024;
+ backButton.y = 1200;
+ backButton.down = function () {
+ gameState = 'levelSelect';
+ showLevelSelection();
+ };
+ characterSelectContainer.addChild(backButton);
+ game.addChild(characterSelectContainer);
+}
+// Initialize dress-up screen
+function showDressUpScreen() {
+ game.removeChildren();
+ dressUpContainer.removeChildren();
+ // Add background based on selected level
+ var levelData = levels.find(function (level) {
+ return level.type === selectedLevel;
+ });
+ var background = LK.getAsset(selectedLevel + 'Level', {
+ anchorX: 0,
+ anchorY: 0,
+ alpha: 0.3
+ });
+ dressUpContainer.addChild(background);
+ // Create dressed character
+ dressedCharacter = new DressedCharacter(selectedCharacter);
+ dressedCharacter.x = 1024;
+ dressedCharacter.y = 1000;
+ dressUpContainer.addChild(dressedCharacter);
+ // Create clothing items panel
+ var clothingPanel = new Container();
+ clothingPanel.x = 100;
+ clothingPanel.y = 400;
+ for (var i = 0; i < levelData.items.length; i++) {
+ var clothingItem = new ClothingItem(levelData.items[i], levelData.items[i]);
+ clothingItem.x = i % 3 * 200;
+ clothingItem.y = Math.floor(i / 3) * 200;
+ clothingPanel.addChild(clothingItem);
+ }
+ dressUpContainer.addChild(clothingPanel);
+ // Back button
+ var backButton = new LevelButton('back', 'Back');
+ backButton.x = 1024;
+ backButton.y = 200;
+ backButton.down = function () {
+ gameState = 'characterSelect';
+ showCharacterSelection();
+ };
+ dressUpContainer.addChild(backButton);
+ game.addChild(dressUpContainer);
+}
+// Handle dragging
+game.move = function (x, y, obj) {
+ if (draggedItem && gameState === 'dressUp') {
+ draggedItem.x = x;
+ draggedItem.y = y;
+ }
+};
+game.up = function (x, y, obj) {
+ if (draggedItem && gameState === 'dressUp') {
+ // Check if item was dropped on character
+ if (dressedCharacter && draggedItem.intersects(dressedCharacter)) {
+ dressedCharacter.equipItem(draggedItem.itemType, draggedItem.itemName);
+ }
+ // Return item to original position
+ draggedItem.x = draggedItem.originalX;
+ draggedItem.y = draggedItem.originalY;
+ draggedItem = null;
+ }
+};
+// Start the game
+showLevelSelection();
\ No newline at end of file