User prompt
ajoute des messages droÌles qui font rire a chaque reÌponse mauvaise ou bonne
User prompt
Ajoute 5 autres nouveaux leÌgumes
User prompt
Ajoute de nouveaux leÌgumes
User prompt
Ajoute une musique de fond en boucle au jeu
User prompt
Attention, le joueur ne doit gagner que 1 Legpot a chaque leÌgume juger correctement, et perdre 1 Legpot a chaque leÌgume mal juger
User prompt
DeÌplace tout ça en haut au centre de l'eÌcran du jeu
User prompt
Affiche le nombre restants de Legpot avant le niveau supeÌrieur juste en bas du texte indiquant le niveau, le tout doit eÌtre placeÌ en haut au centre du jeu
User prompt
Affiche le nombre restants de Legpot avant le niveau supeÌrieur juste en bas du texte indiquant le niveau, le tout doit eÌtre au centre du jeu
User prompt
Affiche le nombre restants de Legpot avant le niveau supeÌrieur juste en bas du texte indiquant le niveau
User prompt
Affiche le nombre de Legpot restants avant le niveau suivant sous le texte indiquant le niveau du joueur, et le nombre de Legpot posseÌder juste en bas
User prompt
DeÌplace le niveau actuel du joueur, et le nombre de Legpot posseÌder ainsi que le nombre de Legpot restants avant le niveau suivant en haut au centre du jeu
User prompt
Le nombre de Legpot , le niveau actuel du jeu etc doit eÌtre afficheÌ en haut au centre du jeu
User prompt
Le nombre de Legpot , le niveau actuel du jeu etc doit eÌtre afficheÌ au centre en haut du jeu
Code edit (1 edits merged)
Please save this source code
User prompt
Tribunal des leÌgumes
Initial prompt
CreÌe le jeu "Tribunal des leÌgumes", le but de ce jeu est de geÌrer le tribunal des leÌgumes (oui, oui je suis totalement dingue), de recevoir des plaintes de leÌgumes et de deÌcider de leurs sanctions peÌnales, VoilaÌ comment doit eÌtre preÌsente le jeu et comment le joueur peut y jouer etc... : Le fond d'eÌcran du jeu doit eÌtre rouge, L'eÌcran du jeu repreÌsente la salle de jugement des leÌgumes , il y a un grand sieÌge , avec un micro pour parler (comme dans les tribunaux classiques d'humains), et des petits sieÌges disperseÌs un peu partout sur lesquels les diffeÌrents leÌgumes s'assoient (J'ajouterai moi meÌme les assets de leÌgumes, et de sieÌge ainsi que de micro), Le jeu se deÌroule ainsi : des leÌgumes sont accuseÌs de crimes ridicules (a toi de geÌneÌrer), sur le jeu, le joueur doit appuyer sur le boutton bleu avec texte blanc "Prendre la plainte", pour lire de quoi est accuseÌ le legume en question, et de quel legume il s'agit, Puis, un boutton jaune avec texte noir "Choisir la peine", apparaiÌt et est disponible des que le joueur a fermer l'eÌcran et lu la plainte, Le joueur peut alors deÌcider de la peine qu'il donne au leÌgume en question, Entre diffeÌrentes peines ridicules et adapteÌs aux leÌgumes, mais attention, la peine doit eÌtre adapteÌe aÌ la nature du leÌgume et aÌ sa faute, Sinon le joueur perd des Legpot (systeÌme de points dans le jeu qui sert a monter en niveau), Si la peine est adapteÌ, le joueur gagne 1 Legpot, Si la peine est inadapteÌ il perd 1 Legpot, Il doit y avoir un systeÌme de niveaux : pour atteindre le niveau 2, le joueur doit accumuleÌ 4 Legpot, Et le nombre de Legpot requis pour le niveau suivant double a chaque nouveau niveau par rapport au niveau preÌceÌdent, si le joueur perd trop de Legpot, il reÌgresse de niveau Le jeu doit avoir 67 niveaux
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { legpot: 0, level: 1 }); /**** * Classes ****/ // Bouton de peine var PunishmentButton = Container.expand(function () { var self = Container.call(this); self.punishId = null; self.text = null; self.icon = null; self.callback = null; self.init = function (punishId, label, iconId, callback) { self.punishId = punishId; self.removeChildren(); self.icon = self.attachAsset(iconId, { anchorX: 0.5, anchorY: 0.5 }); self.icon.y = 0; self.text = new Text2(label, { size: 60, fill: "#222" }); self.text.anchor.set(0.5, 0); self.text.y = self.icon.height / 2 + 10; self.addChild(self.text); self.callback = callback; }; self.down = function (x, y, obj) { if (self.callback) self.callback(self.punishId); }; return self; }); // LĂ©gume Ă juger var Vegetable = Container.expand(function () { var self = Container.call(this); self.vegType = null; // 'carrot', 'broccoli', etc. self.setType = function (type) { self.vegType = type; self.removeChildren(); var vegAsset = self.attachAsset(type, { anchorX: 0.5, anchorY: 1 }); vegAsset.y = 0; // Ajoute une perruque de juge pour le fun var wig = self.attachAsset('judgeWig', { anchorX: 0.5, anchorY: 1 }); wig.y = -vegAsset.height + 60; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xf7f7e0 }); /**** * Game Code ****/ // Son (MVP: pas de son pour lâinstant) // Peines (icĂŽnes simples) // LĂ©gumes (formes simples pour MVP) // --- DonnĂ©es du jeu --- // Liste de lĂ©gumes et de plaintes absurdes var vegetables = [{ type: 'carrot', name: 'Carotte' }, { type: 'broccoli', name: 'Brocoli' }, { type: 'eggplant', name: 'Aubergine' }, { type: 'tomato', name: 'Tomate' }, { type: 'potato', name: 'Pomme de terre' }, { type: 'onion', name: 'Oignon' }]; var complaints = [ // Format: {vegType, text, correctPunish} { vegType: 'carrot', text: "La carotte a tentĂ© de se cacher dans le gĂąteau aux carottes.", correctPunish: 'peel' }, { vegType: 'broccoli', text: "Le brocoli a effrayĂ© des enfants Ă la cantine.", correctPunish: 'fridge' }, { vegType: 'eggplant', text: "Lâaubergine a usurpĂ© lâidentitĂ© dâune courgette.", correctPunish: 'compost' }, { vegType: 'tomato', text: "La tomate sâest prise pour un fruit et a semĂ© la zizanie.", correctPunish: 'soup' }, { vegType: 'potato', text: "La pomme de terre a refusĂ© dâĂȘtre Ă©pluchĂ©e.", correctPunish: 'peel' }, { vegType: 'onion', text: "Lâoignon a fait pleurer tout le tribunal.", correctPunish: 'fridge' }, { vegType: 'carrot', text: "La carotte a tentĂ© de bronzer au soleil du frigo.", correctPunish: 'fridge' }, { vegType: 'broccoli', text: "Le brocoli a organisĂ© une manifestation contre la cuisson Ă la vapeur.", correctPunish: 'compost' }, { vegType: 'eggplant', text: "Lâaubergine a tentĂ© de repeindre le tribunal en violet.", correctPunish: 'compost' }, { vegType: 'tomato', text: "La tomate a Ă©claboussĂ© le juge lors de son entrĂ©e.", correctPunish: 'soup' }, { vegType: 'potato', text: "La pomme de terre a tentĂ© de rouler hors du tribunal.", correctPunish: 'peel' }, { vegType: 'onion', text: "Lâoignon a tentĂ© de se dĂ©guiser en ail.", correctPunish: 'compost' }]; // Peines disponibles var punishments = [{ id: 'soup', label: 'Soupe', icon: 'punishSoup' }, { id: 'compost', label: 'Compost', icon: 'punishCompost' }, { id: 'peel', label: 'Ăpluchage', icon: 'punishPeel' }, { id: 'fridge', label: 'Frigo', icon: 'punishFridge' }]; // Progression var level = storage.level || 1; var legpot = storage.legpot || 0; var requiredLegpot = function requiredLegpot(lvl) { return Math.pow(2, lvl - 1) * 10; }; // 10, 20, 40, 80, ... // ĂlĂ©ments dâUI var vegNode = new Vegetable(); vegNode.x = 2048 / 2; vegNode.y = 1100; game.addChild(vegNode); var complaintText = new Text2('', { size: 80, fill: "#333", wordWrap: true, wordWrapWidth: 1800 }); complaintText.anchor.set(0.5, 0); complaintText.x = 2048 / 2; complaintText.y = 300; game.addChild(complaintText); // Affichage Legpot et niveau (fusionnĂ© en une seule ligne centrĂ©e) var statusTxt = new Text2('', { size: 80, fill: 0x8B4513, fontWeight: "bold" }); statusTxt.anchor.set(0.5, 0); LK.gui.top.addChild(statusTxt); // Boutons de peines var punishButtons = []; var punishButtonY = 2000; var punishButtonSpacing = 450; for (var i = 0; i < punishments.length; i++) { var btn = new PunishmentButton(); btn.init(punishments[i].id, punishments[i].label, punishments[i].icon, onPunishSelected); btn.x = 2048 / 2 + (i - 1.5) * punishButtonSpacing; btn.y = punishButtonY; game.addChild(btn); punishButtons.push(btn); } // --- Logique du jeu --- var currentComplaint = null; var canJudge = true; // SĂ©lectionne une plainte alĂ©atoire pour le niveau courant function pickComplaint() { var idx = Math.floor(Math.random() * complaints.length); currentComplaint = complaints[idx]; vegNode.setType(currentComplaint.vegType); complaintText.setText(currentComplaint.text); canJudge = true; } // Met Ă jour lâaffichage du score et du niveau function updateUI() { statusTxt.setText("Legpot: " + legpot + " / " + requiredLegpot(level) + " | Niveau: " + level + " / 67"); statusTxt.x = 2048 / 2; statusTxt.y = 20; } // GĂšre la sĂ©lection dâune peine function onPunishSelected(punishId) { if (!canJudge) return; canJudge = false; var correct = punishId === currentComplaint.correctPunish; if (correct) { // Animation de fĂ©licitations LK.effects.flashObject(vegNode, 0x83de44, 600); legpot += 10; // Passage de niveau si assez de Legpot if (legpot >= requiredLegpot(level)) { level++; legpot = 0; LK.effects.flashScreen(0x83de44, 800); LK.setTimeout(function () { LK.showYouWin(); }, 900); storage.level = level; storage.legpot = legpot; updateUI(); return; } } else { // Animation dâerreur LK.effects.flashObject(vegNode, 0xff0000, 600); legpot -= 10; if (legpot < 0) { // Recul de niveau si possible if (level > 1) { level--; legpot = requiredLegpot(level) - 10; LK.effects.flashScreen(0xff0000, 800); } else { legpot = 0; } } } storage.level = level; storage.legpot = legpot; updateUI(); // Nouvelle plainte aprĂšs dĂ©lai LK.setTimeout(function () { pickComplaint(); }, 900); } // Initialisation updateUI(); pickComplaint(); // --- Game Over/Win automatique par LK --- game.update = function () { // Rien Ă faire ici pour ce jeu };
===================================================================
--- original.js
+++ change.js
@@ -184,21 +184,16 @@
complaintText.anchor.set(0.5, 0);
complaintText.x = 2048 / 2;
complaintText.y = 300;
game.addChild(complaintText);
-// Affichage Legpot et niveau
-var legpotTxt = new Text2('', {
- size: 70,
- fill: 0x228B22
+// Affichage Legpot et niveau (fusionné en une seule ligne centrée)
+var statusTxt = new Text2('', {
+ size: 80,
+ fill: 0x8B4513,
+ fontWeight: "bold"
});
-legpotTxt.anchor.set(0.5, 0);
-LK.gui.top.addChild(legpotTxt);
-var levelTxt = new Text2('', {
- size: 70,
- fill: 0x8B4513
-});
-levelTxt.anchor.set(0.5, 0);
-LK.gui.top.addChild(levelTxt);
+statusTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(statusTxt);
// Boutons de peines
var punishButtons = [];
var punishButtonY = 2000;
var punishButtonSpacing = 450;
@@ -222,14 +217,11 @@
canJudge = true;
}
// Met Ă jour lâaffichage du score et du niveau
function updateUI() {
- legpotTxt.setText("Legpot: " + legpot + "/" + requiredLegpot(level));
- legpotTxt.x = 2048 / 2 - 300;
- legpotTxt.y = 20;
- levelTxt.setText("Niveau: " + level + "/67");
- levelTxt.x = 2048 / 2 + 300;
- levelTxt.y = 20;
+ statusTxt.setText("Legpot: " + legpot + " / " + requiredLegpot(level) + " | Niveau: " + level + " / 67");
+ statusTxt.x = 2048 / 2;
+ statusTxt.y = 20;
}
// GĂšre la sĂ©lection dâune peine
function onPunishSelected(punishId) {
if (!canJudge) return;
Brocolis. In-Game asset. 2d. High contrast. No shadows
Carrotte. In-Game asset. 2d. High contrast. No shadows
Obergine. In-Game asset. 2d. High contrast. No shadows
Tomate. In-Game asset. 2d. High contrast. No shadows
Patate. In-Game asset. 2d. High contrast. No shadows
Onion. In-Game asset. 2d. High contrast. No shadows
Casquette a l'envers. In-Game asset. 2d. High contrast. No shadows
Soupe. In-Game asset. 2d. High contrast. No shadows
Compote. In-Game asset. 2d. High contrast. No shadows
Pelage de legumes. In-Game asset. 2d. High contrast. No shadows
Frigo. In-Game asset. 2d. High contrast. No shadows
Radis. In-Game asset. 2d. High contrast. No shadows
Courgettes. In-Game asset. 2d. High contrast. No shadows
Poivre. In-Game asset. 2d. High contrast. No shadows
Comcombre. In-Game asset. 2d. High contrast. No shadows
poireau. In-Game asset. 2d. High contrast. No shadows
Navet. In-Game asset. 2d. High contrast. No shadows
Citrouille. In-Game asset. 2d. High contrast. No shadows