User prompt
ajoute des messages drôles qui font rire a chaque réponse mauvaise ou bonne
User prompt
Ajoute 5 autres nouveaux légumes
User prompt
Ajoute de nouveaux lé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 légume juger correctement, et perdre 1 Legpot a chaque légume mal juger
User prompt
Déplace tout ça en haut au centre de l'écran du jeu
User prompt
Affiche le nombre restants de Legpot avant le niveau supérieur juste en bas du texte indiquant le niveau, le tout doit être placé en haut au centre du jeu
User prompt
Affiche le nombre restants de Legpot avant le niveau supérieur juste en bas du texte indiquant le niveau, le tout doit être au centre du jeu
User prompt
Affiche le nombre restants de Legpot avant le niveau supé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 posséder juste en bas
User prompt
Déplace le niveau actuel du joueur, et le nombre de Legpot possé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 être affiché en haut au centre du jeu
User prompt
Le nombre de Legpot , le niveau actuel du jeu etc doit être affiché au centre en haut du jeu
Code edit (1 edits merged)
Please save this source code
User prompt
Tribunal des légumes
Initial prompt
Crée le jeu "Tribunal des légumes", le but de ce jeu est de gérer le tribunal des légumes (oui, oui je suis totalement dingue), de recevoir des plaintes de légumes et de décider de leurs sanctions pénales, Voilà comment doit être présente le jeu et comment le joueur peut y jouer etc... : Le fond d'écran du jeu doit être rouge, L'écran du jeu représente la salle de jugement des légumes , il y a un grand siège , avec un micro pour parler (comme dans les tribunaux classiques d'humains), et des petits sièges dispersés un peu partout sur lesquels les différents légumes s'assoient (J'ajouterai moi même les assets de légumes, et de siège ainsi que de micro), Le jeu se déroule ainsi : des légumes sont accusés de crimes ridicules (a toi de générer), sur le jeu, le joueur doit appuyer sur le boutton bleu avec texte blanc "Prendre la plainte", pour lire de quoi est accusé le legume en question, et de quel legume il s'agit, Puis, un boutton jaune avec texte noir "Choisir la peine", apparaît et est disponible des que le joueur a fermer l'écran et lu la plainte, Le joueur peut alors décider de la peine qu'il donne au légume en question, Entre différentes peines ridicules et adaptés aux légumes, mais attention, la peine doit être adaptée à la nature du légume et à sa faute, Sinon le joueur perd des Legpot (système de points dans le jeu qui sert a monter en niveau), Si la peine est adapté, le joueur gagne 1 Legpot, Si la peine est inadapté il perd 1 Legpot, Il doit y avoir un système de niveaux : pour atteindre le niveau 2, le joueur doit accumulé 4 Legpot, Et le nombre de Legpot requis pour le niveau suivant double a chaque nouveau niveau par rapport au niveau précédent, si le joueur perd trop de Legpot, il ré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 var legpotTxt = new Text2('', { size: 70, fill: 0x228B22 }); 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); // 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() { 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; } // 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
@@ -1,6 +1,284 @@
-/****
+/****
+* 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: 0x000000
-});
\ No newline at end of file
+ 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
+var legpotTxt = new Text2('', {
+ size: 70,
+ fill: 0x228B22
+});
+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);
+// 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() {
+ 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;
+}
+// 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
+};
\ No newline at end of file
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