User prompt
Bajalo a 4
User prompt
Has que cuando presiones el botón la barra suba un poco menos de porcentaje
User prompt
Has que la interfaz sea más grande
User prompt
Has que baje 3 puntos por segundo
User prompt
Has que baje 10 puntos por segundo
User prompt
Has que el porcentaje que baje la barra por segundo sea más grande
User prompt
Has que las barras bajen más rápido el porcentaje
Code edit (1 edits merged)
Please save this source code
User prompt
Tamagochi Pet Care
Initial prompt
Crea un juego tipo tamagochi,hay 3 botones,cada uno con una barra que baja cada segundo,una es para darle de comer al tamagochi,otra para jugar con el y otra para que el duerma,si las 3 barras se acaban el tamagochi muere
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var CareButton = Container.expand(function (buttonType, color) {
var self = Container.call(this);
var buttonGraphics = self.attachAsset(buttonType + 'Button', {
anchorX: 0.5,
anchorY: 0.5
});
var buttonText = new Text2(buttonType.toUpperCase(), {
size: 48,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.down = function (x, y, obj) {
tween(buttonGraphics, {
scaleX: 0.9,
scaleY: 0.9
}, {
duration: 100
});
tween(buttonText, {
scaleX: 0.9,
scaleY: 0.9
}, {
duration: 100
});
};
self.up = function (x, y, obj) {
tween(buttonGraphics, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 100
});
tween(buttonText, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 100
});
if (buttonType === 'feed') {
pet.feed();
LK.getSound('feed').play();
} else if (buttonType === 'play') {
pet.play();
LK.getSound('play').play();
} else if (buttonType === 'sleep') {
pet.rest();
LK.getSound('sleep').play();
}
};
return self;
});
var MeterDisplay = Container.expand(function (meterType, color) {
var self = Container.call(this);
var meterBackground = self.attachAsset(meterType + 'Meter', {
anchorX: 0,
anchorY: 0.5,
alpha: 0.3
});
var meterFill = self.attachAsset(meterType + 'Meter', {
anchorX: 0,
anchorY: 0.5
});
self.updateMeter = function (value) {
var percentage = Math.max(0, value / 100);
meterFill.width = 600 * percentage;
// Change color based on level
if (value <= 20) {
meterFill.tint = 0xff0000; // Red
} else if (value <= 50) {
meterFill.tint = 0xff6600; // Orange
} else {
meterFill.tint = color; // Original color
}
};
return self;
});
var Tamagochi = Container.expand(function () {
var self = Container.call(this);
var petGraphics = self.attachAsset('pet', {
anchorX: 0.5,
anchorY: 0.5
});
self.hungerLevel = 100;
self.happinessLevel = 100;
self.energyLevel = 100;
self.update = function () {
// Decrease all meters gradually (about 3 points every 1 second at 60fps)
if (LK.ticks % 60 === 0) {
self.hungerLevel = Math.max(0, self.hungerLevel - 3);
self.happinessLevel = Math.max(0, self.happinessLevel - 3);
self.energyLevel = Math.max(0, self.energyLevel - 3);
}
// Change pet appearance based on lowest need
var lowestLevel = Math.min(self.hungerLevel, self.happinessLevel, self.energyLevel);
if (lowestLevel <= 20) {
petGraphics.tint = 0xff0000; // Red when critical
} else if (lowestLevel <= 50) {
petGraphics.tint = 0xffaa00; // Orange when low
} else {
petGraphics.tint = 0xffffff; // Normal color
}
// Animate pet slightly
if (LK.ticks % 180 === 0) {
tween(petGraphics, {
scaleX: 1.1,
scaleY: 1.1
}, {
duration: 300,
easing: tween.easeOut
});
}
if (LK.ticks % 180 === 30) {
tween(petGraphics, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 300,
easing: tween.easeOut
});
}
};
self.feed = function () {
self.hungerLevel = Math.min(100, self.hungerLevel + 15);
// Happy bounce animation
tween(petGraphics, {
scaleY: 1.3
}, {
duration: 200,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(petGraphics, {
scaleY: 1.0
}, {
duration: 200,
easing: tween.easeOut
});
}
});
};
self.play = function () {
self.happinessLevel = Math.min(100, self.happinessLevel + 15);
// Wiggle animation
tween(petGraphics, {
rotation: 0.2
}, {
duration: 100,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(petGraphics, {
rotation: -0.2
}, {
duration: 100,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(petGraphics, {
rotation: 0
}, {
duration: 100,
easing: tween.easeOut
});
}
});
}
});
};
self.rest = function () {
self.energyLevel = Math.min(100, self.energyLevel + 15);
// Gentle pulse animation
tween(petGraphics, {
alpha: 0.7
}, {
duration: 400,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(petGraphics, {
alpha: 1.0
}, {
duration: 400,
easing: tween.easeOut
});
}
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
var survivalTime = 0;
// Create pet
var pet = game.addChild(new Tamagochi());
pet.x = 2048 / 2;
pet.y = 800;
// Create meters
var hungerMeter = game.addChild(new MeterDisplay('hunger', 0x4CAF50));
hungerMeter.x = 824;
hungerMeter.y = 1200;
var happinessMeter = game.addChild(new MeterDisplay('happiness', 0x2196F3));
happinessMeter.x = 824;
happinessMeter.y = 1280;
var energyMeter = game.addChild(new MeterDisplay('energy', 0xFF9800));
energyMeter.x = 824;
energyMeter.y = 1360;
// Create meter labels
var hungerLabel = new Text2('HUNGER', {
size: 48,
fill: 0x333333
});
hungerLabel.anchor.set(1, 0.5);
hungerLabel.x = 800;
hungerLabel.y = 1200;
game.addChild(hungerLabel);
var happinessLabel = new Text2('HAPPY', {
size: 48,
fill: 0x333333
});
happinessLabel.anchor.set(1, 0.5);
happinessLabel.x = 800;
happinessLabel.y = 1280;
game.addChild(happinessLabel);
var energyLabel = new Text2('ENERGY', {
size: 48,
fill: 0x333333
});
energyLabel.anchor.set(1, 0.5);
energyLabel.x = 800;
energyLabel.y = 1360;
game.addChild(energyLabel);
// Create care buttons
var feedButton = game.addChild(new CareButton('feed', 0x4CAF50));
feedButton.x = 600;
feedButton.y = 1600;
var playButton = game.addChild(new CareButton('play', 0x2196F3));
playButton.x = 1024;
playButton.y = 1600;
var sleepButton = game.addChild(new CareButton('sleep', 0xFF9800));
sleepButton.x = 1448;
sleepButton.y = 1600;
// Score display
var scoreText = new Text2('Time: 0s', {
size: 64,
fill: 0xFFFFFF
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Pet name display
var petNameText = new Text2('MY TAMAGOCHI', {
size: 80,
fill: 0xFFFFFF
});
petNameText.anchor.set(0.5, 0.5);
petNameText.x = 2048 / 2;
petNameText.y = 400;
game.addChild(petNameText);
game.update = function () {
// Update survival time (increment every second)
if (LK.ticks % 60 === 0) {
survivalTime++;
LK.setScore(survivalTime);
scoreText.setText('Time: ' + survivalTime + 's');
}
// Update meter displays
hungerMeter.updateMeter(pet.hungerLevel);
happinessMeter.updateMeter(pet.happinessLevel);
energyMeter.updateMeter(pet.energyLevel);
// Check for game over
if (pet.hungerLevel <= 0 || pet.happinessLevel <= 0 || pet.energyLevel <= 0) {
LK.showGameOver();
}
}; ===================================================================
--- original.js
+++ change.js
@@ -128,9 +128,9 @@
});
}
};
self.feed = function () {
- self.hungerLevel = Math.min(100, self.hungerLevel + 25);
+ self.hungerLevel = Math.min(100, self.hungerLevel + 15);
// Happy bounce animation
tween(petGraphics, {
scaleY: 1.3
}, {
@@ -146,9 +146,9 @@
}
});
};
self.play = function () {
- self.happinessLevel = Math.min(100, self.happinessLevel + 25);
+ self.happinessLevel = Math.min(100, self.happinessLevel + 15);
// Wiggle animation
tween(petGraphics, {
rotation: 0.2
}, {
@@ -172,9 +172,9 @@
}
});
};
self.rest = function () {
- self.energyLevel = Math.min(100, self.energyLevel + 25);
+ self.energyLevel = Math.min(100, self.energyLevel + 15);
// Gentle pulse animation
tween(petGraphics, {
alpha: 0.7
}, {