Skip to content

S-🏠 游戏实体

GameEntity 是游戏世界中的基础对象,提供了以下核心功能:

  • 外观控制:管理实体的形状、位置、旋转、颜色等视觉属性
  • 物理系统:控制实体的碰撞、重力、质量等物理特性
  • 粒子效果:创建和管理实体的粒子系统
  • 交互系统:处理实体与玩家的互动、点击等操作
  • 战斗系统:管理实体的生命值、伤害、死亡等状态

类定义

typescript
declare class GameEntity {
  //...
}

属性列表

基础信息

  • isPlayer : 实体是否为玩家
  • player : 索引与玩家相关的全部状态和方法
  • id : 已在编辑器中添加的实体名称

外观系统

名称显示

  • showEntityName : 是否展示实体的默认名称
  • customName : 自定义需要展示的名称
  • nameRadius : 名称展示范围,数值越小,则需要靠近实体才会出现名称
  • nameColor : 进入实体名称展示范围时,实体名称的颜色

物理系统

音效系统

  • chatSound : 当实体说话时,播放聊天音效。通过say()触发
  • hurtSound : 当实体触发受伤事件时,播放受伤音效。通过onTakeDamage()触发
  • dieSound : 当实体触发死亡事件时,播放死亡音效。通过onDie()触发
  • interactSound : 当实体进行互动时,播放互动音效。此音效仅互动的玩家可听见。通过onInteract()触发

粒子系统

  • particleRate : 实体平均每秒产生粒子的数量
  • particleRateSpread : 如果设定了该属性的值,实体每一秒产生粒子的数量将不再是个固定值
  • particleLimit : 实体可产生的粒子总数的上限
  • particleLifetime : 粒子的存活时间,以秒为单位
  • particleLifetimeSpread : 如果设定了该属性的值,粒子的存活时间将不再是固定值
  • particleSize : 该属性的值可以是一个长度为 0 至 5 的数组。每个粒子的存活时间被平均分为五个阶段
  • particleSizeSpread : 如果设定了该属性,但没设定 particleSize 的值,每产生一个粒子,会从区间[0, particleSizeSpread)里选取的一个随机数作为它的大小
  • particleColor : 类似 particleSize,该属性的值可以是一个长度为 0 至 5 的数组,数组里的每个值分别指定了粒子在各个阶段的颜色
  • particleVelocity : 该实体产生的所有粒子的初始速度
  • particleVelocitySpread : 增加该实体产生的所有粒子初始速度的不确定性
  • particleDamping : 如果该属性的值为正数,会短暂减少该实体所产生粒子的初始速度,数值越大,减少初始速度的效果持续得越久
  • particleAcceleration : 该实体所产生粒子的加速度
  • particleNoise : 指定粒子相对于之前运动方向的最大偏离值,数值越大,各个粒子的运动相对原有方向的偏离越明显
  • particleNoiseFrequency : 指定粒子改变运动方向的频率,数值越大,各个粒子的运动方向越没有规律

交互系统

  • enableInteract : 是否允许实体进行互动
  • interactRadiu : 实体互动范围。数值越小,则需要靠近实体才会出现互动提示
  • interactHint : 进入实体互动范围时,实体身上出现的提示文本
  • interactColor : 进入实体互动范围时,提示文本的颜色

战斗系统

方法列表

外观控制

  • lookAt : 将实体旋转至面向指定位置的方向
  • animate : 创建一个关键帧动画
  • getAnimations : 获取实体的所有已创建的动画

音效控制

  • sound : 在实体所在的位置播放声音

标签系统

  • addTag : 为实体添加一个新标签
  • hasTag : 判断实体是否带有某个标签
  • removeTag : 从实体移除标签
  • tags : 获取编辑器中给实体添加的全部标签

交互控制

  • say : 让实体说话

战斗控制

事件监听

交互事件

  • onClick : 当玩家用鼠标点击实体时触发
  • onInteract : 当实体进行互动时触发

碰撞事件

战斗事件

接口定义

动画接口

事件接口