Tidak Ada Deskripsi

181404010226 9d3264568f 碰撞回调 5 bulan lalu
.creator 6690d79c15 zstPrefab 6 bulan lalu
assets 9d3264568f 碰撞回调 5 bulan lalu
settings 9d3264568f 碰撞回调 5 bulan lalu
.gitignore 6690d79c15 zstPrefab 6 bulan lalu
README_ENEMY_SYSTEM.md 4114532f7f 攻击敌人 5 bulan lalu
package.json 6690d79c15 zstPrefab 6 bulan lalu
tsconfig.json 6690d79c15 zstPrefab 6 bulan lalu

README_ENEMY_SYSTEM.md

Pong 游戏敌人系统使用说明

本文档介绍如何在游戏中设置敌人系统,使敌人从上方和下方进入游戏区域,随机移动并攻击墙体,而方块中的武器会自动射出子弹攻击最近的敌人。

系统组件

  1. GameStartup - 游戏初始化脚本,负责设置场景和初始化各个控制器
  2. EnemyController - 管理敌人的生成、移动和攻击,以及单个敌人行为
  3. BulletController - 控制子弹寻找并攻击最近的敌人
  4. WeaponController - 控制武器发射子弹(如果有)

设置步骤

1. 添加脚本到项目

确保以下脚本已添加到项目中:

  • GameStartup.ts(已更新,整合了SceneSetup功能)
  • EnemyController.ts(已更新,整合了EnemyManager功能)
  • BulletController.ts(已更新)

2. 设置节点结构

  1. 确保场景中有以下节点结构:

    Canvas
    ├── GameManager
    └── GameLevelUI
       ├── BallController
       ├── BlockController
       ├── EnemyController
       ├── WeaponController
       ├── enemyContainer
       ├── GameArea
       │   ├── TopFence
       │   ├── BottomFence
       │   ├── JiguangL
       │   └── JiguangR
       └── HeartNode (墙体血量显示)
    

3. 设置GameStartup

  1. 在Canvas节点上添加GameStartup组件
  2. 设置WallHealth属性(默认为1200)
  3. 拖拽GameManager节点到GameManager属性

4. 设置EnemyController节点

  1. 确保场景中存在Canvas/GameLevelUI/EnemyController节点
    • 如不存在,GameStartup会自动创建
  2. 在EnemyController节点上添加EnemyController组件
  3. 设置以下属性:
    • EnemyPrefab: 拖拽Enemy预制体到这里
    • SpawnInterval: 3(或根据需要调整)
    • EnemySpeed: 50
    • AttackPower: 10
    • Health: 30
    • WallHealth: 1200(会被GameStartup覆盖)

5. 设置BallController

  1. 在Canvas/GameLevelUI/BallController节点上添加BallController组件
  2. 设置以下属性:
    • BulletPrefab: 拖拽Bullet预制体到这里
    • BulletCooldown: 0.5(或根据需要调整)

6. 设置Bullet预制体

  1. 打开Bullet预制体
  2. 添加BulletController组件
  3. 设置以下属性:
    • Speed: 300
    • Damage: 10
    • Lifetime: 5

游戏流程

  1. 玩家放置方块并点击确认按钮
  2. GameManager启动游戏,生成小球并启动敌人生成
  3. 敌人从上方和下方进入游戏区域,随机左右移动
  4. 小球撞击方块后,方块发射子弹
  5. 子弹自动寻找并攻击最近的敌人
  6. 敌人到达墙体后会攻击墙体,造成伤害
  7. 当墙体血量降为0时,游戏结束

优化说明

本系统采用了节点控制器模式,主要优点:

  1. 脚本整合

    • 将SceneSetup整合到GameStartup中
    • 将EnemyManager和EnemyController整合为一个脚本
    • 减少了脚本文件数量,简化了代码结构
  2. 节点管理

    • 使用专门的控制器节点管理各类游戏对象
    • 预制体只保留基础组件,复杂逻辑由控制器处理
    • 便于调试和管理

调试提示

  • 在控制台中查看日志信息,了解敌人生成、移动和攻击情况
  • 可以调整EnemyController中的参数来改变敌人生成频率、移动速度和攻击力
  • 可以调整BulletController中的参数来改变子弹速度和伤害

注意事项

  • 确保所有预制体都有正确的物理碰撞组件
  • 确保GameArea中有正确命名的墙体节点(TopFence、BottomFence、JiguangL、JiguangR)
  • 如果游戏性能有问题,可以调整敌人生成频率或同时存在的敌人数量