大鱼吃小鱼:用trae生成一个大鱼吃小鱼的小游戏

2,583 阅读2分钟

我用trae帮我生成了一个小游戏,以下是全部过程。

游戏核心规则

游戏名称: 大鱼吃小鱼: 在倒计时结束使用WADS进行控制鱼,从而躲避比自己大的鱼,吃掉比自己小的鱼,从而慢慢长大,最终可以吃掉所有鱼,直至占据整个屏幕结束游戏。

以上是用deeseek模型为我生成的关于游戏的ai提示词,需要自己不断完善提示词 后续将提示词交给trae,来实现。 image.png

游戏核心机制

1. 游戏界面设计

游戏采用三层结构设计:

  • 开始界面:展示游戏标题和开始按钮
  • 游戏界面:包含状态栏和游戏区域
  • 结束界面:显示最终得分和操作按钮
<div id="game-container">
    <div id="start-screen">
        <!-- 开始界面内容 -->
    </div>
    
    <div id="game-screen">
        <!-- 游戏进行界面 -->
    </div>
    
    <div id="end-screen">
        <!-- 游戏结束界面 -->
    </div>
</div>

2. 游戏物理系统

游戏实现了基础的物理碰撞检测系统,使用getBoundingClientRect()方法检测矩形碰撞:

function checkCollision(obj1, obj2) {
    const rect1 = obj1.getBoundingClientRect();
    const rect2 = obj2.getBoundingClientRect();
    
    return !(
        rect1.right < rect2.left || 
        rect1.left > rect2.right || 
        rect1.bottom < rect2.top || 
        rect1.top > rect2.bottom
    );
}

3. 鱼类生成系统

游戏设计了5种不同类型的鱼,每种有不同的尺寸、分数和颜色:

鱼类尺寸得分颜色
小丑鱼20px10#ff5252
热带鱼35px20#4caf50
金鱼50px30#ff9800
鲨鱼70px50#9c27b0
鲸鱼90px100#2196f3

 玩家控制系统

通过监听键盘事件实现玩家控制:

document.addEventListener('keydown', handleKeyPress);

function handleKeyPress(e) {
    const speed = 5;
    // 处理上下左右按键
    // ...
}

成长系统

当玩家吃掉较小的鱼时,会根据鱼的大小按比例成长:

const growth = fishSize / 15;
player.style.width = (playerSize + growth) + 'px';
player.style.height = (parseFloat(player.style.height) + growth * 0.6) + 'px';

总结

通过这个项目,我们实现了一个完整的HTML5游戏,涵盖了:

  • 游戏循环设计
  • 用户输入处理
  • 碰撞检测
  • 游戏状态管理
  • 简单的AI行为