User prompt
yes
Code edit (1 edits merged)
Please save this source code
User prompt
Multi-Game Arcade
Initial prompt
Python projeleriniz web'de çalışıyor!
/****
* Plugins
****/
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var BackButton = Container.expand(function () {
var self = Container.call(this);
var background = self.attachAsset('backButton', {
anchorX: 0.5,
anchorY: 0.5
});
var hoverBackground = self.attachAsset('backButtonHover', {
anchorX: 0.5,
anchorY: 0.5
});
hoverBackground.visible = false;
var buttonText = new Text2("Back", {
size: 30,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.isHovered = false;
self.down = function (x, y, obj) {
currentGame = 'menu';
switchToGame('menu');
};
self.setHover = function (hover) {
self.isHovered = hover;
background.visible = !hover;
hoverBackground.visible = hover;
};
return self;
});
var GameNavButton = Container.expand(function (text, targetGame) {
var self = Container.call(this);
var background = self.attachAsset('gameNavButton', {
anchorX: 0.5,
anchorY: 0.5
});
var hoverBackground = self.attachAsset('gameNavButtonHover', {
anchorX: 0.5,
anchorY: 0.5
});
hoverBackground.visible = false;
var buttonText = new Text2(text, {
size: 22,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.targetGame = targetGame;
self.isHovered = false;
self.down = function (x, y, obj) {
currentGame = self.targetGame;
switchToGame(self.targetGame);
};
self.setHover = function (hover) {
self.isHovered = hover;
background.visible = !hover;
hoverBackground.visible = hover;
};
return self;
});
var ListButton = Container.expand(function (text, action) {
var self = Container.call(this);
var background = self.attachAsset('actionButton', {
anchorX: 0.5,
anchorY: 0.5
});
var hoverBackground = self.attachAsset('actionButtonHover', {
anchorX: 0.5,
anchorY: 0.5
});
hoverBackground.visible = false;
var buttonText = new Text2(text, {
size: 25,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.action = action;
self.isHovered = false;
self.down = function (x, y, obj) {
if (self.action === 'random') {
showRandomItem();
} else if (self.action === 'clear') {
clearAllItems();
} else if (self.action === 'view') {
toggleViewList();
}
};
self.setHover = function (hover) {
self.isHovered = hover;
background.visible = !hover;
hoverBackground.visible = hover;
};
return self;
});
var MenuButton = Container.expand(function (text, gameType) {
var self = Container.call(this);
var background = self.attachAsset('menuBackground', {
anchorX: 0.5,
anchorY: 0.5
});
var hoverBackground = self.attachAsset('menuBackgroundHover', {
anchorX: 0.5,
anchorY: 0.5
});
hoverBackground.visible = false;
var buttonText = new Text2(text, {
size: 40,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.gameType = gameType;
self.isHovered = false;
self.down = function (x, y, obj) {
currentGame = self.gameType;
switchToGame(self.gameType);
};
self.setHover = function (hover) {
self.isHovered = hover;
background.visible = !hover;
hoverBackground.visible = hover;
};
return self;
});
var RPSButton = Container.expand(function (choice) {
var self = Container.call(this);
var background = self.attachAsset('rpsButton', {
anchorX: 0.5,
anchorY: 0.5
});
var hoverBackground = self.attachAsset('rpsButtonHover', {
anchorX: 0.5,
anchorY: 0.5
});
hoverBackground.visible = false;
var buttonText = new Text2(choice, {
size: 50,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.choice = choice;
self.isHovered = false;
self.down = function (x, y, obj) {
if (rpsGameActive) {
playRPSRound(self.choice);
}
};
self.setHover = function (hover) {
self.isHovered = hover;
background.visible = !hover;
hoverBackground.visible = hover;
};
return self;
});
var XOXCell = Container.expand(function (row, col) {
var self = Container.call(this);
var background = self.attachAsset('xoxGrid', {
anchorX: 0.5,
anchorY: 0.5
});
var hoverBackground = self.attachAsset('xoxGridHover', {
anchorX: 0.5,
anchorY: 0.5
});
hoverBackground.visible = false;
var cellText = new Text2("", {
size: 60,
fill: 0xFFFFFF
});
cellText.anchor.set(0.5, 0.5);
self.addChild(cellText);
self.row = row;
self.col = col;
self.value = "";
self.isHovered = false;
self.down = function (x, y, obj) {
if (xoxGameActive && self.value === "" && currentPlayer === "X") {
makeXOXMove(self.row, self.col, "X");
}
};
self.setValue = function (value) {
self.value = value;
cellText.setText(value);
cellText.fill = value === "X" ? "#e74c3c" : "#3498db";
};
self.setHover = function (hover) {
if (self.value === "") {
self.isHovered = hover;
background.visible = !hover;
hoverBackground.visible = hover;
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2d1b14
});
/****
* Game Code
****/
// Date converter assets
// List manager assets
// Rock Paper Scissors assets
// XOX Game assets
// Game backgrounds
// Main menu backgrounds
// Game state variables
var currentGame = 'menu';
var menuButtons = [];
var backButton;
var gameContainer;
// XOX Game variables
var xoxBoard = [["", "", ""], ["", "", ""], ["", "", ""]];
var xoxCells = [];
var currentPlayer = "X";
var xoxGameActive = true;
var xoxStatusText;
// Rock Paper Scissors variables
var rpsButtons = [];
var playerScore = 0;
var computerScore = 0;
var rpsGameActive = true;
var rpsStatusText;
var rpsScoreText;
// List Manager variables
var itemsList = storage.itemsList || [];
var currentInput = "";
var listStatusText;
var listDisplayText;
var showingList = false;
// Date Converter variables
var dateInput = "";
var dateStatusText;
var isHijriInput = true;
// Initialize storage
storage.itemsList = storage.itemsList || [];
function createMainMenu() {
// Clear existing content
game.children.forEach(function (child) {
if (child !== gameContainer) {
game.removeChild(child);
}
});
var titleText = new Text2("Multi-Game Arcade", {
size: 80,
fill: 0xffeaa7
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 300;
game.addChild(titleText);
// Create menu buttons
var buttonTexts = ["Film & Game Manager", "XOX (Tic-Tac-Toe)", "Rock Paper Scissors", "Date Converter"];
var gameTypes = ["list", "xox", "rps", "date"];
menuButtons = [];
for (var i = 0; i < 4; i++) {
var button = new MenuButton(buttonTexts[i], gameTypes[i]);
button.x = 1024;
button.y = 600 + i * 250;
menuButtons.push(button);
game.addChild(button);
}
}
function createXOXGame() {
gameContainer = game.addChild(new Container());
var titleText = new Text2("XOX (Tic-Tac-Toe)", {
size: 60,
fill: 0xffeaa7
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 200;
gameContainer.addChild(titleText);
xoxStatusText = new Text2("Your turn (X)", {
size: 40,
fill: 0xFFFFFF
});
xoxStatusText.anchor.set(0.5, 0.5);
xoxStatusText.x = 1024;
xoxStatusText.y = 300;
gameContainer.addChild(xoxStatusText);
// Create XOX grid
xoxCells = [];
for (var row = 0; row < 3; row++) {
xoxCells[row] = [];
for (var col = 0; col < 3; col++) {
var cell = new XOXCell(row, col);
cell.x = 824 + col * 140;
cell.y = 500 + row * 140;
xoxCells[row][col] = cell;
gameContainer.addChild(cell);
}
}
var newGameButton = new ListButton("New Game", "newgame");
newGameButton.x = 1024;
newGameButton.y = 1000;
newGameButton.down = function () {
resetXOXGame();
};
gameContainer.addChild(newGameButton);
// Add direct game navigation buttons
var rpsNavButton = new GameNavButton("Rock Paper Scissors", "rps");
rpsNavButton.x = 300;
rpsNavButton.y = 100;
gameContainer.addChild(rpsNavButton);
var listNavButton = new GameNavButton("Film Manager", "list");
listNavButton.x = 500;
listNavButton.y = 100;
gameContainer.addChild(listNavButton);
var dateNavButton = new GameNavButton("Date Converter", "date");
dateNavButton.x = 700;
dateNavButton.y = 100;
gameContainer.addChild(dateNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
}
function createRPSGame() {
gameContainer = game.addChild(new Container());
var titleText = new Text2("Rock Paper Scissors", {
size: 60,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 200;
gameContainer.addChild(titleText);
rpsStatusText = new Text2("Choose your move!", {
size: 40,
fill: 0xFFFFFF
});
rpsStatusText.anchor.set(0.5, 0.5);
rpsStatusText.x = 1024;
rpsStatusText.y = 300;
gameContainer.addChild(rpsStatusText);
rpsScoreText = new Text2("Player: 0 | Computer: 0", {
size: 35,
fill: 0xFFFFFF
});
rpsScoreText.anchor.set(0.5, 0.5);
rpsScoreText.x = 1024;
rpsScoreText.y = 380;
gameContainer.addChild(rpsScoreText);
// Create RPS buttons
var choices = ["Rock", "Paper", "Scissors"];
rpsButtons = [];
for (var i = 0; i < 3; i++) {
var button = new RPSButton(choices[i]);
button.x = 524 + i * 350;
button.y = 600;
rpsButtons.push(button);
gameContainer.addChild(button);
}
var newGameButton = new ListButton("New Game", "newgame");
newGameButton.x = 1024;
newGameButton.y = 1000;
newGameButton.down = function () {
resetRPSGame();
};
gameContainer.addChild(newGameButton);
// Add direct game navigation buttons
var xoxNavButton = new GameNavButton("XOX Game", "xox");
xoxNavButton.x = 300;
xoxNavButton.y = 100;
gameContainer.addChild(xoxNavButton);
var listNavButton = new GameNavButton("Film Manager", "list");
listNavButton.x = 500;
listNavButton.y = 100;
gameContainer.addChild(listNavButton);
var dateNavButton = new GameNavButton("Date Converter", "date");
dateNavButton.x = 700;
dateNavButton.y = 100;
gameContainer.addChild(dateNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
}
function createListGame() {
gameContainer = game.addChild(new Container());
var titleText = new Text2("Film & Game Manager", {
size: 60,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 200;
gameContainer.addChild(titleText);
var instructionText = new Text2("Tap below to add items to your wishlist:", {
size: 30,
fill: 0xFFFFFF
});
instructionText.anchor.set(0.5, 0.5);
instructionText.x = 1024;
instructionText.y = 300;
gameContainer.addChild(instructionText);
// Input simulation area
var inputBg = LK.getAsset('inputBox', {
anchorX: 0.5,
anchorY: 0.5
});
inputBg.x = 1024;
inputBg.y = 400;
gameContainer.addChild(inputBg);
var inputText = new Text2("Tap here to add item...", {
size: 25,
fill: 0x666666
});
inputText.anchor.set(0.5, 0.5);
inputText.x = 1024;
inputText.y = 400;
gameContainer.addChild(inputText);
listStatusText = new Text2("Items in list: " + itemsList.length, {
size: 30,
fill: 0xFFFFFF
});
listStatusText.anchor.set(0.5, 0.5);
listStatusText.x = 1024;
listStatusText.y = 500;
gameContainer.addChild(listStatusText);
// Action buttons
var randomButton = new ListButton("Random Pick", "random");
randomButton.x = 624;
randomButton.y = 600;
gameContainer.addChild(randomButton);
var viewButton = new ListButton("View List", "view");
viewButton.x = 1024;
viewButton.y = 600;
gameContainer.addChild(viewButton);
var clearButton = new ListButton("Clear All", "clear");
clearButton.x = 1424;
clearButton.y = 600;
gameContainer.addChild(clearButton);
listDisplayText = new Text2("", {
size: 25,
fill: 0xFFFFFF
});
listDisplayText.anchor.set(0.5, 0);
listDisplayText.x = 1024;
listDisplayText.y = 700;
gameContainer.addChild(listDisplayText);
// Simulate add item functionality
inputBg.interactive = true;
inputBg.down = function () {
var sampleItems = ["Avatar", "Inception", "The Matrix", "Interstellar", "The Witcher 3", "Cyberpunk 2077", "Red Dead Redemption", "Minecraft"];
var randomItem = sampleItems[Math.floor(Math.random() * sampleItems.length)];
itemsList.push(randomItem);
storage.itemsList = itemsList;
updateListStatus();
inputText.setText("Added: " + randomItem);
LK.setTimeout(function () {
inputText.setText("Tap here to add item...");
}, 2000);
};
// Add direct game navigation buttons
var xoxNavButton = new GameNavButton("XOX Game", "xox");
xoxNavButton.x = 300;
xoxNavButton.y = 100;
gameContainer.addChild(xoxNavButton);
var rpsNavButton = new GameNavButton("Rock Paper Scissors", "rps");
rpsNavButton.x = 500;
rpsNavButton.y = 100;
gameContainer.addChild(rpsNavButton);
var dateNavButton = new GameNavButton("Date Converter", "date");
dateNavButton.x = 700;
dateNavButton.y = 100;
gameContainer.addChild(dateNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
updateListStatus();
}
function createDateGame() {
gameContainer = game.addChild(new Container());
var titleText = new Text2("Date Converter", {
size: 60,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 200;
gameContainer.addChild(titleText);
var instructionText = new Text2("Tap buttons to convert dates between Hijri and Gregorian calendars", {
size: 30,
fill: 0xFFFFFF
});
instructionText.anchor.set(0.5, 0.5);
instructionText.x = 1024;
instructionText.y = 300;
gameContainer.addChild(instructionText);
// Convert buttons
var hijriButton = new ListButton("Convert to Hijri", "hijri");
hijriButton.x = 724;
hijriButton.y = 450;
hijriButton.down = function () {
convertDate(false);
};
gameContainer.addChild(hijriButton);
var gregorianButton = new ListButton("Convert to Gregorian", "gregorian");
gregorianButton.x = 1324;
gregorianButton.y = 450;
gregorianButton.down = function () {
convertDate(true);
};
gameContainer.addChild(gregorianButton);
dateStatusText = new Text2("Sample: 2024/1/1 (Gregorian) = 1445/5/20 (Hijri)", {
size: 35,
fill: 0x2ECC71
});
dateStatusText.anchor.set(0.5, 0.5);
dateStatusText.x = 1024;
dateStatusText.y = 600;
gameContainer.addChild(dateStatusText);
var infoText = new Text2("The Hijri calendar is based on lunar cycles,\nwhile the Gregorian calendar follows solar years.\nConversions are approximate.", {
size: 25,
fill: 0x95A5A6
});
infoText.anchor.set(0.5, 0.5);
infoText.x = 1024;
infoText.y = 750;
gameContainer.addChild(infoText);
// Add direct game navigation buttons
var xoxNavButton = new GameNavButton("XOX Game", "xox");
xoxNavButton.x = 300;
xoxNavButton.y = 100;
gameContainer.addChild(xoxNavButton);
var rpsNavButton = new GameNavButton("Rock Paper Scissors", "rps");
rpsNavButton.x = 500;
rpsNavButton.y = 100;
gameContainer.addChild(rpsNavButton);
var listNavButton = new GameNavButton("Film Manager", "list");
listNavButton.x = 700;
listNavButton.y = 100;
gameContainer.addChild(listNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
}
function switchToGame(gameType) {
// Clear current game
if (gameContainer) {
game.removeChild(gameContainer);
gameContainer = null;
}
// Remove menu buttons
menuButtons.forEach(function (button) {
game.removeChild(button);
});
menuButtons = [];
// Remove any other UI elements
game.children.forEach(function (child) {
if (child.constructor === Text2) {
game.removeChild(child);
}
});
// Create new game
switch (gameType) {
case 'menu':
createMainMenu();
break;
case 'xox':
createXOXGame();
resetXOXGame();
break;
case 'rps':
createRPSGame();
resetRPSGame();
break;
case 'list':
createListGame();
break;
case 'date':
createDateGame();
break;
}
}
// XOX Game Logic
function makeXOXMove(row, col, player) {
if (xoxBoard[row][col] === "" && xoxGameActive) {
xoxBoard[row][col] = player;
xoxCells[row][col].setValue(player);
if (checkXOXWin(player)) {
xoxStatusText.setText(player + " wins!");
xoxGameActive = false;
return;
}
if (checkXOXDraw()) {
xoxStatusText.setText("It's a draw!");
xoxGameActive = false;
return;
}
currentPlayer = player === "X" ? "O" : "X";
xoxStatusText.setText(currentPlayer === "X" ? "Your turn (X)" : "Computer's turn (O)");
if (currentPlayer === "O") {
LK.setTimeout(makeComputerMove, 500);
}
}
}
function makeComputerMove() {
if (!xoxGameActive) return;
var emptyCells = [];
for (var row = 0; row < 3; row++) {
for (var col = 0; col < 3; col++) {
if (xoxBoard[row][col] === "") {
emptyCells.push({
row: row,
col: col
});
}
}
}
if (emptyCells.length > 0) {
var randomMove = emptyCells[Math.floor(Math.random() * emptyCells.length)];
makeXOXMove(randomMove.row, randomMove.col, "O");
}
}
function checkXOXWin(player) {
// Check rows
for (var row = 0; row < 3; row++) {
if (xoxBoard[row][0] === player && xoxBoard[row][1] === player && xoxBoard[row][2] === player) {
return true;
}
}
// Check columns
for (var col = 0; col < 3; col++) {
if (xoxBoard[0][col] === player && xoxBoard[1][col] === player && xoxBoard[2][col] === player) {
return true;
}
}
// Check diagonals
if (xoxBoard[0][0] === player && xoxBoard[1][1] === player && xoxBoard[2][2] === player) {
return true;
}
if (xoxBoard[0][2] === player && xoxBoard[1][1] === player && xoxBoard[2][0] === player) {
return true;
}
return false;
}
function checkXOXDraw() {
for (var row = 0; row < 3; row++) {
for (var col = 0; col < 3; col++) {
if (xoxBoard[row][col] === "") {
return false;
}
}
}
return true;
}
function resetXOXGame() {
xoxBoard = [["", "", ""], ["", "", ""], ["", "", ""]];
for (var row = 0; row < 3; row++) {
for (var col = 0; col < 3; col++) {
xoxCells[row][col].setValue("");
}
}
currentPlayer = "X";
xoxGameActive = true;
xoxStatusText.setText("Your turn (X)");
}
// Rock Paper Scissors Logic
function playRPSRound(playerChoice) {
if (!rpsGameActive) return;
var choices = ["Rock", "Paper", "Scissors"];
var computerChoice = choices[Math.floor(Math.random() * 3)];
var result = "";
if (playerChoice === computerChoice) {
result = "Tie! Both chose " + playerChoice;
} else if (playerChoice === "Rock" && computerChoice === "Scissors" || playerChoice === "Paper" && computerChoice === "Rock" || playerChoice === "Scissors" && computerChoice === "Paper") {
result = "You win! " + playerChoice + " beats " + computerChoice;
playerScore++;
} else {
result = "Computer wins! " + computerChoice + " beats " + playerChoice;
computerScore++;
}
rpsStatusText.setText(result);
rpsScoreText.setText("Player: " + playerScore + " | Computer: " + computerScore);
if (playerScore >= 3 || computerScore >= 3) {
var winner = playerScore >= 3 ? "You win the match!" : "Computer wins the match!";
rpsStatusText.setText(winner);
rpsGameActive = false;
}
}
function resetRPSGame() {
playerScore = 0;
computerScore = 0;
rpsGameActive = true;
rpsStatusText.setText("Choose your move!");
rpsScoreText.setText("Player: 0 | Computer: 0");
}
// List Manager Logic
function showRandomItem() {
if (itemsList.length === 0) {
listDisplayText.setText("No items in your list yet!");
return;
}
var randomIndex = Math.floor(Math.random() * itemsList.length);
var randomItem = itemsList[randomIndex];
listDisplayText.setText("Random pick: " + randomItem);
showingList = false;
}
function clearAllItems() {
itemsList = [];
storage.itemsList = [];
updateListStatus();
listDisplayText.setText("All items cleared!");
showingList = false;
}
function toggleViewList() {
if (itemsList.length === 0) {
listDisplayText.setText("No items in your list yet!");
return;
}
if (showingList) {
listDisplayText.setText("");
showingList = false;
} else {
var displayText = "Your list:\n";
for (var i = 0; i < Math.min(itemsList.length, 10); i++) {
displayText += i + 1 + ". " + itemsList[i] + "\n";
}
if (itemsList.length > 10) {
displayText += "... and " + (itemsList.length - 10) + " more items";
}
listDisplayText.setText(displayText);
showingList = true;
}
}
function updateListStatus() {
if (listStatusText) {
listStatusText.setText("Items in list: " + itemsList.length);
}
}
// Date Converter Logic
function convertDate(toHijri) {
var samples = [{
gregorian: "2024/1/1",
hijri: "1445/5/20"
}, {
gregorian: "2023/12/25",
hijri: "1445/6/12"
}, {
gregorian: "2024/7/4",
hijri: "1445/12/28"
}, {
gregorian: "2024/3/15",
hijri: "1445/9/5"
}];
var randomSample = samples[Math.floor(Math.random() * samples.length)];
if (toHijri) {
dateStatusText.setText("Sample: " + randomSample.gregorian + " (Gregorian) = " + randomSample.hijri + " (Hijri)");
} else {
dateStatusText.setText("Sample: " + randomSample.hijri + " (Hijri) = " + randomSample.gregorian + " (Gregorian)");
}
}
// Mouse handling
var hoveredElement = null;
game.move = function (x, y, obj) {
var newHoveredElement = null;
// Check menu buttons
if (currentGame === 'menu') {
menuButtons.forEach(function (button) {
if (x >= button.x - 200 && x <= button.x + 200 && y >= button.y - 100 && y <= button.y + 100) {
newHoveredElement = button;
}
});
}
// Check back button
if (backButton && x >= backButton.x - 75 && x <= backButton.x + 75 && y >= backButton.y - 40 && y <= backButton.y + 40) {
newHoveredElement = backButton;
}
// Check XOX cells
if (currentGame === 'xox' && xoxCells.length > 0) {
xoxCells.forEach(function (row) {
row.forEach(function (cell) {
if (x >= cell.x - 60 && x <= cell.x + 60 && y >= cell.y - 60 && y <= cell.y + 60) {
newHoveredElement = cell;
}
});
});
}
// Check RPS buttons
if (currentGame === 'rps' && rpsButtons.length > 0) {
rpsButtons.forEach(function (button) {
if (x >= button.x - 100 && x <= button.x + 100 && y >= button.y - 100 && y <= button.y + 100) {
newHoveredElement = button;
}
});
}
// Update hover states
if (hoveredElement && hoveredElement !== newHoveredElement) {
if (hoveredElement.setHover) {
hoveredElement.setHover(false);
}
}
if (newHoveredElement && newHoveredElement !== hoveredElement) {
if (newHoveredElement.setHover) {
newHoveredElement.setHover(true);
}
}
hoveredElement = newHoveredElement;
};
// Initialize the game
createMainMenu(); ===================================================================
--- original.js
+++ change.js
@@ -34,8 +34,38 @@
hoverBackground.visible = hover;
};
return self;
});
+var GameNavButton = Container.expand(function (text, targetGame) {
+ var self = Container.call(this);
+ var background = self.attachAsset('gameNavButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var hoverBackground = self.attachAsset('gameNavButtonHover', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ hoverBackground.visible = false;
+ var buttonText = new Text2(text, {
+ size: 22,
+ fill: 0xFFFFFF
+ });
+ buttonText.anchor.set(0.5, 0.5);
+ self.addChild(buttonText);
+ self.targetGame = targetGame;
+ self.isHovered = false;
+ self.down = function (x, y, obj) {
+ currentGame = self.targetGame;
+ switchToGame(self.targetGame);
+ };
+ self.setHover = function (hover) {
+ self.isHovered = hover;
+ background.visible = !hover;
+ hoverBackground.visible = hover;
+ };
+ return self;
+});
var ListButton = Container.expand(function (text, action) {
var self = Container.call(this);
var background = self.attachAsset('actionButton', {
anchorX: 0.5,
@@ -175,9 +205,9 @@
/****
* Initialize Game
****/
var game = new LK.Game({
- backgroundColor: 0x1a1a1a
+ backgroundColor: 0x2d1b14
});
/****
* Game Code
@@ -226,9 +256,9 @@
}
});
var titleText = new Text2("Multi-Game Arcade", {
size: 80,
- fill: 0xFFFFFF
+ fill: 0xffeaa7
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 300;
@@ -248,9 +278,9 @@
function createXOXGame() {
gameContainer = game.addChild(new Container());
var titleText = new Text2("XOX (Tic-Tac-Toe)", {
size: 60,
- fill: 0xFFFFFF
+ fill: 0xffeaa7
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 200;
@@ -281,8 +311,21 @@
newGameButton.down = function () {
resetXOXGame();
};
gameContainer.addChild(newGameButton);
+ // Add direct game navigation buttons
+ var rpsNavButton = new GameNavButton("Rock Paper Scissors", "rps");
+ rpsNavButton.x = 300;
+ rpsNavButton.y = 100;
+ gameContainer.addChild(rpsNavButton);
+ var listNavButton = new GameNavButton("Film Manager", "list");
+ listNavButton.x = 500;
+ listNavButton.y = 100;
+ gameContainer.addChild(listNavButton);
+ var dateNavButton = new GameNavButton("Date Converter", "date");
+ dateNavButton.x = 700;
+ dateNavButton.y = 100;
+ gameContainer.addChild(dateNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
@@ -329,8 +372,21 @@
newGameButton.down = function () {
resetRPSGame();
};
gameContainer.addChild(newGameButton);
+ // Add direct game navigation buttons
+ var xoxNavButton = new GameNavButton("XOX Game", "xox");
+ xoxNavButton.x = 300;
+ xoxNavButton.y = 100;
+ gameContainer.addChild(xoxNavButton);
+ var listNavButton = new GameNavButton("Film Manager", "list");
+ listNavButton.x = 500;
+ listNavButton.y = 100;
+ gameContainer.addChild(listNavButton);
+ var dateNavButton = new GameNavButton("Date Converter", "date");
+ dateNavButton.x = 700;
+ dateNavButton.y = 100;
+ gameContainer.addChild(dateNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
@@ -410,8 +466,21 @@
LK.setTimeout(function () {
inputText.setText("Tap here to add item...");
}, 2000);
};
+ // Add direct game navigation buttons
+ var xoxNavButton = new GameNavButton("XOX Game", "xox");
+ xoxNavButton.x = 300;
+ xoxNavButton.y = 100;
+ gameContainer.addChild(xoxNavButton);
+ var rpsNavButton = new GameNavButton("Rock Paper Scissors", "rps");
+ rpsNavButton.x = 500;
+ rpsNavButton.y = 100;
+ gameContainer.addChild(rpsNavButton);
+ var dateNavButton = new GameNavButton("Date Converter", "date");
+ dateNavButton.x = 700;
+ dateNavButton.y = 100;
+ gameContainer.addChild(dateNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);
@@ -465,8 +534,21 @@
infoText.anchor.set(0.5, 0.5);
infoText.x = 1024;
infoText.y = 750;
gameContainer.addChild(infoText);
+ // Add direct game navigation buttons
+ var xoxNavButton = new GameNavButton("XOX Game", "xox");
+ xoxNavButton.x = 300;
+ xoxNavButton.y = 100;
+ gameContainer.addChild(xoxNavButton);
+ var rpsNavButton = new GameNavButton("Rock Paper Scissors", "rps");
+ rpsNavButton.x = 500;
+ rpsNavButton.y = 100;
+ gameContainer.addChild(rpsNavButton);
+ var listNavButton = new GameNavButton("Film Manager", "list");
+ listNavButton.x = 700;
+ listNavButton.y = 100;
+ gameContainer.addChild(listNavButton);
backButton = new BackButton();
backButton.x = 150;
backButton.y = 150;
gameContainer.addChild(backButton);