GameSprite 游戏精灵类
各种高级显示对象的基类(子类包含Avatar、Animation、各种UI控件等)
-- 滤镜叠加实现(即父子级滤镜不会被覆盖而是叠加)
-- 色调(R+,B+,G+,GRAY,Rx,Gx,Bx)
-- 色相(采用ColorMatrix)
维护人员:黑暗之神KDS
创建时间:2019-02-01
继承 →Sprite
子类 GCAnimation、Avatar、ClientSceneLayer、GameImageLayer、GameLayer
Public 属性
属性 |
---|
ON_DISPOSE : string; 静态事件:当销毁前派发的事件 |
objectID : number; 唯一ID |
isDisposed : boolean; 是否已释放 |
data : any; 装载的自定义数据,此外作为List的项显示对象界面时,该变量会记录其对应的UIListItemData |
opacity : number; 透明度 最终透明度alpha = opacity * dpOpacity * opacityPer(目前仅用于编辑器内) |
rotation1 : number; 旋转度1 最终旋转度rotation = rotation1 + rotation2 默认值=0 |
rotation2 : number; 旋转度2 最终旋转度rotation = rotation1 + rotation2 默认值=0 |
filterEnabled : boolean; 是否允许使用滤镜(允许使用时材质效果才会生效) 默认值 = true |
hue : number; 色相 -180~180 |
blur : number; 模糊度 0~N |
disabled : boolean; 不可用状态,将禁用鼠标响应并且调整为灰度 |
dpX : number; 深度坐标系:水平坐标 |
dpY : number; 深度坐标系:垂直坐标 |
dpZ : number; 深度坐标系:深度,该值与相机深度的距离决定实际显示效果,如近大远小 |
dpWidth : number; 深度坐标系:高度(像素) |
dpHeight : number; 深度坐标系:宽度(像素) |
dpOpacity : number; 深度坐标系:透明度,最终透明度会乘以这个值 |
dpScaleX : number; 深度坐标系:水平缩放比例 默认值=1 表示100% |
dpScaleY : number; 深度坐标系:垂直缩放比例 默认值=1 表示100% |
useDPCoordScaleMode : boolean; 是否使用缩放模式,图片一般更改尺寸,而界面、动画、立绘则一般更改缩放倍率 |
dpDisplayPriority : number; 显示优先度,用于同深度dpZ时区分显示,越大,显示在越前面 |
_dpDirty : boolean; 用于项目层实现深度坐标系代码用变量:脏标记 |
_dpCameraX : number; 用于项目层实现深度坐标系代码用变量:相机水平坐标 |
_dpCameraY : number; 用于项目层实现深度坐标系代码用变量:相机垂直坐标 |
_dpCameraZ : number; 用于项目层实现深度坐标系代码用变量:相机深度坐标 |
_dpTextureWidth : number; 用于项目层实现深度坐标系代码用变量:图片实际尺寸宽度 |
_dpTextureHeight : number; 用于项目层实现深度坐标系代码用变量:图片实际尺寸高度 |
Public 方法
方法 |
---|
setTonal(r : number, g : number, b : number, gray : number, mr? : number, mg? : number, mb? : number): void 更改色调 |
getTonal(): number 获取色调参数:r g b gray mr mg mb |
isInherit(sp : TreeNode): boolean 是否继承于指定的对象 |
dpCoordToRealCoord(): void 根据【深度坐标】计算并设置【实际坐标】 |
realCoordToDPCoord(calcCoord : boolean, calcSize : boolean): any 根据【实际的坐标】转换为【深度坐标】 |
installMaterialData(materialData : any, resetTime? : boolean): void 安装材质数据 |
getAllMaterialDatas(): any 获取当前拥有的全材质数据,可用于储存,同时可使用 installMaterialData 安装该材质数据 |
addMaterial(materialData : MaterialData, passage? : number): boolean 添加材质,根据材质数据 |
addMaterialAt(materialData : MaterialData, index : number, passage? : number): boolean 添加材质到指定的位置上,根据材质数据 |
addMaterialByID(materialID : number, passage? : number): boolean 添加材质,根据材质ID,材质参数使用默认值 |
addMaterialAtByID(materialID : number, index : number, passage? : number): boolean 添加材质,根据材质ID,材质参数使用默认值 |
removeMaterial(materialData : MaterialData, passage? : number): boolean 移除材质,根据材质数据,如若该数据已存在里面则会被移除 |
removeMaterialAt(index : number, passage? : number): boolean 移除材质,根据材质所在的位置 |
removeMaterialByID(materialID : number, passage? : number): boolean 移除材质,根据材质ID |
getMaterialByID(materialID : number, passage? : number): MaterialData 获取材质数据,根据ID |
getMaterialAt(index : number, passage? : number): MaterialData 获取材质数据,根据位置索引 |
getMaterialLength(passage? : number): number 获取指定通道内的材质数据总数 |
getMaterialPassLength(): number 获取材质通道总数 |
clearMaterials(): void 清空所有材质 |
clearMaterialsInPass(passage : number, deletePass? : boolean): void 清空指定通道里的材质 |
setMaterialIndex(material : MaterialData, toIndex : number, passage? : number): boolean 更换同一个通道内的材质位置 |
swapMaterialIndex(fromIndex : number, toIndex : number, passage? : number): boolean 更换材质位置 |
swapMaterialPass(passFromIndex : number, passToIndex : number): boolean 更换通道顺序,通道顺序影响渲染先后顺序 |
setMaterialsByGameSprite(gameSprite : GameSprite, cloneMode : boolean): void 设置为指定的GameSprite相同的材质 |
setMaterialDirty(): void 调用此函数表示更改了材质,让系统根据最新的材质计算来进行渲染 |
setMaterialValueFast(materialValues : any, passage? : number): void 调用此函数快速设置传递给shader的值,比直接修改材质后调用setMaterialDirty效率要更高一些,减少了数据的转换计算。 |
详情
ON_DISPOSE
ON_DISPOSE : string;
静态事件:当销毁前派发的事件
// 创建对象
var sp = new GameSprite();
// 监听当销毁时事件
sp.once(GameSprite.ON_DISPOSE,this,()=>{
// to do
});
// 销毁该对象
sp.dispose();
hue
hue : number;
色相 -180~180
内部使用色调滤镜实现
blur
blur : number;
模糊度 0~N
内部使用模糊滤镜实现
setTonal
setTonal(r : number, g : number, b : number, gray : number, mr? : number, mg? : number, mb? : number): void :
更改色调
参数
r 红色+ -255~255
g 绿色+ -255~255
b 蓝色+ -255~255
gray 灰度 0-100
mr [可选] 默认值=1 0~5
mg [可选] 默认值=1 0~5
mb [可选] 默认值=1 0~5
getTonal
getTonal(): number :
获取色调参数:r g b gray mr mg mb
isInherit
isInherit(sp : TreeNode): boolean :
是否继承于指定的对象
参数
sp 指定的对象
dpCoordToRealCoord
dpCoordToRealCoord(): void :
根据【深度坐标】计算并设置【实际坐标】
由项目上层实现
如更改了dpX、dpY、dpWidth、dpHeight,根据当前深度dpZ以及镜头设置实际的x、y、width、height(或scaleX、scaleY)
realCoordToDPCoord
realCoordToDPCoord(calcCoord : boolean, calcSize : boolean): any :
根据【实际的坐标】转换为【深度坐标】
由项目上层实现
如更改了x、y、width、height后想要获取其对应当前深度下的dpX、dpY、dpWidth、dpHeight(或dpScaleX、dpScaleY)
参数
calcCoord 是否计算坐标,若计算则会转换并将dpX和dpY设置为转换值
calcSize 是否计算尺寸,若计算则会转换并将dpWidth和dpHeight设置为转换值(useDPCoordScaleMode模式下则是dpScaleX和dpScaleY)
返回
any 返回 { dpX: number, dpy: number, dpScaleX: number, dpScaleY: number, dpWidth: number, dpHeight: number }
installMaterialData
installMaterialData(materialData : any, resetTime? : boolean): void :
安装材质数据
参数
materialData 类型 { materials: MaterialData[] }[]
resetTime [可选] 默认值=true 是否重置材质数据内的过渡时间
getAllMaterialDatas
getAllMaterialDatas(): any :
获取当前拥有的全材质数据,可用于储存,同时可使用 installMaterialData 安装该材质数据
返回
{ materials: MaterialData }
addMaterial
addMaterial(materialData : MaterialData, passage? : number): boolean :
添加材质,根据材质数据
参数
material 材质数据
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
addMaterialAt
addMaterialAt(materialData : MaterialData, index : number, passage? : number): boolean :
添加材质到指定的位置上,根据材质数据
参数
material 材质数据
index 位置
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
addMaterialByID
addMaterialByID(materialID : number, passage? : number): boolean :
添加材质,根据材质ID,材质参数使用默认值
参数
material 材质数据
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
addMaterialAtByID
addMaterialAtByID(materialID : number, index : number, passage? : number): boolean :
添加材质,根据材质ID,材质参数使用默认值
参数
material 材质数据
index 位置
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
removeMaterial
removeMaterial(materialData : MaterialData, passage? : number): boolean :
移除材质,根据材质数据,如若该数据已存在里面则会被移除
参数
materialData 材质数据
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
removeMaterialAt
removeMaterialAt(index : number, passage? : number): boolean :
移除材质,根据材质所在的位置
参数
index 材质数据所在的位置索引
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
removeMaterialByID
removeMaterialByID(materialID : number, passage? : number): boolean :
移除材质,根据材质ID
参数
materialID 材质数据ID
passage [可选] 默认值=0 所在的通道
返回
boolean 是否成功
getMaterialByID
getMaterialByID(materialID : number, passage? : number): MaterialData :
获取材质数据,根据ID
参数
materialID 材质数据ID
passage [可选] 默认值=0 所在的通道
返回
MaterialData 材质数据
getMaterialAt
getMaterialAt(index : number, passage? : number): MaterialData :
获取材质数据,根据位置索引
参数
index 所在的位置索引
passage [可选] 默认值=0 所在的通道
返回
MaterialData 材质数据
getMaterialLength
getMaterialLength(passage? : number): number :
获取指定通道内的材质数据总数
参数
passage [可选] 默认值=0 所在的通道
返回
number
getMaterialPassLength
getMaterialPassLength(): number :
获取材质通道总数
返回
number
clearMaterials
clearMaterials(): void :
清空所有材质
clearMaterialsInPass
clearMaterialsInPass(passage : number, deletePass? : boolean): void :
清空指定通道里的材质
参数
passage 所在的通道
deletePass 删除通道
setMaterialIndex
setMaterialIndex(material : MaterialData, toIndex : number, passage? : number): boolean :
更换同一个通道内的材质位置
参数
material 材质数据
toIndex 所在的位置索引
passage [可选] 默认值=0 所在的通道
返回
boolean 是否更换成功
swapMaterialIndex
swapMaterialIndex(fromIndex : number, toIndex : number, passage? : number): boolean :
更换材质位置
参数
fromIndex 材质所在的原始位置
toIndex 材质需要更换至的新位置
passage [可选] 默认值=0 所在的通道
返回
boolean 是否更换成功
swapMaterialPass
swapMaterialPass(passFromIndex : number, passToIndex : number): boolean :
更换通道顺序,通道顺序影响渲染先后顺序
参数
passFromIndex 材质通道所在的原始位置
passToIndex 材质通道需要更换至的新位置
返回
boolean 是否更换成功
setMaterialsByGameSprite
setMaterialsByGameSprite(gameSprite : GameSprite, cloneMode : boolean): void :
设置为指定的GameSprite相同的材质
参数
gameSprite 指定的参考GameSprite
cloneMode 是否克隆模式,如果是则表示使用克隆的方式复制材质数据(MaterialData),否则是引用
setMaterialDirty
setMaterialDirty(): void :
调用此函数表示更改了材质,让系统根据最新的材质计算来进行渲染
通常情况下无需主动调用此函数,但如果修改了MaterialData内部的数据的话可调用该函数让对象刷新
setMaterialValueFast
setMaterialValueFast(materialValues : any, passage? : number): void :
调用此函数快速设置传递给shader的值,比直接修改材质后调用setMaterialDirty效率要更高一些,减少了数据的转换计算。
比如需要帧刷只更新少数几个数值时可以调用该函数进行优化计算。
【关于变量名】
-- 变量名规格:mu材质编号_变量属性
【关于值】
-- number 类型的属性直接设置
-- 颜色属性请设置为 r,g,b 其中r/g/b取值范围为0~1
-- 不支持贴图设置,更改贴图仍然需要
【materialValues参数规格】
{
mu2_abc: 1,
mu3_color: 0.5,0.5,1
}
参数
materialValues 需要更新的材质数据
passage [可选] 默认值=0 所在的通道