User prompt
online skor tablosu ekler misin ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
ARAKAYA ŞARKI KOY
User prompt
MENÜDEKİ ÇUNUKLARI SİL
User prompt
MENÜDE KAÇ WİN ALSIĞIN YAZSIN ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
KEMALDEV YAZISINA 2 KERE BASARSAN WİN AL
User prompt
Add anything you want to the game ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Menu gta 2 style ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Menu gta 2 style ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
3 adet daha hero ekle
User prompt
Oyun ekranını biraz aşağı al ortala
User prompt
LOGADA OLSUN BAŞTA ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
KEMALDEV WRITE BEFORE THE MENU WHEN THE GAME STARTS ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
LET IT BE WRITE KEMALDEV AND THEN IT BE THE LOGO
User prompt
Let the game be fun and fluent ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Please fix the bug: 'Uncaught ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText('Score: ' + LK.getScore());' Line Number: 273
User prompt
Game not showing fix
User prompt
make the menu visible
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading '0')' in or related to this line: 'if (grid[y][x] === null) {' Line Number: 227
User prompt
Add menu
User prompt
remove the numbers from the heroes
Code edit (1 edits merged)
Please save this source code
User prompt
Hero Fusion Academy
Initial prompt
superhero merge
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Hero = Container.expand(function (tier) { var self = Container.call(this); self.tier = tier || 1; self.gridX = -1; self.gridY = -1; self.isDragging = false; self.originalX = 0; self.originalY = 0; var heroAssets = ['heroTier1', 'heroTier2', 'heroTier3', 'heroTier4', 'heroTier5', 'heroTier6', 'heroTier7', 'heroTier8', 'heroTier9']; var heroGraphics = self.attachAsset(heroAssets[self.tier - 1], { anchorX: 0.5, anchorY: 0.5 }); // Tier text removed - heroes now display without numbers self.setGridPosition = function (gridX, gridY) { self.gridX = gridX; self.gridY = gridY; self.x = GRID_START_X + gridX * CELL_SIZE + CELL_SIZE / 2; self.y = GRID_START_Y + gridY * CELL_SIZE + CELL_SIZE / 2; self.originalX = self.x; self.originalY = self.y; }; self.down = function (x, y, obj) { if (!gameOver) { self.isDragging = true; draggedHero = self; self.originalX = self.x; self.originalY = self.y; tween(self, { scaleX: 1.1, scaleY: 1.1 }, { duration: 100 }); } }; self.up = function (x, y, obj) { if (self.isDragging) { self.isDragging = false; draggedHero = null; tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); // Check for merge var targetGridX = Math.floor((self.x - GRID_START_X) / CELL_SIZE); var targetGridY = Math.floor((self.y - GRID_START_Y) / CELL_SIZE); if (targetGridX >= 0 && targetGridX < GRID_WIDTH && targetGridY >= 0 && targetGridY < GRID_HEIGHT) { var targetHero = grid[targetGridY][targetGridX]; if (targetHero && targetHero !== self && targetHero.tier === self.tier) { // Merge! performMerge(self, targetHero); return; } } // Return to original position with bounce effect tween(self, { x: self.originalX, y: self.originalY }, { duration: 300, easing: tween.bounceOut }); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1a1a1a }); /**** * Game Code ****/ var GRID_WIDTH = 5; var GRID_HEIGHT = 7; var CELL_SIZE = 140; var GRID_START_X = (2048 - GRID_WIDTH * CELL_SIZE) / 2; var GRID_START_Y = 600; var grid = []; var heroes = []; var draggedHero = null; var gameOver = false; var gameStarted = false; var spawnTimer = 0; var spawnInterval = 180; // 3 seconds at 60fps var menuContainer = null; var scoreText = null; function showMainMenu() { menuContainer = new Container(); menuContainer.alpha = 0; game.addChild(menuContainer); // Fade in menu tween(menuContainer, { alpha: 1 }, { duration: 500, easing: tween.easeOut }); // Dark urban background with gradient effect using multiple layers var menuBg1 = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 15, scaleY: 20 }); menuBg1.x = 2048 / 2; menuBg1.y = 2732 / 2; menuBg1.tint = 0x0a0a0a; menuBg1.alpha = 1.0; menuContainer.addChild(menuBg1); // Add dark cyan overlay for GTA 2 aesthetic var menuBg2 = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 15, scaleY: 20 }); menuBg2.x = 2048 / 2; menuBg2.y = 2732 / 2; menuBg2.tint = 0x003333; menuBg2.alpha = 0.6; menuContainer.addChild(menuBg2); // KEMALDEV Logo with neon cyan color var logoText = new Text2('KEMALDEV', { size: 220, fill: 0x00FFFF }); logoText.anchor.set(0.5, 0.5); logoText.x = 2048 / 2; logoText.y = 900; menuContainer.addChild(logoText); // Game title with neon green color var gameTitle = new Text2('HERO FUSION ACADEMY', { size: 120, fill: 0x00FF00 }); gameTitle.anchor.set(0.5, 0.5); gameTitle.x = 2048 / 2; gameTitle.y = 1150; menuContainer.addChild(gameTitle); // Add neon glow pulsing animation to KEMALDEV logo function pulseLogo() { tween(logoText, { tint: 0x66FFFF, scaleX: 1.1, scaleY: 1.1 }, { duration: 1200, easing: tween.easeInOut, onFinish: function onFinish() { tween(logoText, { tint: 0x00FFFF, scaleX: 1, scaleY: 1 }, { duration: 1200, easing: tween.easeInOut, onFinish: pulseLogo }); } }); } pulseLogo(); // Add neon glow pulsing animation to title function pulseTitle() { tween(gameTitle, { tint: 0x66FF66, scaleX: 1.05, scaleY: 1.05 }, { duration: 1500, easing: tween.easeInOut, onFinish: function onFinish() { tween(gameTitle, { tint: 0x00FF00, scaleX: 1, scaleY: 1 }, { duration: 1500, easing: tween.easeInOut, onFinish: pulseTitle }); } }); } pulseTitle(); // Subtitle with neon yellow var subtitle = new Text2('MERGE IDENTICAL HEROES TO CREATE POWERFUL CHAMPIONS!', { size: 70, fill: 0xFFFF00 }); subtitle.anchor.set(0.5, 0.5); subtitle.x = 2048 / 2; subtitle.y = 1300; menuContainer.addChild(subtitle); // GTA 2 style decorative elements - neon bars var topBar = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 12, scaleY: 0.2 }); topBar.x = 2048 / 2; topBar.y = 750; topBar.tint = 0x00FFFF; topBar.alpha = 0.8; menuContainer.addChild(topBar); var bottomBar = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 12, scaleY: 0.2 }); bottomBar.x = 2048 / 2; bottomBar.y = 2100; bottomBar.tint = 0x00FFFF; bottomBar.alpha = 0.8; menuContainer.addChild(bottomBar); // Side accent bars var leftBar = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.3, scaleY: 8 }); leftBar.x = 300; leftBar.y = 1400; leftBar.tint = 0x00FF00; leftBar.alpha = 0.6; menuContainer.addChild(leftBar); var rightBar = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.3, scaleY: 8 }); rightBar.x = 1748; rightBar.y = 1400; rightBar.tint = 0x00FF00; rightBar.alpha = 0.6; menuContainer.addChild(rightBar); // Start button with neon styling var startButton = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 1.5 }); startButton.x = 2048 / 2; startButton.y = 1600; startButton.tint = 0x003333; startButton.alpha = 0.9; menuContainer.addChild(startButton); // Button border effect var buttonBorder = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 4.2, scaleY: 1.7 }); buttonBorder.x = 2048 / 2; buttonBorder.y = 1600; buttonBorder.tint = 0x00FFFF; buttonBorder.alpha = 0.7; menuContainer.addChild(buttonBorder); menuContainer.addChild(startButton); // Re-add to put on top var startButtonText = new Text2('>>> START GAME <<<', { size: 90, fill: 0x00FFFF }); startButtonText.anchor.set(0.5, 0.5); startButtonText.x = 2048 / 2; startButtonText.y = 1600; menuContainer.addChild(startButtonText); // Animate the decorative bars function animateBars() { tween(topBar, { alpha: 1.0 }, { duration: 800, easing: tween.easeInOut, onFinish: function onFinish() { tween(topBar, { alpha: 0.4 }, { duration: 800, easing: tween.easeInOut, onFinish: animateBars }); } }); } animateBars(); // Button interaction with neon effects startButton.down = function () { tween(startButton, { tint: 0x006666, scaleX: 3.8, scaleY: 1.4 }, { duration: 100, easing: tween.easeOut, onFinish: function onFinish() { tween(startButton, { tint: 0x003333, scaleX: 4, scaleY: 1.5 }, { duration: 100, easing: tween.easeIn }); } }); tween(startButtonText, { tint: 0x66FFFF }, { duration: 100, onFinish: function onFinish() { tween(startButtonText, { tint: 0x00FFFF }, { duration: 100 }); } }); startGame(); }; } function startGame() { if (menuContainer) { menuContainer.destroy(); menuContainer = null; } gameStarted = true; initializeGame(); } function initializeGame() { // Initialize grid for (var y = 0; y < GRID_HEIGHT; y++) { grid[y] = []; for (var x = 0; x < GRID_WIDTH; x++) { grid[y][x] = null; // Create grid cell visuals var cell = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5 }); cell.x = GRID_START_X + x * CELL_SIZE + CELL_SIZE / 2; cell.y = GRID_START_Y + y * CELL_SIZE + CELL_SIZE / 2; cell.alpha = 0.3; game.addChild(cell); } } // Score display scoreText = new Text2('Score: 0', { size: 80, fill: 0xFFFFFF }); scoreText.anchor.set(0.5, 0); LK.gui.top.addChild(scoreText); // KEMALDEV Logo var logoGameText = new Text2('KEMALDEV', { size: 120, fill: 0xFFD700 }); logoGameText.anchor.set(0.5, 0); logoGameText.x = 2048 / 2; logoGameText.y = 150; game.addChild(logoGameText); // Title var titleText = new Text2('Hero Fusion Academy', { size: 100, fill: 0xFFD700 }); titleText.anchor.set(0.5, 0); titleText.x = 2048 / 2; titleText.y = 280; game.addChild(titleText); // Instructions var instructionText = new Text2('Drag matching heroes to merge them!', { size: 60, fill: 0xFFFFFF }); instructionText.anchor.set(0.5, 0); instructionText.x = 2048 / 2; instructionText.y = 400; game.addChild(instructionText); // Spawn initial heroes spawnHero(); spawnHero(); } function getEmptyCell() { var emptyCells = []; for (var y = 0; y < GRID_HEIGHT; y++) { for (var x = 0; x < GRID_WIDTH; x++) { if (grid[y][x] === null) { emptyCells.push({ x: x, y: y }); } } } return emptyCells.length > 0 ? emptyCells[Math.floor(Math.random() * emptyCells.length)] : null; } function spawnHero() { var emptyCell = getEmptyCell(); if (emptyCell) { var tier = Math.random() < 0.8 ? 1 : 2; // 80% chance for tier 1, 20% for tier 2 var hero = new Hero(tier); hero.setGridPosition(emptyCell.x, emptyCell.y); grid[emptyCell.y][emptyCell.x] = hero; heroes.push(hero); game.addChild(hero); // Spawn animation hero.scaleX = 0; hero.scaleY = 0; tween(hero, { scaleX: 1, scaleY: 1 }, { duration: 300, easing: tween.bounceOut }); LK.getSound('spawn').play(); } else { // Grid is full - game over gameOver = true; // Animate all heroes shrinking before game over for (var i = 0; i < heroes.length; i++) { tween(heroes[i], { scaleX: 0.8, scaleY: 0.8, alpha: 0.5 }, { duration: 800, easing: tween.easeIn }); } LK.setTimeout(function () { LK.showGameOver(); }, 1000); } } function performMerge(hero1, hero2) { if (hero1.tier >= 9) return; // Max tier reached // Calculate score based on tier var scoreIncrease = hero1.tier * 100; LK.setScore(LK.getScore() + scoreIncrease); scoreText.setText('Score: ' + LK.getScore()); // Remove both heroes from grid grid[hero1.gridY][hero1.gridX] = null; grid[hero2.gridY][hero2.gridX] = null; // Create new hero with higher tier var newHero = new Hero(hero1.tier + 1); newHero.setGridPosition(hero2.gridX, hero2.gridY); grid[hero2.gridY][hero2.gridX] = newHero; heroes.push(newHero); game.addChild(newHero); // Merge animation newHero.scaleX = 0; newHero.scaleY = 0; tween(newHero, { scaleX: 1.2, scaleY: 1.2 }, { duration: 200, easing: tween.easeOut }); tween(newHero, { scaleX: 1, scaleY: 1 }, { duration: 200, easing: tween.easeIn }); // Flash effect with color transition LK.effects.flashObject(newHero, 0xFFFFFF, 500); // Add golden glow effect for high-tier merges if (newHero.tier >= 4) { tween(newHero, { tint: 0xFFD700 }, { duration: 300, easing: tween.easeOut, onFinish: function onFinish() { tween(newHero, { tint: 0xFFFFFF }, { duration: 300, easing: tween.easeIn }); } }); } // Remove old heroes hero1.destroy(); hero2.destroy(); // Remove from heroes array var index1 = heroes.indexOf(hero1); if (index1 > -1) heroes.splice(index1, 1); var index2 = heroes.indexOf(hero2); if (index2 > -1) heroes.splice(index2, 1); LK.getSound('merge').play(); // Check for win condition (tier 9 hero created) if (newHero.tier >= 9) { LK.setTimeout(function () { LK.showYouWin(); }, 1000); } } game.move = function (x, y, obj) { if (draggedHero && draggedHero.isDragging) { draggedHero.x = x; draggedHero.y = y; } }; game.update = function () { if (gameStarted && !gameOver) { spawnTimer++; if (spawnTimer >= spawnInterval) { spawnHero(); spawnTimer = 0; // Gradually decrease spawn interval to increase difficulty if (spawnInterval > 120) { spawnInterval -= 2; } } } }; // Show KEMALDEV splash screen first, then main menu showKemaldevSplash(); function showKemaldevSplash() { var splashContainer = new Container(); splashContainer.alpha = 0; game.addChild(splashContainer); // Black background for splash var splashBg = LK.getAsset('gridCell', { anchorX: 0.5, anchorY: 0.5, scaleX: 20, scaleY: 25 }); splashBg.x = 2048 / 2; splashBg.y = 2732 / 2; splashBg.tint = 0x000000; splashContainer.addChild(splashBg); // Large KEMALDEV text positioned at the top var kemaldevText = new Text2('KEMALDEV', { size: 300, fill: 0xFFD700 }); kemaldevText.anchor.set(0.5, 0.5); kemaldevText.x = 2048 / 2; kemaldevText.y = 800; kemaldevText.alpha = 0; kemaldevText.scaleX = 0.5; kemaldevText.scaleY = 0.5; splashContainer.addChild(kemaldevText); // Developer subtitle var devText = new Text2('Game Developer', { size: 120, fill: 0xFFFFFF }); devText.anchor.set(0.5, 0.5); devText.x = 2048 / 2; devText.y = 1200; devText.alpha = 0; splashContainer.addChild(devText); // Fade in splash screen tween(splashContainer, { alpha: 1 }, { duration: 300, easing: tween.easeOut, onFinish: function onFinish() { // Animate KEMALDEV text entrance with scale and fade tween(kemaldevText, { alpha: 1, scaleX: 1.3, scaleY: 1.3 }, { duration: 1000, easing: tween.bounceOut, onFinish: function onFinish() { // Scale back to normal size tween(kemaldevText, { scaleX: 1, scaleY: 1 }, { duration: 400, easing: tween.easeOut, onFinish: function onFinish() { // Fade in subtitle tween(devText, { alpha: 1 }, { duration: 500, easing: tween.easeOut, onFinish: function onFinish() { // Add pulsing effect to logo function pulseLogo() { tween(kemaldevText, { scaleX: 1.1, scaleY: 1.1 }, { duration: 600, easing: tween.easeInOut, onFinish: function onFinish() { tween(kemaldevText, { scaleX: 1, scaleY: 1 }, { duration: 600, easing: tween.easeInOut, onFinish: pulseLogo }); } }); } pulseLogo(); // Hold for a moment, then fade out and show menu LK.setTimeout(function () { tween(splashContainer, { alpha: 0 }, { duration: 800, easing: tween.easeIn, onFinish: function onFinish() { splashContainer.destroy(); showMainMenu(); } }); }, 2500); } }); } }); } }); } }); }
===================================================================
--- original.js
+++ change.js
@@ -110,156 +110,232 @@
}, {
duration: 500,
easing: tween.easeOut
});
- // Dark GTA 2 style background
- var menuBg = LK.getAsset('gridCell', {
+ // Dark urban background with gradient effect using multiple layers
+ var menuBg1 = LK.getAsset('gridCell', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 15,
scaleY: 20
});
- menuBg.x = 2048 / 2;
- menuBg.y = 2732 / 2;
- menuBg.alpha = 0.95;
- menuBg.tint = 0x000000;
- menuContainer.addChild(menuBg);
- // KEMALDEV Logo with GTA 2 style
+ menuBg1.x = 2048 / 2;
+ menuBg1.y = 2732 / 2;
+ menuBg1.tint = 0x0a0a0a;
+ menuBg1.alpha = 1.0;
+ menuContainer.addChild(menuBg1);
+ // Add dark cyan overlay for GTA 2 aesthetic
+ var menuBg2 = LK.getAsset('gridCell', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 15,
+ scaleY: 20
+ });
+ menuBg2.x = 2048 / 2;
+ menuBg2.y = 2732 / 2;
+ menuBg2.tint = 0x003333;
+ menuBg2.alpha = 0.6;
+ menuContainer.addChild(menuBg2);
+ // KEMALDEV Logo with neon cyan color
var logoText = new Text2('KEMALDEV', {
- size: 200,
- fill: 0x00FF00
+ size: 220,
+ fill: 0x00FFFF
});
logoText.anchor.set(0.5, 0.5);
logoText.x = 2048 / 2;
logoText.y = 900;
menuContainer.addChild(logoText);
- // Game title with GTA 2 style
+ // Game title with neon green color
var gameTitle = new Text2('HERO FUSION ACADEMY', {
size: 120,
fill: 0x00FF00
});
gameTitle.anchor.set(0.5, 0.5);
gameTitle.x = 2048 / 2;
gameTitle.y = 1150;
menuContainer.addChild(gameTitle);
- // Add GTA 2 style pulsing animation to KEMALDEV logo
+ // Add neon glow pulsing animation to KEMALDEV logo
function pulseLogo() {
tween(logoText, {
- scaleX: 1.2,
- scaleY: 1.2,
- tint: 0x00FFFF
+ tint: 0x66FFFF,
+ scaleX: 1.1,
+ scaleY: 1.1
}, {
- duration: 1000,
+ duration: 1200,
easing: tween.easeInOut,
onFinish: function onFinish() {
tween(logoText, {
+ tint: 0x00FFFF,
scaleX: 1,
- scaleY: 1,
- tint: 0x00FF00
+ scaleY: 1
}, {
- duration: 1000,
+ duration: 1200,
easing: tween.easeInOut,
onFinish: pulseLogo
});
}
});
}
pulseLogo();
- // Add GTA 2 style pulsing animation to title
+ // Add neon glow pulsing animation to title
function pulseTitle() {
tween(gameTitle, {
+ tint: 0x66FF66,
scaleX: 1.05,
- scaleY: 1.05,
- tint: 0x00FFFF
+ scaleY: 1.05
}, {
- duration: 1200,
+ duration: 1500,
easing: tween.easeInOut,
onFinish: function onFinish() {
tween(gameTitle, {
+ tint: 0x00FF00,
scaleX: 1,
- scaleY: 1,
- tint: 0x00FF00
+ scaleY: 1
}, {
- duration: 1200,
+ duration: 1500,
easing: tween.easeInOut,
onFinish: pulseTitle
});
}
});
}
pulseTitle();
- // Subtitle with GTA 2 style
+ // Subtitle with neon yellow
var subtitle = new Text2('MERGE IDENTICAL HEROES TO CREATE POWERFUL CHAMPIONS!', {
size: 70,
- fill: 0x00FFFF
+ fill: 0xFFFF00
});
subtitle.anchor.set(0.5, 0.5);
subtitle.x = 2048 / 2;
subtitle.y = 1300;
menuContainer.addChild(subtitle);
- // GTA 2 style start button
+ // GTA 2 style decorative elements - neon bars
+ var topBar = LK.getAsset('gridCell', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 12,
+ scaleY: 0.2
+ });
+ topBar.x = 2048 / 2;
+ topBar.y = 750;
+ topBar.tint = 0x00FFFF;
+ topBar.alpha = 0.8;
+ menuContainer.addChild(topBar);
+ var bottomBar = LK.getAsset('gridCell', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 12,
+ scaleY: 0.2
+ });
+ bottomBar.x = 2048 / 2;
+ bottomBar.y = 2100;
+ bottomBar.tint = 0x00FFFF;
+ bottomBar.alpha = 0.8;
+ menuContainer.addChild(bottomBar);
+ // Side accent bars
+ var leftBar = LK.getAsset('gridCell', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 0.3,
+ scaleY: 8
+ });
+ leftBar.x = 300;
+ leftBar.y = 1400;
+ leftBar.tint = 0x00FF00;
+ leftBar.alpha = 0.6;
+ menuContainer.addChild(leftBar);
+ var rightBar = LK.getAsset('gridCell', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 0.3,
+ scaleY: 8
+ });
+ rightBar.x = 1748;
+ rightBar.y = 1400;
+ rightBar.tint = 0x00FF00;
+ rightBar.alpha = 0.6;
+ menuContainer.addChild(rightBar);
+ // Start button with neon styling
var startButton = LK.getAsset('gridCell', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 3.5,
- scaleY: 1.3
+ scaleX: 4,
+ scaleY: 1.5
});
startButton.x = 2048 / 2;
startButton.y = 1600;
- startButton.alpha = 0.8;
- startButton.tint = 0x001100;
+ startButton.tint = 0x003333;
+ startButton.alpha = 0.9;
menuContainer.addChild(startButton);
// Button border effect
var buttonBorder = LK.getAsset('gridCell', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 3.7,
- scaleY: 1.4
+ scaleX: 4.2,
+ scaleY: 1.7
});
buttonBorder.x = 2048 / 2;
buttonBorder.y = 1600;
- buttonBorder.alpha = 0.6;
- buttonBorder.tint = 0x00FF00;
+ buttonBorder.tint = 0x00FFFF;
+ buttonBorder.alpha = 0.7;
menuContainer.addChild(buttonBorder);
- menuContainer.addChild(startButton); // Re-add to be on top
+ menuContainer.addChild(startButton); // Re-add to put on top
var startButtonText = new Text2('>>> START GAME <<<', {
size: 90,
- fill: 0x00FF00
+ fill: 0x00FFFF
});
startButtonText.anchor.set(0.5, 0.5);
startButtonText.x = 2048 / 2;
startButtonText.y = 1600;
menuContainer.addChild(startButtonText);
- // GTA 2 style button interaction with tween effects
+ // Animate the decorative bars
+ function animateBars() {
+ tween(topBar, {
+ alpha: 1.0
+ }, {
+ duration: 800,
+ easing: tween.easeInOut,
+ onFinish: function onFinish() {
+ tween(topBar, {
+ alpha: 0.4
+ }, {
+ duration: 800,
+ easing: tween.easeInOut,
+ onFinish: animateBars
+ });
+ }
+ });
+ }
+ animateBars();
+ // Button interaction with neon effects
startButton.down = function () {
tween(startButton, {
- scaleX: 3.3,
- scaleY: 1.2
+ tint: 0x006666,
+ scaleX: 3.8,
+ scaleY: 1.4
}, {
duration: 100,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(startButton, {
- scaleX: 3.5,
- scaleY: 1.3
+ tint: 0x003333,
+ scaleX: 4,
+ scaleY: 1.5
}, {
duration: 100,
easing: tween.easeIn
});
}
});
- // Flash button green on click
- tween(startButton, {
- tint: 0x00FF00
+ tween(startButtonText, {
+ tint: 0x66FFFF
}, {
- duration: 150,
- easing: tween.easeOut,
+ duration: 100,
onFinish: function onFinish() {
- tween(startButton, {
- tint: 0x001100
+ tween(startButtonText, {
+ tint: 0x00FFFF
}, {
- duration: 150,
- easing: tween.easeIn
+ duration: 100
});
}
});
startGame();
pixel art Hulk. In-Game asset. 2d. High contrast. No shadows
attack on titan colossal titan pixel art. In-Game asset. 2d. High contrast. No shadows
KANEKİ PİXEL ART GHOUL. In-Game asset. 2d. High contrast. No shadows
PİXEL ART SİLVER SURFER. In-Game asset. 2d. High contrast. No shadows
Pixel art
pixel art red gurdian. In-Game asset. 2d. High contrast. No shadows
pixel art Hero. In-Game asset. 2d. High contrast. No shadows
PNG