Code edit (1 edits merged)
Please save this source code
User prompt
Fruitsies TV Show: Character Collection Adventure
Initial prompt
Fruitsies TV Show The Game With Cast(Milly The Strawberry Monkey Joy The Green Apple Dog(You Need 1 Level To Unlock) Simone The Grape Frog(You Need 2 Level To Unlock) Jane The Banana Cat(Coming Soon...) And Plex The Passion Fruit Tiger(Coming Soon...) And 5 House(Strawberry House & Green Apple House & Grape House & Sale Sign Comic Soon... Is: Banana House & Sale Sign Comic Soon... Is: Passion Fruit House) And 4 Buildings(Food Shop & Cloths Shop & Hospital(Coming Soon...) & Gardens(Coming Soon...) Cilck 5 Houses To See The 5 Rooms Like(Strawberry Room & Green Apple Room & Grape Room & Banana Room(Coming Soon..) & Passion Fruit Room(Coming Soon...)
/****
* Plugins
****/
var storage = LK.import("@upit/storage.v1", {
level: 0,
unlockedCharacters: ["milly"]
});
/****
* Classes
****/
var Building = Container.expand(function (buildingType, isAvailable) {
var self = Container.call(this);
var buildingGraphic = self.attachAsset(buildingType, {
anchorX: 0.5,
anchorY: 0.5
});
self.buildingType = buildingType;
self.isAvailable = isAvailable;
if (!self.isAvailable) {
buildingGraphic.alpha = 0.5;
}
// Add building label
var labelText = buildingType === 'foodShop' ? 'Food Shop' : buildingType === 'clothesShop' ? 'Clothes Shop' : buildingType === 'hospital' ? 'Hospital' : 'Gardens';
self.label = new Text2(labelText, {
size: 35,
fill: 0xFFFFFF
});
self.label.anchor.set(0.5, 0.5);
self.label.y = 20;
self.addChild(self.label);
if (!self.isAvailable) {
self.comingSoonText = new Text2('Coming Soon', {
size: 25,
fill: 0xFFFF00
});
self.comingSoonText.anchor.set(0.5, 0.5);
self.comingSoonText.y = 50;
self.addChild(self.comingSoonText);
}
self.down = function (x, y, obj) {
if (self.isAvailable) {
LK.getSound('click').play();
showBuildingContent(self.buildingType);
}
};
return self;
});
var Character = Container.expand(function (characterType) {
var self = Container.call(this);
var characterGraphic = self.attachAsset(characterType + 'Character', {
anchorX: 0.5,
anchorY: 0.5
});
self.characterType = characterType;
self.isUnlocked = storage.unlockedCharacters.indexOf(characterType) !== -1;
if (!self.isUnlocked) {
characterGraphic.alpha = 0.3;
}
self.down = function (x, y, obj) {
if (self.isUnlocked) {
LK.getSound('click').play();
showCharacterDetail(self.characterType);
}
};
return self;
});
var House = Container.expand(function (houseType, isAvailable) {
var self = Container.call(this);
var houseGraphic = self.attachAsset(houseType + 'House', {
anchorX: 0.5,
anchorY: 0.5
});
self.houseType = houseType;
self.isAvailable = isAvailable;
if (!self.isAvailable) {
houseGraphic.alpha = 0.5;
}
// Add house label
self.label = new Text2(houseType.charAt(0).toUpperCase() + houseType.slice(1), {
size: 40,
fill: 0xFFFFFF
});
self.label.anchor.set(0.5, 0.5);
self.label.y = 20;
self.addChild(self.label);
if (!self.isAvailable) {
self.comingSoonText = new Text2('Coming Soon', {
size: 30,
fill: 0xFFFF00
});
self.comingSoonText.anchor.set(0.5, 0.5);
self.comingSoonText.y = 60;
self.addChild(self.comingSoonText);
}
self.down = function (x, y, obj) {
if (self.isAvailable) {
LK.getSound('click').play();
showHouseRooms(self.houseType);
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb
});
/****
* Game Code
****/
// UI elements
// Room asset
// Building assets
// House assets
// Character assets
// Game state variables
var currentScreen = 'main';
var characters = [];
var houses = [];
var buildings = [];
// UI elements
var levelText;
var backButton;
// Initialize level and character unlocking
function checkUnlocks() {
var currentLevel = storage.level;
var unlockedChars = storage.unlockedCharacters.slice();
if (currentLevel >= 1 && unlockedChars.indexOf('joy') === -1) {
unlockedChars.push('joy');
LK.getSound('unlock').play();
}
if (currentLevel >= 2 && unlockedChars.indexOf('simone') === -1) {
unlockedChars.push('simone');
LK.getSound('unlock').play();
}
storage.unlockedCharacters = unlockedChars;
}
// Create main menu screen
function createMainScreen() {
clearScreen();
currentScreen = 'main';
// Level display
levelText = new Text2('Level ' + storage.level, {
size: 60,
fill: 0xFFFFFF
});
levelText.anchor.set(0.5, 0);
LK.gui.top.addChild(levelText);
levelText.y = 150;
// Title
var titleText = new Text2('Fruitsies TV Show', {
size: 80,
fill: 0xFF1493
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 300;
game.addChild(titleText);
// Create characters section
var charSectionTitle = new Text2('Characters', {
size: 50,
fill: 0xFFFFFF
});
charSectionTitle.anchor.set(0.5, 0.5);
charSectionTitle.x = 1024;
charSectionTitle.y = 450;
game.addChild(charSectionTitle);
// Add characters
var milly = new Character('milly');
milly.x = 700;
milly.y = 550;
game.addChild(milly);
characters.push(milly);
var joy = new Character('joy');
joy.x = 1024;
joy.y = 550;
game.addChild(joy);
characters.push(joy);
var simone = new Character('simone');
simone.x = 1348;
simone.y = 550;
game.addChild(simone);
characters.push(simone);
// Create houses section
var houseSectionTitle = new Text2('Houses', {
size: 50,
fill: 0xFFFFFF
});
houseSectionTitle.anchor.set(0.5, 0.5);
houseSectionTitle.x = 1024;
houseSectionTitle.y = 750;
game.addChild(houseSectionTitle);
// Add houses
var strawberryHouse = new House('strawberry', true);
strawberryHouse.x = 400;
strawberryHouse.y = 950;
game.addChild(strawberryHouse);
houses.push(strawberryHouse);
var greenAppleHouse = new House('greenApple', true);
greenAppleHouse.x = 750;
greenAppleHouse.y = 950;
game.addChild(greenAppleHouse);
houses.push(greenAppleHouse);
var grapeHouse = new House('grape', true);
grapeHouse.x = 1100;
grapeHouse.y = 950;
game.addChild(grapeHouse);
houses.push(grapeHouse);
var bananaHouse = new House('banana', false);
bananaHouse.x = 1450;
bananaHouse.y = 950;
game.addChild(bananaHouse);
houses.push(bananaHouse);
var passionFruitHouse = new House('passionFruit', false);
passionFruitHouse.x = 1024;
passionFruitHouse.y = 1200;
game.addChild(passionFruitHouse);
houses.push(passionFruitHouse);
// Create buildings section
var buildingSectionTitle = new Text2('Buildings', {
size: 50,
fill: 0xFFFFFF
});
buildingSectionTitle.anchor.set(0.5, 0.5);
buildingSectionTitle.x = 1024;
buildingSectionTitle.y = 1450;
game.addChild(buildingSectionTitle);
// Add buildings
var foodShop = new Building('foodShop', true);
foodShop.x = 500;
foodShop.y = 1600;
game.addChild(foodShop);
buildings.push(foodShop);
var clothesShop = new Building('clothesShop', true);
clothesShop.x = 900;
clothesShop.y = 1600;
game.addChild(clothesShop);
buildings.push(clothesShop);
var hospital = new Building('hospital', false);
hospital.x = 1300;
hospital.y = 1600;
game.addChild(hospital);
buildings.push(hospital);
var gardens = new Building('gardens', false);
gardens.x = 1024;
gardens.y = 1800;
game.addChild(gardens);
buildings.push(gardens);
// Level up button (for testing)
var levelUpButton = new Text2('Level Up!', {
size: 40,
fill: 0x00FF00
});
levelUpButton.anchor.set(0.5, 0.5);
levelUpButton.x = 1024;
levelUpButton.y = 2000;
game.addChild(levelUpButton);
levelUpButton.down = function (x, y, obj) {
storage.level++;
checkUnlocks();
createMainScreen();
};
}
// Show character detail screen
function showCharacterDetail(characterType) {
clearScreen();
currentScreen = 'character';
var characterNames = {
'milly': 'Milly The Strawberry Monkey',
'joy': 'Joy The Green Apple Dog',
'simone': 'Simone The Grape Frog'
};
var characterName = new Text2(characterNames[characterType], {
size: 60,
fill: 0xFFFFFF
});
characterName.anchor.set(0.5, 0.5);
characterName.x = 1024;
characterName.y = 400;
game.addChild(characterName);
var character = new Character(characterType);
character.x = 1024;
character.y = 600;
game.addChild(character);
createBackButton();
}
// Show house rooms
function showHouseRooms(houseType) {
clearScreen();
currentScreen = 'house';
var houseTitle = new Text2(houseType.charAt(0).toUpperCase() + houseType.slice(1) + ' House', {
size: 60,
fill: 0xFFFFFF
});
houseTitle.anchor.set(0.5, 0.5);
houseTitle.x = 1024;
houseTitle.y = 300;
game.addChild(houseTitle);
// Character room
var characterRoom = LK.getAsset('characterRoom', {
anchorX: 0.5,
anchorY: 0.5
});
characterRoom.x = 1024;
characterRoom.y = 800;
game.addChild(characterRoom);
var roomText = new Text2('Character Room', {
size: 40,
fill: 0x000000
});
roomText.anchor.set(0.5, 0.5);
roomText.x = 1024;
roomText.y = 800;
game.addChild(roomText);
characterRoom.down = function (x, y, obj) {
LK.getSound('click').play();
// Show room contents would go here
};
createBackButton();
}
// Show building content
function showBuildingContent(buildingType) {
clearScreen();
currentScreen = 'building';
var buildingNames = {
'foodShop': 'Food Shop',
'clothesShop': 'Clothes Shop'
};
var buildingTitle = new Text2(buildingNames[buildingType], {
size: 60,
fill: 0xFFFFFF
});
buildingTitle.anchor.set(0.5, 0.5);
buildingTitle.x = 1024;
buildingTitle.y = 400;
game.addChild(buildingTitle);
var contentText = new Text2('Welcome to the ' + buildingNames[buildingType] + '!', {
size: 40,
fill: 0xFFFFFF
});
contentText.anchor.set(0.5, 0.5);
contentText.x = 1024;
contentText.y = 600;
game.addChild(contentText);
createBackButton();
}
// Create back button
function createBackButton() {
backButton = LK.getAsset('backButton', {
anchorX: 0.5,
anchorY: 0.5
});
backButton.x = 200;
backButton.y = 200;
game.addChild(backButton);
var backText = new Text2('Back', {
size: 30,
fill: 0xFFFFFF
});
backText.anchor.set(0.5, 0.5);
backText.x = 200;
backText.y = 200;
game.addChild(backText);
backButton.down = function (x, y, obj) {
LK.getSound('click').play();
createMainScreen();
};
}
// Clear screen
function clearScreen() {
// Remove all children from game
while (game.children.length > 0) {
var child = game.children[0];
child.destroy();
}
// Clear GUI
while (LK.gui.top.children.length > 0) {
var guiChild = LK.gui.top.children[0];
guiChild.destroy();
}
// Reset arrays
characters = [];
houses = [];
buildings = [];
}
// Initialize game
checkUnlocks();
createMainScreen(); ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,392 @@
-/****
+/****
+* Plugins
+****/
+var storage = LK.import("@upit/storage.v1", {
+ level: 0,
+ unlockedCharacters: ["milly"]
+});
+
+/****
+* Classes
+****/
+var Building = Container.expand(function (buildingType, isAvailable) {
+ var self = Container.call(this);
+ var buildingGraphic = self.attachAsset(buildingType, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.buildingType = buildingType;
+ self.isAvailable = isAvailable;
+ if (!self.isAvailable) {
+ buildingGraphic.alpha = 0.5;
+ }
+ // Add building label
+ var labelText = buildingType === 'foodShop' ? 'Food Shop' : buildingType === 'clothesShop' ? 'Clothes Shop' : buildingType === 'hospital' ? 'Hospital' : 'Gardens';
+ self.label = new Text2(labelText, {
+ size: 35,
+ fill: 0xFFFFFF
+ });
+ self.label.anchor.set(0.5, 0.5);
+ self.label.y = 20;
+ self.addChild(self.label);
+ if (!self.isAvailable) {
+ self.comingSoonText = new Text2('Coming Soon', {
+ size: 25,
+ fill: 0xFFFF00
+ });
+ self.comingSoonText.anchor.set(0.5, 0.5);
+ self.comingSoonText.y = 50;
+ self.addChild(self.comingSoonText);
+ }
+ self.down = function (x, y, obj) {
+ if (self.isAvailable) {
+ LK.getSound('click').play();
+ showBuildingContent(self.buildingType);
+ }
+ };
+ return self;
+});
+var Character = Container.expand(function (characterType) {
+ var self = Container.call(this);
+ var characterGraphic = self.attachAsset(characterType + 'Character', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.characterType = characterType;
+ self.isUnlocked = storage.unlockedCharacters.indexOf(characterType) !== -1;
+ if (!self.isUnlocked) {
+ characterGraphic.alpha = 0.3;
+ }
+ self.down = function (x, y, obj) {
+ if (self.isUnlocked) {
+ LK.getSound('click').play();
+ showCharacterDetail(self.characterType);
+ }
+ };
+ return self;
+});
+var House = Container.expand(function (houseType, isAvailable) {
+ var self = Container.call(this);
+ var houseGraphic = self.attachAsset(houseType + 'House', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.houseType = houseType;
+ self.isAvailable = isAvailable;
+ if (!self.isAvailable) {
+ houseGraphic.alpha = 0.5;
+ }
+ // Add house label
+ self.label = new Text2(houseType.charAt(0).toUpperCase() + houseType.slice(1), {
+ size: 40,
+ fill: 0xFFFFFF
+ });
+ self.label.anchor.set(0.5, 0.5);
+ self.label.y = 20;
+ self.addChild(self.label);
+ if (!self.isAvailable) {
+ self.comingSoonText = new Text2('Coming Soon', {
+ size: 30,
+ fill: 0xFFFF00
+ });
+ self.comingSoonText.anchor.set(0.5, 0.5);
+ self.comingSoonText.y = 60;
+ self.addChild(self.comingSoonText);
+ }
+ self.down = function (x, y, obj) {
+ if (self.isAvailable) {
+ LK.getSound('click').play();
+ showHouseRooms(self.houseType);
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87ceeb
+});
+
+/****
+* Game Code
+****/
+// UI elements
+// Room asset
+// Building assets
+// House assets
+// Character assets
+// Game state variables
+var currentScreen = 'main';
+var characters = [];
+var houses = [];
+var buildings = [];
+// UI elements
+var levelText;
+var backButton;
+// Initialize level and character unlocking
+function checkUnlocks() {
+ var currentLevel = storage.level;
+ var unlockedChars = storage.unlockedCharacters.slice();
+ if (currentLevel >= 1 && unlockedChars.indexOf('joy') === -1) {
+ unlockedChars.push('joy');
+ LK.getSound('unlock').play();
+ }
+ if (currentLevel >= 2 && unlockedChars.indexOf('simone') === -1) {
+ unlockedChars.push('simone');
+ LK.getSound('unlock').play();
+ }
+ storage.unlockedCharacters = unlockedChars;
+}
+// Create main menu screen
+function createMainScreen() {
+ clearScreen();
+ currentScreen = 'main';
+ // Level display
+ levelText = new Text2('Level ' + storage.level, {
+ size: 60,
+ fill: 0xFFFFFF
+ });
+ levelText.anchor.set(0.5, 0);
+ LK.gui.top.addChild(levelText);
+ levelText.y = 150;
+ // Title
+ var titleText = new Text2('Fruitsies TV Show', {
+ size: 80,
+ fill: 0xFF1493
+ });
+ titleText.anchor.set(0.5, 0.5);
+ titleText.x = 1024;
+ titleText.y = 300;
+ game.addChild(titleText);
+ // Create characters section
+ var charSectionTitle = new Text2('Characters', {
+ size: 50,
+ fill: 0xFFFFFF
+ });
+ charSectionTitle.anchor.set(0.5, 0.5);
+ charSectionTitle.x = 1024;
+ charSectionTitle.y = 450;
+ game.addChild(charSectionTitle);
+ // Add characters
+ var milly = new Character('milly');
+ milly.x = 700;
+ milly.y = 550;
+ game.addChild(milly);
+ characters.push(milly);
+ var joy = new Character('joy');
+ joy.x = 1024;
+ joy.y = 550;
+ game.addChild(joy);
+ characters.push(joy);
+ var simone = new Character('simone');
+ simone.x = 1348;
+ simone.y = 550;
+ game.addChild(simone);
+ characters.push(simone);
+ // Create houses section
+ var houseSectionTitle = new Text2('Houses', {
+ size: 50,
+ fill: 0xFFFFFF
+ });
+ houseSectionTitle.anchor.set(0.5, 0.5);
+ houseSectionTitle.x = 1024;
+ houseSectionTitle.y = 750;
+ game.addChild(houseSectionTitle);
+ // Add houses
+ var strawberryHouse = new House('strawberry', true);
+ strawberryHouse.x = 400;
+ strawberryHouse.y = 950;
+ game.addChild(strawberryHouse);
+ houses.push(strawberryHouse);
+ var greenAppleHouse = new House('greenApple', true);
+ greenAppleHouse.x = 750;
+ greenAppleHouse.y = 950;
+ game.addChild(greenAppleHouse);
+ houses.push(greenAppleHouse);
+ var grapeHouse = new House('grape', true);
+ grapeHouse.x = 1100;
+ grapeHouse.y = 950;
+ game.addChild(grapeHouse);
+ houses.push(grapeHouse);
+ var bananaHouse = new House('banana', false);
+ bananaHouse.x = 1450;
+ bananaHouse.y = 950;
+ game.addChild(bananaHouse);
+ houses.push(bananaHouse);
+ var passionFruitHouse = new House('passionFruit', false);
+ passionFruitHouse.x = 1024;
+ passionFruitHouse.y = 1200;
+ game.addChild(passionFruitHouse);
+ houses.push(passionFruitHouse);
+ // Create buildings section
+ var buildingSectionTitle = new Text2('Buildings', {
+ size: 50,
+ fill: 0xFFFFFF
+ });
+ buildingSectionTitle.anchor.set(0.5, 0.5);
+ buildingSectionTitle.x = 1024;
+ buildingSectionTitle.y = 1450;
+ game.addChild(buildingSectionTitle);
+ // Add buildings
+ var foodShop = new Building('foodShop', true);
+ foodShop.x = 500;
+ foodShop.y = 1600;
+ game.addChild(foodShop);
+ buildings.push(foodShop);
+ var clothesShop = new Building('clothesShop', true);
+ clothesShop.x = 900;
+ clothesShop.y = 1600;
+ game.addChild(clothesShop);
+ buildings.push(clothesShop);
+ var hospital = new Building('hospital', false);
+ hospital.x = 1300;
+ hospital.y = 1600;
+ game.addChild(hospital);
+ buildings.push(hospital);
+ var gardens = new Building('gardens', false);
+ gardens.x = 1024;
+ gardens.y = 1800;
+ game.addChild(gardens);
+ buildings.push(gardens);
+ // Level up button (for testing)
+ var levelUpButton = new Text2('Level Up!', {
+ size: 40,
+ fill: 0x00FF00
+ });
+ levelUpButton.anchor.set(0.5, 0.5);
+ levelUpButton.x = 1024;
+ levelUpButton.y = 2000;
+ game.addChild(levelUpButton);
+ levelUpButton.down = function (x, y, obj) {
+ storage.level++;
+ checkUnlocks();
+ createMainScreen();
+ };
+}
+// Show character detail screen
+function showCharacterDetail(characterType) {
+ clearScreen();
+ currentScreen = 'character';
+ var characterNames = {
+ 'milly': 'Milly The Strawberry Monkey',
+ 'joy': 'Joy The Green Apple Dog',
+ 'simone': 'Simone The Grape Frog'
+ };
+ var characterName = new Text2(characterNames[characterType], {
+ size: 60,
+ fill: 0xFFFFFF
+ });
+ characterName.anchor.set(0.5, 0.5);
+ characterName.x = 1024;
+ characterName.y = 400;
+ game.addChild(characterName);
+ var character = new Character(characterType);
+ character.x = 1024;
+ character.y = 600;
+ game.addChild(character);
+ createBackButton();
+}
+// Show house rooms
+function showHouseRooms(houseType) {
+ clearScreen();
+ currentScreen = 'house';
+ var houseTitle = new Text2(houseType.charAt(0).toUpperCase() + houseType.slice(1) + ' House', {
+ size: 60,
+ fill: 0xFFFFFF
+ });
+ houseTitle.anchor.set(0.5, 0.5);
+ houseTitle.x = 1024;
+ houseTitle.y = 300;
+ game.addChild(houseTitle);
+ // Character room
+ var characterRoom = LK.getAsset('characterRoom', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ characterRoom.x = 1024;
+ characterRoom.y = 800;
+ game.addChild(characterRoom);
+ var roomText = new Text2('Character Room', {
+ size: 40,
+ fill: 0x000000
+ });
+ roomText.anchor.set(0.5, 0.5);
+ roomText.x = 1024;
+ roomText.y = 800;
+ game.addChild(roomText);
+ characterRoom.down = function (x, y, obj) {
+ LK.getSound('click').play();
+ // Show room contents would go here
+ };
+ createBackButton();
+}
+// Show building content
+function showBuildingContent(buildingType) {
+ clearScreen();
+ currentScreen = 'building';
+ var buildingNames = {
+ 'foodShop': 'Food Shop',
+ 'clothesShop': 'Clothes Shop'
+ };
+ var buildingTitle = new Text2(buildingNames[buildingType], {
+ size: 60,
+ fill: 0xFFFFFF
+ });
+ buildingTitle.anchor.set(0.5, 0.5);
+ buildingTitle.x = 1024;
+ buildingTitle.y = 400;
+ game.addChild(buildingTitle);
+ var contentText = new Text2('Welcome to the ' + buildingNames[buildingType] + '!', {
+ size: 40,
+ fill: 0xFFFFFF
+ });
+ contentText.anchor.set(0.5, 0.5);
+ contentText.x = 1024;
+ contentText.y = 600;
+ game.addChild(contentText);
+ createBackButton();
+}
+// Create back button
+function createBackButton() {
+ backButton = LK.getAsset('backButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ backButton.x = 200;
+ backButton.y = 200;
+ game.addChild(backButton);
+ var backText = new Text2('Back', {
+ size: 30,
+ fill: 0xFFFFFF
+ });
+ backText.anchor.set(0.5, 0.5);
+ backText.x = 200;
+ backText.y = 200;
+ game.addChild(backText);
+ backButton.down = function (x, y, obj) {
+ LK.getSound('click').play();
+ createMainScreen();
+ };
+}
+// Clear screen
+function clearScreen() {
+ // Remove all children from game
+ while (game.children.length > 0) {
+ var child = game.children[0];
+ child.destroy();
+ }
+ // Clear GUI
+ while (LK.gui.top.children.length > 0) {
+ var guiChild = LK.gui.top.children[0];
+ guiChild.destroy();
+ }
+ // Reset arrays
+ characters = [];
+ houses = [];
+ buildings = [];
+}
+// Initialize game
+checkUnlocks();
+createMainScreen();
\ No newline at end of file