Test IA
Site planifié par Qwen 3.6 · Créé par DeepSeek V4 Flash High
Crée un jeu 2D en Three.js : un shoot 'em up multidirectionnel dans l'espace où deux vaisseaux s'affrontent, se déplacent librement, tirent des projectiles et cherchent à détruire l'adversaire.
Crée un jeu 2D inspiré de Terraria, entièrement jouable dans le navigateur — sans Node.js, sans bundler, sans framework.
Crée un jeu 2D inspiré de Terraria, entièrement jouable dans le navigateur, sans Node.js, sans bundler, sans framework, sans dépendances serveur.
Contraintes techniques :
- Utiliser uniquement HTML, CSS et JavaScript.
- Utiliser Three.js via CDN dans une balise <script>.
- Tout le jeu doit fonctionner avec un simple fichier index.html ouvert dans le navigateur.
- Ne pas utiliser React, Vue, npm, Vite, Webpack, Canvas 2D ou moteur externe.
- Le rendu doit être fait avec Three.js.
- Le jeu doit être en 2D avec une caméra orthographique.
- Le style visuel doit être pixel art / blocs carrés, proche de Terraria mais original.
Objectif du jeu :
Créer un petit monde 2D en blocs où le joueur peut :
- Se déplacer à gauche et à droite.
- Sauter.
- Être affecté par la gravité.
- Marcher sur les blocs solides.
- Casser des blocs de terre.
- Casser des arbres.
- Ramasser automatiquement les ressources.
- Poser des blocs sur un quadrillage.
- Voir le bloc actuellement sélectionné.
- Utiliser la souris pour casser ou placer des blocs.
Structure du monde :
- Le monde est une grille 2D composée de cases carrées.
- Chaque cellule peut contenir un bloc ou être vide.
- Taille recommandée du monde : 100 blocs de large par 40 blocs de haut.
- Taille visuelle d'un bloc : 1 unité Three.js.
- Générer un terrain simple :
- Ciel vide en haut.
- Couche de terre en surface.
- Couche de pierre plus profonde.
- Quelques arbres placés aléatoirement à la surface.
- Le terrain doit avoir une légère variation de hauteur, pas une ligne parfaitement droite.
Types de blocs :
1. Air — Invisible, non solide
2. Terre — Marron, solide, cassable, plaçable
3. Herbe — Vert, solide, cassable
4. Pierre — Grise, solide, cassable, plaçable
5. Bois — Brun foncé, solide, cassable
6. Feuilles — Vertes, solides, cassables
Joueur :
- Rectangle simple en pixel art
- Position x/y, vitesse x/y, largeur/hauteur
- Collision avec les blocs solides
- Contrôles : A/D ou flèches pour le mouvement, Espace/W/↑ pour sauter
- Saut uniquement possible au sol
- Caméra suit le joueur
Interactions :
- Curseur de sélection sur la case sous la souris
- Clic gauche : casser un bloc à portée → ajout à l'inventaire
- Clic droit : placer le bloc sélectionné sur la case ciblée
- Portée d'interaction : ~5 blocs de rayon
- Placement impossible dans le corps du joueur ou trop loin
Inventaire :
- Barre en bas de l'écran (HTML/CSS)
- Terre, Pierre, Bois, Feuilles avec quantités
- Touches 1-4 pour sélectionner le bloc actif
- Surbrillance sur l'emplacement sélectionné
Rendu :
- Cubes/plans Three.js, caméra orthographique
- Fond bleu ciel, blocs carrés alignés
- Bordures légères pour lisibilité
- Matériaux colorés, pas de textures externes
Architecture du code : 15 sections organisées (init, monde, blocs, joueur, physique, collisions, caméra, souris, inventaire, etc.)
Bonus : prévisualisation du bloc, contour du bloc ciblé, animation de destruction, particules, arbres complets, limites du monde, aide des contrôles.