Code edit (2 edits merged)
Please save this source code
User prompt
butonların arkasındaki backgroundu sil
User prompt
background içerisindeki butonların arasına mesafe koy ve boyutlarını 1.3x büyüt
User prompt
tab handle butonu ekranın sağına yapışık olsun ve basıldığında backgroundla birlikte hareket etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
background handle butonuna bastığımızda sağdan sola kayarak gelir ve tekrar basıldığında soldan sağa doğru kayarak kaybolur şekilde yap onun dışında gözükmesin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
tab handle background un sol tarafına yapışık olsun
User prompt
backgroun üzerindeki butonların arasına boşluk koy ve background üzerine bağlı yap
User prompt
butonları backgrounda göre ayarla
User prompt
butonların arasındaki boşluğu arttır
User prompt
butonların arasına mesafeler koy
User prompt
butonların assetlerini yüklediğim şekilde ekle
User prompt
Place the STREET CORNER, MARKET, HOTEL, and STUDIO buttons vertically inside a collapsible window on the right side of the screen.
User prompt
ekranın altındaki butonları ekranın sağ tarafına açılır kapanır bir sekme ile ekle ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Delete the STREET CORNER, MARKET, HOTEL, and STUDIO buttons on the right side of the screen.
User prompt
ekranın altındaki street corner, market, hotel, studio butonlarını ekranın sağ tarafındaki butonların yerine yerleştir ve eskileri sil
User prompt
street corner, market, hotel, studio. Bu butonların arasına mesafe koy ve butonları aktifleştir street cornere bastığımız zaman ana ekrana yani şuan ki ekrana gelecek, markete bastığımız zaman başka bir market ekranına gideceğiz, otel ve stüdyo için de aynısı
User prompt
food , water, health, mood , sleep barlarını kutu kutu yap yüzde olarak yazma
User prompt
food , water, health, mood , sleep barlarını yan yana diz yazılarını altına yaz
User prompt
fix the all buttons assets and button açıklamasını üstlerine yaz yazıyı kalınlaştırıp büyült
User prompt
fix eat button assets
User prompt
müzisyeni ekranın altına koy
User prompt
müzisyen parçalarını birleştir
User prompt
musician için body parts ekle
Code edit (1 edits merged)
Please save this source code
User prompt
street corner, market, hotel, studio alt alta ekranın sağ tarafında olsun
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var ActionButton = Container.expand(function (text, action) {
var self = Container.call(this);
var button = self.attachAsset('performButton', {
anchorX: 0.5,
anchorY: 0.5
});
var buttonText = new Text2(text, {
size: 28,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
buttonText.x = 0;
buttonText.y = 0;
self.addChild(buttonText);
self.action = action;
self.down = function (x, y, obj) {
if (self.action) {
self.action();
}
};
return self;
});
var Location = Container.expand(function (type, name, earningMultiplier, cost) {
var self = Container.call(this);
self.type = type;
self.name = name;
self.earningMultiplier = earningMultiplier;
self.cost = cost;
self.unlocked = type === 'street';
var locationGraphics = self.attachAsset(type, {
anchorX: 0.5,
anchorY: 0.5
});
var nameText = new Text2(name, {
size: 24,
fill: 0xFFFFFF
});
nameText.anchor.set(0.5, 0);
nameText.x = 0;
nameText.y = locationGraphics.height / 2 + 10;
self.addChild(nameText);
self.down = function (x, y, obj) {
if (self.unlocked) {
selectLocation(self);
}
};
return self;
});
var Musician = Container.expand(function () {
var self = Container.call(this);
var body = self.attachAsset('musicianBody', {
anchorX: 0.5,
anchorY: -4.8
});
// Add head
var head = self.attachAsset('musicianHead', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: -200
});
// Add left arm
var leftArm = self.attachAsset('musicianArm', {
anchorX: 0.5,
anchorY: 0,
x: -60,
y: -120
});
// Add right arm
var rightArm = self.attachAsset('musicianArm', {
anchorX: 0.5,
anchorY: 0,
x: 60,
y: -120
});
// Add left leg
var leftLeg = self.attachAsset('musicianLeg', {
anchorX: 0.5,
anchorY: 0,
x: -25,
y: 160
});
// Add right leg
var rightLeg = self.attachAsset('musicianLeg', {
anchorX: 0.5,
anchorY: 0,
x: 25,
y: 160
});
var guitar = self.attachAsset('guitar', {
anchorX: -0.8,
anchorY: -5.5,
x: 30,
y: -50
});
self.perform = function () {
// Animate guitar
tween(guitar, {
rotation: 0.2
}, {
duration: 200,
onFinish: function onFinish() {
tween(guitar, {
rotation: -0.2
}, {
duration: 200,
onFinish: function onFinish() {
tween(guitar, {
rotation: 0
}, {
duration: 200
});
}
});
}
});
// Animate right arm (strumming)
tween(rightArm, {
rotation: 0.3
}, {
duration: 200,
onFinish: function onFinish() {
tween(rightArm, {
rotation: -0.3
}, {
duration: 200,
onFinish: function onFinish() {
tween(rightArm, {
rotation: 0
}, {
duration: 200
});
}
});
}
});
// Animate left arm slightly
tween(leftArm, {
rotation: -0.1
}, {
duration: 600,
onFinish: function onFinish() {
tween(leftArm, {
rotation: 0
}, {
duration: 200
});
}
});
LK.getSound('guitarStrum').play();
};
return self;
});
var ResourceBar = Container.expand(function (label, color, maxValue) {
var self = Container.call(this);
self.maxValue = maxValue;
self.currentValue = maxValue;
var bg = self.attachAsset('resourceBg', {
anchorX: 0,
anchorY: 0
});
var bar = self.attachAsset('resourceBar', {
anchorX: 0,
anchorY: 0,
x: 2,
y: 2
});
bar.tint = color;
self.bar = bar;
var labelText = new Text2(label, {
size: 20,
fill: 0xFFFFFF
});
labelText.anchor.set(0, 0.5);
labelText.x = -80;
labelText.y = 17;
self.addChild(labelText);
var valueText = new Text2('100%', {
size: 18,
fill: 0xFFFFFF
});
valueText.anchor.set(0.5, 0.5);
valueText.x = 152;
valueText.y = 17;
self.addChild(valueText);
self.valueText = valueText;
self.updateBar = function () {
var percentage = Math.max(0, self.currentValue / self.maxValue);
self.bar.width = 300 * percentage;
self.valueText.setText(Math.round(percentage * 100) + '%');
if (percentage < 0.3) {
self.bar.tint = 0xFF0000;
} else if (percentage < 0.6) {
self.bar.tint = 0xFFFF00;
} else {
self.bar.tint = color;
}
};
self.setValue = function (value) {
self.currentValue = Math.max(0, Math.min(self.maxValue, value));
self.updateBar();
};
self.addValue = function (amount) {
self.setValue(self.currentValue + amount);
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
// Game state variables
var currentDay = 1;
var money = 10;
var followers = 0;
var concerts = 0;
var musicSkill = 10;
var equipmentLevel = 1;
var socialMediaUnlocked = false;
// Resources
var foodLevel = 100;
var waterLevel = 100;
var healthLevel = 100;
var moodLevel = 80;
var sleepLevel = 80;
// Game state
var currentLocation = null;
var gamePhase = 'playing'; // 'playing', 'gameOver', 'won'
var lastPerformanceTime = 0;
var policeRisk = 0;
// UI Elements
var dayText = new Text2('Day 1', {
size: 40,
fill: 0x000000
});
dayText.anchor.set(0.5, 0);
LK.gui.top.addChild(dayText);
var moneyText = new Text2('$10', {
size: 30,
fill: 0x000000
});
moneyText.anchor.set(1, 0);
moneyText.x = -20;
moneyText.y = 60;
LK.gui.topRight.addChild(moneyText);
var followersText = new Text2('Followers: 0', {
size: 25,
fill: 0x000000
});
followersText.anchor.set(0, 0);
followersText.x = 20;
followersText.y = 60;
LK.gui.topLeft.addChild(followersText);
// Create resource bars
var foodBar = new ResourceBar('Food', 0x32CD32, 100);
foodBar.x = 1024;
foodBar.y = 150;
game.addChild(foodBar);
var waterBar = new ResourceBar('Water', 0x1E90FF, 100);
waterBar.x = 1024;
waterBar.y = 200;
game.addChild(waterBar);
var healthBar = new ResourceBar('Health', 0xFF6347, 100);
healthBar.x = 1024;
healthBar.y = 250;
game.addChild(healthBar);
var moodBar = new ResourceBar('Mood', 0xFFD700, 100);
moodBar.x = 1024;
moodBar.y = 300;
game.addChild(moodBar);
var sleepBar = new ResourceBar('Sleep', 0x9370DB, 100);
sleepBar.x = 1024;
sleepBar.y = 350;
game.addChild(sleepBar);
// Create locations
var locations = [];
var streetCorner = new Location('streetCorner', 'Street Corner', 1.0, 0);
streetCorner.x = 1750;
streetCorner.y = 400;
locations.push(streetCorner);
game.addChild(streetCorner);
var market = new Location('market', 'Market', 1.5, 5);
market.x = 1750;
market.y = 600;
locations.push(market);
game.addChild(market);
var hotel = new Location('hotel', 'Hotel', 2.0, 15);
hotel.x = 1750;
hotel.y = 800;
locations.push(hotel);
game.addChild(hotel);
var studio = new Location('studio', 'Studio', 3.0, 50);
studio.x = 1750;
studio.y = 1000;
locations.push(studio);
game.addChild(studio);
// Create musician
var musician = new Musician();
musician.x = 1024; // Center horizontally (2048/2)
musician.y = 650; // Fixed position at bottom center
game.addChild(musician);
// Create action buttons
var performButton = new ActionButton('Perform ($' + (currentLocation ? currentLocation.cost : 0) + ')', function () {
if (currentLocation && money >= currentLocation.cost) {
performMusic();
}
});
performButton.x = 250;
performButton.y = 800;
game.addChild(performButton);
var eatButton = new ActionButton('Eat ($5)', function () {
if (money >= 5) {
money -= 5;
foodLevel = Math.min(100, foodLevel + 30);
moodLevel = Math.min(100, moodLevel + 10);
updateDisplay();
}
});
eatButton.x = 550;
eatButton.y = 800;
game.addChild(eatButton);
var drinkButton = new ActionButton('Drink ($2)', function () {
if (money >= 2) {
money -= 2;
waterLevel = Math.min(100, waterLevel + 40);
updateDisplay();
}
});
drinkButton.x = 850;
drinkButton.y = 800;
game.addChild(drinkButton);
var sleepButton = new ActionButton('Sleep ($10)', function () {
if (money >= 10) {
money -= 10;
sleepLevel = Math.min(100, sleepLevel + 60);
healthLevel = Math.min(100, healthLevel + 10);
moodLevel = Math.min(100, moodLevel + 15);
updateDisplay();
}
});
sleepButton.x = 1150;
sleepButton.y = 800;
game.addChild(sleepButton);
var nextDayButton = new ActionButton('Next Day', function () {
nextDay();
});
nextDayButton.x = 1450;
nextDayButton.y = 800;
game.addChild(nextDayButton);
// Set initial location
currentLocation = streetCorner;
selectLocation(streetCorner);
function selectLocation(location) {
if (!location.unlocked) {
return;
}
currentLocation = location;
// Update perform button cost
var buttonText = performButton.children[1];
buttonText.setText('Perform ($' + location.cost + ')');
// Visual feedback
for (var i = 0; i < locations.length; i++) {
locations[i].alpha = locations[i] === location ? 1.0 : 0.7;
}
}
function performMusic() {
if (currentLocation && money >= currentLocation.cost && sleepLevel > 20) {
money -= currentLocation.cost;
// Calculate performance quality
var performance = calculatePerformance();
var earnings = Math.floor(performance * currentLocation.earningMultiplier * (5 + Math.random() * 15));
money += earnings;
musicSkill += 1;
sleepLevel = Math.max(0, sleepLevel - 15);
moodLevel = Math.min(100, moodLevel + 5);
// Police encounter chance
if (currentLocation.type === 'streetCorner' && Math.random() < 0.15) {
policeEncounter();
}
// Social media followers (after day 10)
if (currentDay >= 10 && !socialMediaUnlocked) {
socialMediaUnlocked = true;
}
if (socialMediaUnlocked && performance > 0.7) {
var newFollowers = Math.floor(performance * 10 * currentLocation.earningMultiplier);
followers += newFollowers;
}
musician.perform();
LK.getSound('coinDrop').play();
// Show earnings
showEarnings(earnings);
updateDisplay();
checkWinConditions();
}
}
function calculatePerformance() {
var base = musicSkill / 100;
var moodBonus = moodLevel / 100 * 0.3;
var sleepBonus = sleepLevel / 100 * 0.2;
var equipmentBonus = equipmentLevel * 0.1;
return Math.min(1.0, base + moodBonus + sleepBonus + equipmentBonus);
}
function policeEncounter() {
LK.getSound('policeSiren').play();
var officer = game.addChild(LK.getAsset('policeOfficer', {
anchorX: 0.5,
anchorY: 1,
x: musician.x + 100,
y: musician.y
}));
var fine = Math.floor(5 + Math.random() * 15);
money = Math.max(0, money - fine);
moodLevel = Math.max(0, moodLevel - 20);
LK.setTimeout(function () {
officer.destroy();
}, 2000);
updateDisplay();
}
function showEarnings(amount) {
var earningsText = new Text2('+$' + amount, {
size: 30,
fill: 0x00FF00
});
earningsText.anchor.set(0.5, 0.5);
earningsText.x = musician.x;
earningsText.y = musician.y - 150;
game.addChild(earningsText);
tween(earningsText, {
y: earningsText.y - 50,
alpha: 0
}, {
duration: 1500,
onFinish: function onFinish() {
earningsText.destroy();
}
});
}
function nextDay() {
currentDay++;
// Daily resource drain
foodLevel = Math.max(0, foodLevel - 10);
waterLevel = Math.max(0, waterLevel - 10);
// Health effects
if (foodLevel < 20) {
healthLevel = Math.max(0, healthLevel - 15);
moodLevel = Math.max(0, moodLevel - 10);
}
if (waterLevel < 20) {
healthLevel = Math.max(0, healthLevel - 10);
}
if (sleepLevel < 30) {
healthLevel = Math.max(0, healthLevel - 5);
moodLevel = Math.max(0, moodLevel - 15);
}
// Unlock locations based on progress
if (currentDay >= 5 && !market.unlocked) {
market.unlocked = true;
market.alpha = 1.0;
}
if (currentDay >= 10 && musicSkill >= 50 && !hotel.unlocked) {
hotel.unlocked = true;
hotel.alpha = 1.0;
}
if (currentDay >= 15 && followers >= 100 && !studio.unlocked) {
studio.unlocked = true;
studio.alpha = 1.0;
}
// Random events
if (Math.random() < 0.2) {
randomEvent();
}
updateDisplay();
checkGameOver();
checkWinConditions();
}
function randomEvent() {
var events = [{
text: "A generous fan gave you $20!",
effect: function effect() {
money += 20;
}
}, {
text: "Rain ruined your guitar strings. -$10",
effect: function effect() {
money = Math.max(0, money - 10);
}
}, {
text: "You met a music producer!",
effect: function effect() {
if (musicSkill >= 70) {
concerts++;
money += 100;
}
}
}];
var event = events[Math.floor(Math.random() * events.length)];
event.effect();
var eventText = new Text2(event.text, {
size: 25,
fill: 0xFFFF00
});
eventText.anchor.set(0.5, 0.5);
eventText.x = 1024;
eventText.y = 1000;
game.addChild(eventText);
tween(eventText, {
alpha: 0
}, {
duration: 3000,
onFinish: function onFinish() {
eventText.destroy();
}
});
}
function updateDisplay() {
dayText.setText('Day ' + currentDay);
moneyText.setText('$' + money);
followersText.setText('Followers: ' + followers);
foodBar.setValue(foodLevel);
waterBar.setValue(waterLevel);
healthBar.setValue(healthLevel);
moodBar.setValue(moodLevel);
sleepBar.setValue(sleepLevel);
}
function checkGameOver() {
if (healthLevel <= 0) {
gamePhase = 'gameOver';
LK.showGameOver();
} else if (moodLevel <= 0) {
gamePhase = 'gameOver';
LK.showGameOver();
} else if (currentDay > 30) {
if (concerts < 3 || followers < 1000) {
gamePhase = 'gameOver';
LK.showGameOver();
}
}
}
function checkWinConditions() {
if (concerts >= 3 && followers >= 1000 && currentDay <= 30) {
gamePhase = 'won';
LK.showYouWin();
}
}
// Initialize display
updateDisplay();
game.update = function () {
// Game runs at 60fps, update logic here if needed
}; ===================================================================
--- original.js
+++ change.js
@@ -60,15 +60,51 @@
var body = self.attachAsset('musicianBody', {
anchorX: 0.5,
anchorY: -4.8
});
+ // Add head
+ var head = self.attachAsset('musicianHead', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 0,
+ y: -200
+ });
+ // Add left arm
+ var leftArm = self.attachAsset('musicianArm', {
+ anchorX: 0.5,
+ anchorY: 0,
+ x: -60,
+ y: -120
+ });
+ // Add right arm
+ var rightArm = self.attachAsset('musicianArm', {
+ anchorX: 0.5,
+ anchorY: 0,
+ x: 60,
+ y: -120
+ });
+ // Add left leg
+ var leftLeg = self.attachAsset('musicianLeg', {
+ anchorX: 0.5,
+ anchorY: 0,
+ x: -25,
+ y: 160
+ });
+ // Add right leg
+ var rightLeg = self.attachAsset('musicianLeg', {
+ anchorX: 0.5,
+ anchorY: 0,
+ x: 25,
+ y: 160
+ });
var guitar = self.attachAsset('guitar', {
anchorX: -0.8,
- anchorY: -7.5,
+ anchorY: -5.5,
x: 30,
y: -50
});
self.perform = function () {
+ // Animate guitar
tween(guitar, {
rotation: 0.2
}, {
duration: 200,
@@ -86,8 +122,41 @@
}
});
}
});
+ // Animate right arm (strumming)
+ tween(rightArm, {
+ rotation: 0.3
+ }, {
+ duration: 200,
+ onFinish: function onFinish() {
+ tween(rightArm, {
+ rotation: -0.3
+ }, {
+ duration: 200,
+ onFinish: function onFinish() {
+ tween(rightArm, {
+ rotation: 0
+ }, {
+ duration: 200
+ });
+ }
+ });
+ }
+ });
+ // Animate left arm slightly
+ tween(leftArm, {
+ rotation: -0.1
+ }, {
+ duration: 600,
+ onFinish: function onFinish() {
+ tween(leftArm, {
+ rotation: 0
+ }, {
+ duration: 200
+ });
+ }
+ });
LK.getSound('guitarStrum').play();
};
return self;
});
pixel yatak. In-Game asset. 2d. High contrast. No shadows
pixel
Market pixel. In-Game asset. 2d. High contrast. No shadows
hotel pixel. In-Game asset. 2d. High contrast. No shadows
sokak lambası kaldırım ve bank pixel. In-Game asset. 2d. High contrast. No shadows
Music studio pixel. In-Game asset. 2d. High contrast. No shadows
water pixel. In-Game asset. 2d. High contrast. No shadows
Navigation pixel. In-Game asset. 2d. High contrast. No shadows
pixel phone frame. In-Game asset. 2d. High contrast. No shadows
street lamp pixel. In-Game asset. 2d. High contrast. No shadows
make pixels
sitting bench pixels. In-Game asset. 2d. High contrast. No shadows
clock face. no clock hour stick and minute stick only the clock face In-Game asset. 2d. High contrast. No shadows
DİRTY AND BROKE guitar pixel. dik dursun In-Game asset. 2d. High contrast. No shadows
same picture but night
same picture but morning
same picture noon time pixel
police officer pixel. detaylı surat full body In-Game asset. 2d. High contrast. No shadows
same picture but evening