User prompt
Fait en sorte que , lorsque le joueur a finis de collecter le nombre de fraises requis pour le niveau, il monte au niveau supérieur après qu'un écran avec le message de Charlotte se soit affiche, le joueur ferme l'écran en appuyant sur fermer
User prompt
Fait en sorte que , lorsque le joueur a finis de collecter le nombre de fraises requis pour le niveau, il monte au niveau supérieur après qu'un écran avec le message de Charlotte se soit affiche, le joueur ferme l'écran en appuyant sur fermer
User prompt
Ajoute ces fonctionnalités a Fraisy-plat : - nouveaux insectes parmis les ennemis : En plus des fourmi, et des scarabées déjà existants, Ajouter ces nouveaux insectes parmi les ennemis (le choix de l'insecte ennemis lors du combat est fait par le jeu de manière aléatoire) - guêpe rose : insecte ennemis possédant moins de points de vie que les autres insectes (aléatoirement entre 30 et 70 points de vie) mais la guêpe rose est capable d'invoquer une jumelle au combat (une autre guêpe rose), la jumelle de la guêpe rose, possède elle aussi le même nombre de points de vie que la guêpe rose ennemis originale, la jumelle de la guêpe rose peut apparaître aléatoirement quand il ne reste plus que moins de 30 points de vie a la guêpe original, La guêpe rose jumelle a le même nombre de points de vie originaux de la guêpe originale, Mais la guêpe rose originale n'invoque pas forcément a coup sûr tout le temps sa jumelle, la décision de si elle le fait ou pas est aléatoire , Si la guêpe rose jumelle apparaît, le joueur devra l'affronter de la même façon que la guêpe originale pour gagner le combat (Les dégâts par attaque restent la même que celle des autres insectes) - moustique : les moustiques possèdent aléatoirement entre 45 et 120 points de vie, leur force spéciale a eux, est le pompage de sang, cela se manifeste dans le jeu, par une capacité qui leur permet, des fois, de façon aléatoire de faire durer leur tour sur 2 attaques avant que le joueur puisse attaquer a son tour
User prompt
Ajoute une musique de fond en boucle au jeu
User prompt
Ajoute un système de boutique au jeu qui permet au joueur d'acheter des points de vie pour la petite fille, avec ses gf, Sans passer par le petit cœur de pause déjeuner, La boutique doit être accessible en appuyant sur un bouton rose "💖 Magasin" avec texte noir a l'écran, Voici les articles de la boutique : 1) crème chantilly (donne 40 points de vie a la petite fille, prix : 20 gf) 2) Yaourt a la fraise (donne 50 points de vie a la petite fille, prix : 30 gf) 3) Gâteau a la framboise (donne 30 points de vie a la petite fille, prix : 10 gf) 4) Mousse a la fraise (donne 40 points de vie a la petite fille, prix : 15 gf) 5) Tiramisu aux fraises (donne 60 ponts de vie a la petite fille, prix : 45 gf) le joueur peut acheter un article en appuyant sur un bouton "se servir", quand l'écran de la boutique s'ouvre! ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Ajoute un système de petit cœur de pause déjeuner qui permettent a la petite fille (le joueur), de récupérer des points de vie, un petit cœur de pause déjeuner apparaît aléatoirement sur un gâteau au fraise dès que la petite fille termine un combat avec moins de 30 points de vie, Et quand la petite fille entre en collision avec le cœur, elle récupère 30 % de ses points de vie originaux Mais attention, ce cadeau de points de vie a un coût, Le joueur doit payer 15 GF (monnaie du jeu que le joueur gagne : - en sautant sur des gâteaux sans fraise (1 GF a chaque gâteau sans fraise passé - en collectant des fraises (5 GF a chaque fraise collecter avec succès), - ou en passant au niveau supérieur (10 gf a chaque niveau passé) Le nombre de GF du joueur doit être compté et écrit a l'écran ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Je veux personnalisé le fond du jeu avec mon propre asset
User prompt
Le joueur doit collecter 5 fraises pour atteindre le niveau 2, Mais à chaque nouveau niveau , le nombre de fraises a collecté double pour atteindre le niveau supérieur par rapport au niveau inférieur ! ↪💡 Consider importing and using the following plugins: @upit/storage.v1
Code edit (1 edits merged)
Please save this source code
User prompt
Fraisy-plat
Initial prompt
Crée "Fraisy-plat" un jeu de plateforme mettant en scène des fraises voici la description et les mécaniques du jeu : Le joueur dirige une petite fille gourmande en sautant sur des gâteaux au fraise , le joueur doit collectionner le plus de fraises possibles apparaissant sur les gâteaux et les donnes a une autre petite fille nommée Charlotte se situant a l'autre bout de la plateforme, afin que charlotte puisse faire ses propres plats et gâteaux a base de fraises!, Charlotte demande de plus en plus de fraises fur a mesure que le niveau du joueur augmente pour faire ses plats et gâteaux! Mais attention, chaque fraise collecter sera un défi, le joueur devra combattre des insectes (des fourmis ou des scarabées), affamés et gagner le combat tour par tour, pour pouvoir collecter chaque fraise! voici les mécaniques de fonctionnement du jeu : Le joueur déplace sa petite fille sur les grands gâteaux aux fraises en appuyant avec son doigt sur chaque gâteaux, Des fraises apparaissent aléatoirement sur les gâteaux, A chaque collision avec une fraise, un insecte aléatoire (fourmi ou scarabée), avec aléatoirement 50 a 150 points de vies débarque , puis c'est un combat tour par tour, un écran de combat tour par tour s'affiche, le joueur doit appuyer sur le bouton rose attaquer quand c'est le tour de la petite fille, chaque attaque fait perdre a l'insecte aléatoirement entre 5 et 10 points de vies, Puis l'insecte quand c'est son tour, attaque automatiquement, et fait perdre aléatoirement entre 2 et 8 points de vie a la petite fille (la petite fille a 100 points de vies au début du combat), Si l'insecte gagne, le joueur recommence le jeu depuis le niveau 1, Si le joueur gagne la fraise est collectée, compter dans L'ui (avec texte indiquant le nombre de fraise collectées et le nombre de fraise restantes pour le niveau dans un endroit visible à l'écran) quand le joueur a collecté toutes les fraises requises pour le niveau, charlotte apparaît a l'écran, et le joueur doit entrer en collision avec elle pour lui donner les fraises et monter en niveau, un message s'affiche de la part de Charlotte "Merci Lola pour tes fraises! Je vais me faire un bon festin avec mes plats, maintenant j'en veux encore plus! Ca va être la fête!", quand le joueur appuie dessus, le message se retire Le joueur doit collecter 5 fraises pour atteindre le niveau 2, Mais à chaque nouveau niveau , le nombre de fraises a collecté double pour atteindre le niveau supérieur par rapport au niveau inférieur !
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var Cake = Container.expand(function () { var self = Container.call(this); var cakeGraphics = self.attachAsset('cake', { anchorX: 0.5, anchorY: 0.5 }); self.hasStrawberry = false; self.strawberryObj = null; self.hasHeart = false; self.heartObj = null; self.spawnStrawberry = function () { if (!self.hasStrawberry && Math.random() < 0.3) { self.hasStrawberry = true; self.strawberryObj = self.addChild(LK.getAsset('strawberry', { anchorX: 0.5, anchorY: 0.5, y: -50 })); } }; self.spawnHeart = function () { if (!self.hasHeart) { self.hasHeart = true; self.heartObj = self.addChild(LK.getAsset('heart', { anchorX: 0.5, anchorY: 0.5, y: -50 })); } }; self.removeStrawberry = function () { if (self.strawberryObj) { self.strawberryObj.destroy(); self.strawberryObj = null; self.hasStrawberry = false; } }; self.removeHeart = function () { if (self.heartObj) { self.heartObj.destroy(); self.heartObj = null; self.hasHeart = false; } }; self.down = function (x, y, obj) { if (!inCombat) { moveLola(self); } }; return self; }); var Charlotte = Container.expand(function () { var self = Container.call(this); var charlotteGraphics = self.attachAsset('charlotte', { anchorX: 0.5, anchorY: 0.5 }); return self; }); var Enemy = Container.expand(function (type) { var self = Container.call(this); var enemyGraphics = self.attachAsset(type, { anchorX: 0.5, anchorY: 0.5 }); self.type = type; // Set health based on enemy type if (type === 'pinkwasp') { self.health = Math.floor(Math.random() * 41) + 30; // 30-70 HP } else if (type === 'mosquito') { self.health = Math.floor(Math.random() * 76) + 45; // 45-120 HP } else { self.health = Math.floor(Math.random() * 101) + 50; // 50-150 HP } self.maxHealth = self.health; self.hasInvokedTwin = false; self.extraAttackTurn = false; self.attack = function () { return Math.floor(Math.random() * 7) + 2; // 2-8 damage }; return self; }); var Lola = Container.expand(function () { var self = Container.call(this); var lolaGraphics = self.attachAsset('lola', { anchorX: 0.5, anchorY: 0.5 }); self.health = 100; self.maxHealth = 100; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x98fb98 }); /**** * Game Code ****/ var lola; var charlotte; var cakes = []; var currentLevel = storage.currentLevel || 1; var strawberriesCollected = 0; var strawberriesNeeded = calculateStrawberriesNeeded(currentLevel); var inCombat = false; var combatScreen = null; var currentEnemy = null; var playerTurn = true; var gfCoins = storage.gfCoins || 0; var heartSpawned = false; var shopOpen = false; var shopScreen = null; function calculateStrawberriesNeeded(level) { if (level === 1) return 5; return Math.pow(2, level - 1) * 5; } // UI Elements var strawberryCounter = new Text2('Strawberries: 0/1', { size: 60, fill: 0x000000 }); strawberryCounter.anchor.set(0.5, 0); LK.gui.top.addChild(strawberryCounter); strawberryCounter.y = 100; var levelText = new Text2('Level 1', { size: 50, fill: 0x000000 }); levelText.anchor.set(1, 0); LK.gui.topRight.addChild(levelText); levelText.x = -50; levelText.y = 50; var gfCounter = new Text2('GF: 0', { size: 50, fill: 0x000000 }); gfCounter.anchor.set(0, 0); LK.gui.topLeft.addChild(gfCounter); gfCounter.x = 120; gfCounter.y = 50; // Shop button var shopButton = LK.gui.bottom.addChild(LK.getAsset('shopButton', { anchorX: 0.5, anchorY: 1, y: -50 })); var shopButtonText = new Text2('Magasin', { size: 40, fill: 0x000000 }); shopButtonText.anchor.set(0.5, 0.5); shopButton.addChild(shopButtonText); // Add custom background var gameBackground = game.addChild(LK.getAsset('gameBackground', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366 })); // Initialize Lola lola = game.addChild(new Lola()); lola.x = 1024; lola.y = 1800; // Create platform cakes var cakePositions = [{ x: 300, y: 2200 }, { x: 700, y: 1900 }, { x: 1100, y: 2000 }, { x: 1500, y: 1700 }, { x: 1800, y: 2100 }, { x: 400, y: 1600 }, { x: 1000, y: 1400 }, { x: 1600, y: 1500 }]; for (var i = 0; i < cakePositions.length; i++) { var cake = game.addChild(new Cake()); cake.x = cakePositions[i].x; cake.y = cakePositions[i].y; cakes.push(cake); } function moveLola(targetCake) { tween(lola, { x: targetCake.x, y: targetCake.y - 80 }, { duration: 500, easing: tween.easeOut, onFinish: function onFinish() { // Award 1 GF for jumping on cake without strawberry or heart if (!targetCake.hasStrawberry && !targetCake.hasHeart) { gfCoins += 1; storage.gfCoins = gfCoins; updateUI(); } checkStrawberryCollection(targetCake); checkHeartCollection(targetCake); } }); } function checkStrawberryCollection(cake) { if (cake.hasStrawberry) { cake.removeStrawberry(); startCombat(); } } function checkHeartCollection(cake) { if (cake.hasHeart) { // Check if player has enough GF if (gfCoins >= 15) { gfCoins -= 15; storage.gfCoins = gfCoins; // Heal 30% of max health var healAmount = Math.floor(lola.maxHealth * 0.3); lola.health = Math.min(lola.maxHealth, lola.health + healAmount); cake.removeHeart(); heartSpawned = false; updateUI(); } } } function startCombat() { inCombat = true; // Create combat background combatScreen = game.addChild(LK.getAsset('combatBackground', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, alpha: 0.9 })); // Create enemy var rand = Math.random(); var enemyType; if (rand < 0.25) { enemyType = 'ant'; } else if (rand < 0.5) { enemyType = 'beetle'; } else if (rand < 0.75) { enemyType = 'pinkwasp'; } else { enemyType = 'mosquito'; } currentEnemy = combatScreen.addChild(new Enemy(enemyType)); currentEnemy.x = 0; currentEnemy.y = -200; // Show Lola in combat var combatLola = combatScreen.addChild(LK.getAsset('lola', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 200 })); // Combat UI var enemyHealthText = new Text2('Enemy: ' + currentEnemy.health + '/' + currentEnemy.maxHealth, { size: 50, fill: 0x000000 }); enemyHealthText.anchor.set(0.5, 0.5); enemyHealthText.x = 0; enemyHealthText.y = -400; combatScreen.addChild(enemyHealthText); var lolaHealthText = new Text2('Lola: ' + lola.health + '/' + lola.maxHealth, { size: 50, fill: 0x000000 }); lolaHealthText.anchor.set(0.5, 0.5); lolaHealthText.x = 0; lolaHealthText.y = 400; combatScreen.addChild(lolaHealthText); var actionText = new Text2('Tap to Attack!', { size: 60, fill: 0xFF0000 }); actionText.anchor.set(0.5, 0.5); actionText.x = 0; actionText.y = 0; combatScreen.addChild(actionText); // Store references for updates combatScreen.enemyHealthText = enemyHealthText; combatScreen.lolaHealthText = lolaHealthText; combatScreen.actionText = actionText; playerTurn = true; } function playerAttack() { if (!playerTurn || !currentEnemy) return; var damage = Math.floor(Math.random() * 6) + 5; // 5-10 damage currentEnemy.health -= damage; LK.getSound('attack').play(); // Flash enemy red LK.effects.flashObject(currentEnemy, 0xff0000, 300); combatScreen.enemyHealthText.setText('Enemy: ' + Math.max(0, currentEnemy.health) + '/' + currentEnemy.maxHealth); // Check for pink wasp twin summoning before death if (currentEnemy.type === 'pinkwasp' && currentEnemy.health < 30 && currentEnemy.health > 0 && !currentEnemy.hasInvokedTwin && Math.random() < 0.5) { // Spawn twin wasp currentEnemy.hasInvokedTwin = true; var twinWasp = combatScreen.addChild(new Enemy('pinkwasp')); twinWasp.x = 150; twinWasp.y = -200; twinWasp.health = currentEnemy.maxHealth; twinWasp.maxHealth = currentEnemy.maxHealth; // Replace current enemy with twin currentEnemy.destroy(); currentEnemy = twinWasp; combatScreen.enemyHealthText.setText('Enemy: ' + currentEnemy.health + '/' + currentEnemy.maxHealth); combatScreen.actionText.setText('Twin wasp appears!'); playerTurn = false; LK.setTimeout(function () { playerTurn = true; combatScreen.actionText.setText('Tap to Attack!'); }, 1500); return; } if (currentEnemy.health <= 0) { // Victory strawberriesCollected++; gfCoins += 5; // Award 5 GF for collecting strawberry storage.gfCoins = gfCoins; // Check if heart should spawn after combat if (lola.health < 30 && !heartSpawned) { spawnHeartOnRandomCake(); } updateUI(); LK.getSound('victory').play(); endCombat(); checkLevelComplete(); } else { // Enemy turn playerTurn = false; combatScreen.actionText.setText('Enemy attacks...'); LK.setTimeout(function () { enemyAttack(); }, 1000); } } function enemyAttack() { if (!currentEnemy) return; var damage = currentEnemy.attack(); lola.health -= damage; // Flash Lola red LK.effects.flashObject(lola, 0xff0000, 300); combatScreen.lolaHealthText.setText('Lola: ' + Math.max(0, lola.health) + '/' + lola.maxHealth); if (lola.health <= 0) { // Game Over LK.showGameOver(); } else { // Check if mosquito gets extra attack if (currentEnemy.type === 'mosquito' && !currentEnemy.extraAttackTurn && Math.random() < 0.3) { currentEnemy.extraAttackTurn = true; combatScreen.actionText.setText('Mosquito drains blood! Extra attack!'); LK.setTimeout(function () { var secondDamage = currentEnemy.attack(); lola.health -= secondDamage; LK.effects.flashObject(lola, 0xff0000, 300); combatScreen.lolaHealthText.setText('Lola: ' + Math.max(0, lola.health) + '/' + lola.maxHealth); if (lola.health <= 0) { LK.showGameOver(); } else { playerTurn = true; combatScreen.actionText.setText('Tap to Attack!'); } currentEnemy.extraAttackTurn = false; }, 1000); } else { // Player turn playerTurn = true; combatScreen.actionText.setText('Tap to Attack!'); } } } function endCombat() { inCombat = false; if (combatScreen) { combatScreen.destroy(); combatScreen = null; } currentEnemy = null; } function checkLevelComplete() { if (strawberriesCollected >= strawberriesNeeded) { advanceLevel(); } } function spawnCharlotte() { if (!charlotte) { charlotte = game.addChild(new Charlotte()); charlotte.x = 1024; charlotte.y = 1000; // Add sparkle effect LK.effects.flashObject(charlotte, 0xffff00, 1000); } } function spawnHeartOnRandomCake() { var availableCakes = cakes.filter(function (cake) { return !cake.hasStrawberry && !cake.hasHeart; }); if (availableCakes.length > 0) { var randomCake = availableCakes[Math.floor(Math.random() * availableCakes.length)]; randomCake.spawnHeart(); heartSpawned = true; } } var charlotteMessageScreen = null; function advanceLevel() { // Create Charlotte message screen charlotteMessageScreen = game.addChild(LK.getAsset('combatBackground', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, alpha: 0.95 })); // Show Charlotte's message var messageText = new Text2("Merci Lola pour tes fraises! Je vais me faire un bon festin avec mes plats,\nmaintenant j'en veux encore plus! Ca va être la fête!", { size: 50, fill: 0x000000, align: 'center' }); messageText.anchor.set(0.5, 0.5); messageText.x = 0; messageText.y = -100; charlotteMessageScreen.addChild(messageText); // Close button var closeButton = charlotteMessageScreen.addChild(LK.getAsset('shopButton', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 200, scaleX: 1.5 })); var closeText = new Text2('Fermer', { size: 40, fill: 0x000000 }); closeText.anchor.set(0.5, 0.5); closeButton.addChild(closeText); closeButton.down = function () { completeLevel(); }; } function completeLevel() { // Close Charlotte message screen if (charlotteMessageScreen) { charlotteMessageScreen.destroy(); charlotteMessageScreen = null; } currentLevel++; storage.currentLevel = currentLevel; gfCoins += 10; // Award 10 GF for advancing level storage.gfCoins = gfCoins; strawberriesCollected = 0; strawberriesNeeded = calculateStrawberriesNeeded(currentLevel); // Reset Lola's health lola.health = lola.maxHealth; // Reset heart spawning heartSpawned = false; // Remove Charlotte if (charlotte) { charlotte.destroy(); charlotte = null; } updateUI(); } function openShop() { if (shopOpen || inCombat) return; shopOpen = true; // Create shop background shopScreen = game.addChild(LK.getAsset('combatBackground', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, alpha: 0.95 })); // Shop title var shopTitle = new Text2('Boutique', { size: 80, fill: 0x000000 }); shopTitle.anchor.set(0.5, 0.5); shopTitle.x = 0; shopTitle.y = -500; shopScreen.addChild(shopTitle); // Shop items var shopItems = [{ name: 'Gâteau à la framboise', health: 30, price: 10, y: -300 }, { name: 'Mousse à la fraise', health: 40, price: 15, y: -150 }, { name: 'Crème chantilly', health: 40, price: 20, y: 0 }, { name: 'Yaourt à la fraise', health: 50, price: 30, y: 150 }, { name: 'Tiramisu aux fraises', health: 60, price: 45, y: 300 }]; shopScreen.items = []; for (var i = 0; i < shopItems.length; i++) { var item = shopItems[i]; // Item background var itemBg = shopScreen.addChild(LK.getAsset('shopButton', { anchorX: 0.5, anchorY: 0.5, x: -200, y: item.y, scaleX: 1.8, scaleY: 1.2 })); // Item text var itemText = new Text2(item.name + ' (+' + item.health + ' HP)', { size: 35, fill: 0x000000 }); itemText.anchor.set(0.5, 0.5); itemText.x = -200; itemText.y = item.y - 15; shopScreen.addChild(itemText); // Price text var priceText = new Text2('Prix: ' + item.price + ' GF', { size: 30, fill: 0x000000 }); priceText.anchor.set(0.5, 0.5); priceText.x = -200; priceText.y = item.y + 15; shopScreen.addChild(priceText); // Buy button var buyButton = shopScreen.addChild(LK.getAsset('shopButton', { anchorX: 0.5, anchorY: 0.5, x: 200, y: item.y, scaleX: 1.2, scaleY: 0.8 })); var buyText = new Text2('Se servir', { size: 35, fill: 0x000000 }); buyText.anchor.set(0.5, 0.5); buyButton.addChild(buyText); // Store item data buyButton.itemData = item; buyButton.down = function (x, y, obj) { buyItem(this.itemData); }; shopScreen.items.push({ background: itemBg, button: buyButton, data: item }); } // Close button var closeButton = shopScreen.addChild(LK.getAsset('shopButton', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 500, scaleX: 1.5 })); var closeText = new Text2('Fermer', { size: 40, fill: 0x000000 }); closeText.anchor.set(0.5, 0.5); closeButton.addChild(closeText); closeButton.down = function () { closeShop(); }; } function buyItem(item) { if (gfCoins >= item.price) { gfCoins -= item.price; storage.gfCoins = gfCoins; // Heal Lola lola.health = Math.min(lola.maxHealth, lola.health + item.health); updateUI(); // Flash green for successful purchase LK.effects.flashScreen(0x00ff00, 500); } else { // Flash red for insufficient funds LK.effects.flashScreen(0xff0000, 500); } } function closeShop() { if (shopScreen) { shopScreen.destroy(); shopScreen = null; } shopOpen = false; } function updateUI() { strawberryCounter.setText('Strawberries: ' + strawberriesCollected + '/' + strawberriesNeeded); levelText.setText('Level ' + currentLevel); gfCounter.setText('GF: ' + gfCoins); } // Shop button handler shopButton.down = function (x, y, obj) { openShop(); }; // Game event handlers game.down = function (x, y, obj) { if (inCombat && playerTurn) { playerAttack(); } }; // Main game loop game.update = function () { // Spawn strawberries randomly if (LK.ticks % 120 === 0) { // Every 2 seconds var randomCake = cakes[Math.floor(Math.random() * cakes.length)]; randomCake.spawnStrawberry(); } // Check Charlotte collision if (charlotte && lola.intersects(charlotte) && strawberriesCollected >= strawberriesNeeded) { charlotte.destroy(); charlotte = null; advanceLevel(); } }; // Start background music LK.playMusic('backgroundMusic'); // Initialize UI updateUI();
===================================================================
--- original.js
+++ change.js
@@ -405,9 +405,9 @@
currentEnemy = null;
}
function checkLevelComplete() {
if (strawberriesCollected >= strawberriesNeeded) {
- spawnCharlotte();
+ advanceLevel();
}
}
function spawnCharlotte() {
if (!charlotte) {
@@ -655,8 +655,10 @@
randomCake.spawnStrawberry();
}
// Check Charlotte collision
if (charlotte && lola.intersects(charlotte) && strawberriesCollected >= strawberriesNeeded) {
+ charlotte.destroy();
+ charlotte = null;
advanceLevel();
}
};
// Start background music
Fourmi. In-Game asset. 2d. High contrast. No shadows
Scarabée. In-Game asset. 2d. High contrast. No shadows
Fraise. In-Game asset. 2d. High contrast. No shadows
Gâteau aux fraises. In-Game asset. 2d. High contrast. No shadows
Petite fille nommée charlotte. In-Game asset. 2d. High contrast. No shadows
Petite fille nommée lola. In-Game asset. 2d. High contrast. No shadows
Fond d'écran rose. In-Game asset. 2d. High contrast. No shadows
Fond d'écran crème a la fraise. In-Game asset. 2d. High contrast. No shadows
Coeur de points de vie. In-Game asset. 2d. High contrast. No shadows
Moustique. In-Game asset. 2d. High contrast. No shadows
Guêpe rose. In-Game asset. 2d. High contrast. No shadows