我用trae帮我生成了一个小游戏,以下是全部过程。
游戏核心规则
游戏名称: 大鱼吃小鱼: 在倒计时结束使用WADS进行控制鱼,从而躲避比自己大的鱼,吃掉比自己小的鱼,从而慢慢长大,最终可以吃掉所有鱼,直至占据整个屏幕结束游戏。
以上是用deeseek模型为我生成的关于游戏的ai提示词,需要自己不断完善提示词
后续将提示词交给trae,来实现。
游戏核心机制
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种不同类型的鱼,每种有不同的尺寸、分数和颜色:
| 鱼类 | 尺寸 | 得分 | 颜色 |
|---|---|---|---|
| 小丑鱼 | 20px | 10 | #ff5252 |
| 热带鱼 | 35px | 20 | #4caf50 |
| 金鱼 | 50px | 30 | #ff9800 |
| 鲨鱼 | 70px | 50 | #9c27b0 |
| 鲸鱼 | 90px | 100 | #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行为