RuyerZ/TurretAgent

已实现模块documentation

Closed this issue · 0 comments

大致描述模块及其接口

Player

PlayerItemBehavior

  • 负责管理切换武器以及左键Fire()
  • 之后商店买到的道具可以用SetItem(ItemBase item, int index)设置
  • 需Editor设置:
  • UIHotkeyBar bar
  • List barItems (暂时、之后在商城从GameManager设置)

PlayerMoveBehavior

  • 管理玩家动画及移动
  • 需Editor设置:
  • Rigidbody2D rb
  • Animator animator
  • Transform anchor - Player的第一个孩子(可以考虑直接用FindComponentInChildren)

PlayerTurretBehavior

  • 管理玩家捡起和放下塔
  • 玩家需要在一定距离内才能捡起塔
  • 已实现合法地区检测,见TurretMoveBehavior
  • 按E键捡起和放下塔,没实现自动丢塔,塔不占Item空间(原因:防止ItemBar满的情况)
  • 需Editor设置:
  • GameObject turret

TODO

  • 玩家在范围内有某种视觉提示可以捡塔

Items

ItemBase

  • 属性:
  • float itemCount
  • Transform firePoint 子弹发射点
  • Sprite Icon
  • 成员函数:
  • void Activate() 切换成该Item时调用
  • void Deactivate() 切换走时调用
  • Sprite getIcon() 返回Icon
  • virtual void Fire() 使用item

WeaponBase : ItemBase

  • 属性:
  • FriendBulletBehavior Bullet
  • float cooldownDuration 攻速
  • 成员函数:
  • Fire() 一定攻速射出子弹

RepairTool : ItemBase

  • 修复工具:有一定数量,在靠近塔后左键开始修塔
  • 每过一段时间(repairTime)塔以repairRate回血
  • 若玩家切换道具或移动则会取消修复
  • 塔满血状态下回保持修复状态,但不会消耗道具

TODO

  • 玩家在范围内有某种视觉提示可以修塔
  • 把修复移到道具栏外 固定槽 (固定槽可以用来提示是否可以使用,并且按R键修塔,试了用左键修塔有点别扭)

UI

UIHotKeyBar (未完成)

  • 目前固定五个槽
  • void SetItemIcon(int index, Sprite Icon): 设置图标
  • void Activate(int index) 激活该槽会有边框视觉效果
  • void Deactivate(int index)
  • void SetItemCount(int index, int count): 设置右下角显示剩余数量

TODO

  • void StartCooldDown(float time, int index) 道具冷却视觉效果
  • void SetItemCount(int index, int count): 设置右下角显示剩余数量

重叠效果

  • RenderBehavior:大致**根据y值设置z值,把这个script放在每个需要重叠的物体上