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