Pong 游戏敌人系统使用说明
本文档介绍如何在游戏中设置敌人系统,使敌人从上方和下方进入游戏区域,随机移动并攻击墙体,而方块中的武器会自动射出子弹攻击最近的敌人。
系统组件
- GameStartup - 游戏初始化脚本,负责设置场景和初始化各个控制器
- EnemyController - 管理敌人的生成、移动和攻击,以及单个敌人行为
- BulletController - 控制子弹寻找并攻击最近的敌人
- WeaponController - 控制武器发射子弹(如果有)
设置步骤
1. 添加脚本到项目
确保以下脚本已添加到项目中:
GameStartup.ts(已更新,整合了SceneSetup功能)
EnemyController.ts(已更新,整合了EnemyManager功能)
BulletController.ts(已更新)
2. 设置节点结构
确保场景中有以下节点结构:
Canvas
├── GameManager
└── GameLevelUI
├── BallController
├── BlockController
├── EnemyController
├── WeaponController
├── enemyContainer
├── GameArea
│ ├── TopFence
│ ├── BottomFence
│ ├── JiguangL
│ └── JiguangR
└── HeartNode (墙体血量显示)
3. 设置GameStartup
- 在Canvas节点上添加GameStartup组件
- 设置WallHealth属性(默认为1200)
- 拖拽GameManager节点到GameManager属性
4. 设置EnemyController节点
- 确保场景中存在Canvas/GameLevelUI/EnemyController节点
- 在EnemyController节点上添加EnemyController组件
- 设置以下属性:
- EnemyPrefab: 拖拽Enemy预制体到这里
- SpawnInterval: 3(或根据需要调整)
- EnemySpeed: 50
- AttackPower: 10
- Health: 30
- WallHealth: 1200(会被GameStartup覆盖)
5. 设置BallController
- 在Canvas/GameLevelUI/BallController节点上添加BallController组件
- 设置以下属性:
- BulletPrefab: 拖拽Bullet预制体到这里
- BulletCooldown: 0.5(或根据需要调整)
6. 设置Bullet预制体
- 打开Bullet预制体
- 添加BulletController组件
- 设置以下属性:
- Speed: 300
- Damage: 10
- Lifetime: 5
游戏流程
- 玩家放置方块并点击确认按钮
- GameManager启动游戏,生成小球并启动敌人生成
- 敌人从上方和下方进入游戏区域,随机左右移动
- 小球撞击方块后,方块发射子弹
- 子弹自动寻找并攻击最近的敌人
- 敌人到达墙体后会攻击墙体,造成伤害
- 当墙体血量降为0时,游戏结束
优化说明
本系统采用了节点控制器模式,主要优点:
脚本整合:
- 将SceneSetup整合到GameStartup中
- 将EnemyManager和EnemyController整合为一个脚本
- 减少了脚本文件数量,简化了代码结构
节点管理:
- 使用专门的控制器节点管理各类游戏对象
- 预制体只保留基础组件,复杂逻辑由控制器处理
- 便于调试和管理
调试提示
- 在控制台中查看日志信息,了解敌人生成、移动和攻击情况
- 可以调整EnemyController中的参数来改变敌人生成频率、移动速度和攻击力
- 可以调整BulletController中的参数来改变子弹速度和伤害
注意事项
- 确保所有预制体都有正确的物理碰撞组件
- 确保GameArea中有正确命名的墙体节点(TopFence、BottomFence、JiguangL、JiguangR)
- 如果游戏性能有问题,可以调整敌人生成频率或同时存在的敌人数量