ClientSceneObject 场景对象-客户端基类

实际在游戏画面中出现的场景对象类,所有客户端场景对象实现类都继承于该类
【内部的显示层次】
-- 动画层:底层 animationLowLayer 使用playAnimation播放的动画比目标效果层更低的层次会添加到这里
-- 自定义底层(预设中比行走图低的层,包括行走图) customLayer
-- 动画层:高层 animationHighLayer 使用playAnimation播放的动画比目标效果层更高的层次会添加到这里
-- 自定义高层(预设中比行走图更高的层次)customHighLayer

维护人员:黑暗之神KDS
创建时间:2018-07-24

继承SceneObjectEntitySceneObject
子类

Public 属性

属性
player : ClientPlayer;
所属的玩家
root : GameSprite;
显示对象的根容器,在场景上的场景对象实际上是将该容器添加到场景的显示容器(displayObject)上
shadow : GameSprite;
影子,默认是添加在场景的影子层上,以便比所有对象低
animationLowLayer : GameSprite;
底层动画层 使用playAnimation播放的动画比目标效果层更低的层次会添加到这里
avatar : Avatar;
行走图
avatarContainer : GameSprite;
行走图容器,装载行走图的父节点
customLayer : GameSprite;
自定义层 预设中比行走图低的层,包括行走图(avatar)
animationHighLayer : GameSprite;
高层动画层 使用playAnimation播放的动画比目标效果层更高的层次会添加到这里
customHighLayer : GameSprite;
模型对象预设高层(预设中比行走图更高的层次)
systemUILayer : GameSprite;
最高层系统UI层
scene : ClientScene;
所在的场景,在添加到场景时会设置此值,移除时并不会被置空
lockDrag : boolean;
【编辑器预览用】拖拽对象锁定
lockDelete : boolean;
【编辑器预览用】删除对象锁定
lockKeyMove : boolean;
【编辑器预览用】按键移动对象锁定
actionIndex : number;
根据动作索引播放动作
animations : Animation;
只读动画集合

Protected 属性

属性
_x : number;
水平坐标
_y : number;
垂直坐标

Public 方法

方法
constructor(soData? : SceneObject, scene? : ClientScene)
构造函数
dispose(): void
释放
drawShadow(scalePer? : number): void
绘制影子,比如当需要缩放影子时调用此函数
stopRender(stopCurrentFrame? : boolean): void
停止渲染,Game.pause 时会自动调用场景中对象的此函数
recoveryRender(continueCurrentFrame? : boolean): void
恢复渲染,Game.pause 时会自动调用场景中对象的此函数
refreshCoordinate(): void
进入新的坐标后应调用此函数
update(nowTime : number): void
刷新:场景会调用所有场景上面的场景对象的该函数,执行逻辑应由子类实现,该类下此函数无任何代码实现
playAnimation(aniID : number, loop : boolean, isHit : boolean, fps? : number, superposition? : boolean, ignoreReplay? : boolean): GCAnimation
播放动画,目标对象是行走图
stopAnimation(aniID : any): void
停止动画
stopAllAnimation(): void
停止所有动画
hasListener(type : string): boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
event(type : string, data? : any): boolean
派发事件。
on(type : string, caller : any, listener : Function, args? : Array): ClientSceneObject
使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。
once(type : string, caller : any, listener : Function, args? : Array): ClientSceneObject
使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知,此侦听事件响应一次后自动移除。
off(type : string, caller : any, listener : Function, onceOnly? : boolean): ClientSceneObject
从 EventDispatcher 对象中删除侦听器。
offAll(type? : string): ClientSceneObject
从 EventDispatcher 对象中删除指定事件类型的所有侦听器。

Protected 方法

方法
updateShadow(): void
刷新影子,更新影子坐标,refreshCoordinate会调用此函数以便更新影子坐标

详情

actionIndex

actionIndex : number;

根据动作索引播放动作
@return number

constructor

constructor(soData? : SceneObject, scene? : ClientScene) :

构造函数

参数
soData [可选] 默认值=null 场景对象数据
scene [可选] 默认值=null 场景

dispose

dispose(): void :

释放

drawShadow

