键盘输入可视化平台游戏

MCP Leap 是一款使用React和TypeScript构建的交互式平台游戏,具有实时键盘输入可视化功能,玩家可以控制角色跳跃通过程序生成的平台。

  • by xni-i
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Nsuccess/mcp-leap

使用说明

A fun platformer game with real-time keyboard input visualization!

🎮 MCP飞跃

🚀 关于项目

MCP飞跃 是一款使用React和TypeScript构建的交互式平台游戏,展示了实时键盘输入可视化。控制角色在程序生成的平台上跳跃,同时您的键盘输入在屏幕上显示得很漂亮。

✨ 主要特点

  • 🎯 实时键盘可视化 -看到你的击键变得生动起来
  • 🎮 流畅的平台游戏 -基于物理运动的响应式控制
  • 🎨 美丽的渐变 -充满活力的渐变背景,具有视觉吸引力
  • 📱 移动响应 -针对台式机和移动设备进行了优化
  • � ️ 程序平台生成 -通过动态生成的平台进行无限游戏
  • ⚡ 高性能 -使用现代React挂钩和优化渲染构建

🎮 如何玩

控制

  • ← 向左箭头 -向左移动
  • → 向右箭头 -向右移动
  • 输入/空格 -重新开始游戏(游戏结束后)

游戏玩法

  1. 使用箭头键左右移动角色
  2. 跳上平台爬得更高,增加你的分数
  3. 避免从屏幕底部掉落
  4. 尽可能获得最高分数!

评分系统

  • 你的分数随着你爬得更高而增加
  • 每个平台级别都会给你分数
  • 挑战自己,打败你的高分!

🛠️ 安装和设置

先决条件

  • Node.js(v16或更高版本)
  • npm或yarn包管理器

快速开始

  1. 克隆存储库

    git clone https://github.com/yourusername/mcp-leap.git
    cd mcp-leap
    
  2. 安装依赖项

    npm install
    
  3. 启动开发服务器

    npm run dev
    
  4. 打开浏览器 引导到 http://localhost:5173 开始玩!

可用脚本

脚本 描述
npm run dev 使用热重新加载启动开发服务器
npm run build 建设生产项目
npm run preview 在本地预览生产版本
npm run lint 运行ESLint检查代码质量

🏗️ 项目结构

src/
├── components/          # React components
│   ├── GameCanvas.tsx   # Main game rendering component
│   ├── GameUI.tsx       # Game interface and overlays
│   └── LoadingScreen.tsx # Loading screen component
├── hooks/               # Custom React hooks
│   ├── useGameEngine.ts # Core game logic hook
│   └── useImageLoader.ts # Image loading hook
├── utils/               # Game utilities
│   ├── input.ts         # Keyboard input handling
│   ├── physics.ts       # Physics engine
│   ├── renderer.ts      # Canvas rendering
│   └── platformGenerator.ts # Platform generation
├── types/               # TypeScript type definitions
│   └── game.ts          # Game-related types
├── constants/           # Game configuration
│   └── game.ts          # Game constants and settings
└── assets/              # Static assets
    └── load.gif         # Loading animation

🎨 技术亮点

现代React架构

  • 定制挂钩 -模块化游戏逻辑 useGameEngine 和 useImageLoader
  • TypeScript -整个应用程序的全类型安全
  • 性能优化 -通过画布到图像的转换实现高效渲染

游戏引擎功能

  • 物理系统 -重力、碰撞检测和平稳运动
  • 输入处理 -实时键盘输入处理
  • 摄像机系统 -动态摄像头跟随玩家
  • 平台生成 -程序化平台创建,实现无限游戏体验

视觉设计

  • 响应式设计 -采用自适应画布尺寸的移动优先方法
  • 平滑动画 -60fps游戏与requestAnimationFrame

🎯 游戏配置

游戏可通过以下方式进行高度配置 src/constants/game.ts:

export const GAME_CONFIG = {
  // Physics
  GRAVITY: 0.5,
  JUMP_FORCE: -15,
  MOVE_SPEED: 5,
  FRICTION: 0.8,

  // Visual - Brand Colors
  BRAND_COLORS: {
    YELLOW: "#FFD800",
    ORANGE_LIGHT: "#FFAF00",
    ORANGE: "#FF8205",
    ORANGE_DARK: "#FA500F",
    RED: "#E10500",
  },

  // Platform settings
  PLATFORM_WIDTH: 120,
  PLATFORM_HEIGHT: 20,
  PLATFORM_SPACING: 120,

  // Player settings
  PLAYER_WIDTH: 90,
  PLAYER_HEIGHT: 90,
};

🙏 致谢

  • 反应团队 -对于令人难以置信的React框架
  • 维特 -用于闪电般快速构建工具
  • TypeScript -让JavaScript开发成为一种乐趣