Skip to content

ChristoRibeiro/xinvaders

Repository files navigation

Space Invaders Customizable

Un jeu Space Invaders moderne et customizable construit avec Bun, TypeScript et React.

Caractéristiques

  • Gameplay classique Space Invaders avec des mécaniques modernes
  • Images d'ennemis personnalisables - Choisissez parmi des aliens prédéfinis ou utilisez vos propres images
  • Support mobile complet - Compatible iPhone et Android avec contrôles tactiles
  • Responsive design - S'adapte à toutes les tailles d'écran
  • Support localStorage - Vos images personnalisées et paramètres sont sauvegardés
  • Système de niveaux - Difficulté progressive à mesure que vous progressez
  • Score élevé - Suivez votre meilleur score
  • Interface moderne avec des effets visuels inspirés des jeux rétro

Installation

# Installer les dépendances avec Bun
bun install

# Lancer le serveur de développement
bun run dev

# Construire pour la production
bun run build

Comment jouer

  1. Sélection d'image : Au démarrage, choisissez une image pour vos ennemis

    • Sélectionnez parmi les aliens prédéfinis
    • Ou ajoutez votre propre image personnalisée
  2. Contrôles du jeu :

    Sur ordinateur :

    • Flèche gauche/droite : Déplacer le vaisseau
    • Espace : Tirer
    • P : Pause/Reprendre
    • R : Recommencer (après game over)
    • ESC : Retour au menu

    Sur mobile :

    • ◄ ► : Boutons de déplacement
    • 🔥 : Bouton de tir
    • : Bouton pause
    • Boutons tactiles pour rejouer et retour au menu
  3. Objectif :

    • Détruisez tous les ennemis avant qu'ils n'atteignent le bas de l'écran
    • Évitez les tirs ennemis
    • Survivez et progressez à travers les niveaux

Technologies utilisées

  • Bun - Runtime JavaScript rapide
  • TypeScript - Pour la sécurité des types
  • React - Framework UI
  • Vite - Build tool et dev server
  • Canvas API - Pour le rendu du jeu
  • localStorage - Pour la persistance des données

Structure du projet

src/
├── components/              # Composants React
│   ├── Game.tsx            # Composant principal du jeu
│   ├── Game.css            # Styles du jeu
│   ├── ImageSelector.tsx   # Sélecteur d'images
│   ├── ImageSelector.css   # Styles du sélecteur
│   ├── MobileControls.tsx  # Contrôles tactiles mobile
│   └── MobileControls.css  # Styles des contrôles mobiles
├── hooks/                  # Custom React hooks
│   ├── useGameLoop.ts      # Logique de la boucle de jeu
│   └── useIsMobile.ts      # Détection mobile
├── types/                  # Définitions TypeScript
│   └── game.ts             # Types du jeu
├── utils/                  # Fonctions utilitaires
│   ├── constants.ts        # Constantes du jeu
│   └── storage.ts          # Gestion localStorage
├── App.tsx                 # Composant racine
├── App.css                 # Styles globaux
├── main.tsx                # Point d'entrée
└── index.css               # Styles de base

Fonctionnalités à venir

  • Sons et effets sonores
  • Power-ups et bonus
  • Modes de difficulté
  • Classement en ligne
  • Boss de fin de niveau

Licence

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published