drawShadow(scalePer? : number): void :

绘制影子,比如当需要缩放影子时调用此函数

参数
scalePer [可选] 默认值=1.0 缩放率

stopRender

stopRender(stopCurrentFrame? : boolean): void :

停止渲染,Game.pause 时会自动调用场景中对象的此函数
停止行走图的播放以及所有动画的播放

参数
stopCurrentFrame [可选] 默认值=false 是否停止在当前帧 true=当前帧 false=初始设定帧

recoveryRender

recoveryRender(continueCurrentFrame? : boolean): void :

恢复渲染,Game.pause 时会自动调用场景中对象的此函数
恢复行走图的播放以及所有动画的播放

参数
continueCurrentFrame [可选] 默认值=false 行走图是否从当前帧开始恢复播放 true=当前帧 false=初始设定帧

refreshCoordinate

refreshCoordinate(): void :

进入新的坐标后应调用此函数
-- 场景中添加了场景对象后调用了该函数
-- 该函数调用了updateShadow,子类重写可实现更多功能

update

update(nowTime : number): void :

刷新:场景会调用所有场景上面的场景对象的该函数,执行逻辑应由子类实现,该类下此函数无任何代码实现

参数
nowTime 游戏时间戳(Game.pause会暂停游戏时间戳)

playAnimation

playAnimation(aniID : number, loop : boolean, isHit : boolean, fps? : number, superposition? : boolean, ignoreReplay? : boolean): GCAnimation :

播放动画,目标对象是行走图

参数
aniID 动画编号,指定的是动画编辑器预设的编号
loop 是否循环播放
isHit 是否显示被击中的效果,动画编辑器支持动画层仅命中时显示,如果设置为true即表示该动画所有层均显示
fps [可选] 默认值=null 帧率,如果无则使用Config.ANIMATION_FPS
superposition [可选] 默认值=false 叠加,默认不叠加,即同一个ID播放会重新播放该动画,停止该动画无法使用ID来停止而必须传入Animation对象
ignoreReplay  [可选] 默认值=false 忽略而非重头播放。默认重头播放,即非叠加时同一个ID播放会重新播放该动画
返回

GCAnimation

stopAnimation

stopAnimation(aniID : any): void :

停止动画

参数
aniID 动画编号/对象 number | [GCAnimation]

stopAllAnimation

stopAllAnimation(): void :

停止所有动画

hasListener

hasListener(type : string): boolean :

检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
@param type 事件的类型。

返回

如果指定类型的侦听器已注册,则值为 true;否则,值为 false。

event

event(type : string, data? : any): boolean :

派发事件。

参数
type    事件类型。
data    (可选)回调数据。<b>注意:</b>如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。
返回

此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。

on

on(type : string, caller : any, listener : Function, args? : Array): ClientSceneObject :

使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。

参数
type        事件的类型。
caller  事件侦听函数的执行域。a
listener    事件侦听函数。
args        (可选)事件侦听函数的回调参数。
返回

此 EventDispatcher 对象。a

once

once(type : string, caller : any, listener : Function, args? : Array): ClientSceneObject :

使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知,此侦听事件响应一次后自动移除。

参数
type        事件的类型。
caller  事件侦听函数的执行域。
listener    事件侦听函数。
args        (可选)事件侦听函数的回调参数。
返回

此 EventDispatcher 对象。

off

off(type : string, caller : any, listener : Function, onceOnly? : boolean): ClientSceneObject :

从 EventDispatcher 对象中删除侦听器。

参数
type        事件的类型。
caller  事件侦听函数的执行域。
listener    事件侦听函数。
onceOnly    (可选)如果值为 true ,则只移除通过 once 方法添加的侦听器。
返回

此 EventDispatcher 对象。

offAll

offAll(type? : string): ClientSceneObject :

从 EventDispatcher 对象中删除指定事件类型的所有侦听器。

参数
type    (可选)事件类型,如果值为 null,则移除本对象所有类型的侦听器。
返回

此 EventDispatcher 对象。

updateShadow

updateShadow(): void :

刷新影子,更新影子坐标,refreshCoordinate会调用此函数以便更新影子坐标


Copyright © 2021 - 2025