共计 2146 个字符,预计需要花费 6 分钟才能阅读完成。
SPRITE 精灵 脚本界面
该接口派生自 IWorldInstance,用于添加特定于 Sprite 插件的 API。ISpriteInstance
Sprite 对象类型还定义了一个派生自 IObjectClass 的接口,用于添加影响对象类型的 Sprite API,例如动态动画。ISpriteObjectType
Sprite 精灵 实例事件
有关标准实例事件对象属性,请参阅实例事件。
“换帧”
在播放动画期间,当前显示的动画帧发生更改时触发。事件对象具有其他属性:
animationName:当前正在播放的动画名称的字符串
animationFrame:从零开始的索引,其中包含动画中新帧的动画帧号
“动画结束”
当当前动画的播放结束时触发。事件对象具有其他属性:
animationName:已完成的动画名称的字符串
Sprite 精灵实例 API
动画
对表示当前动画的 IAnimation 脚本接口的引用,该接口可用于访问其他详细信息,例如动画中的帧。
def setAnimation(name, from="beginning"):
按其名称的字符串设置当前动画(不区分大小写)。如果动画名称不存在,则会引发异常。可以设置为在新动画中切换到相同的帧索引,或倒回到第一帧。from"current-frame""beginning"
# 请注意,如果正在设置的动画已在播放,则此方法不执行任何操作,即使设置为从头开始播放也是如此。如果要重新启动动画,请改用。startAnimation("beginning")
def getAnimation(name):
通过名称的不区分大小写的字符串获取 Sprite 对象中动画的 IAnimation。如果未找到动画,则返回。null
动画名称
当前动画名称的只读字符串。使用该方法更改动画。setAnimation()
def startAnimation(from="current-frame"):
开始播放当前动画。可以设置为从现有帧播放,或从第一帧播放。from"current-frame""beginning"
def stopAnimation():
停止播放当前动画。
动画帧
当前动画帧的从零开始的索引。
animationFrame 标签
当前动画帧标记的字符串(未设置时为空字符串)。如果分配了一个新的标签,并且当前动画具有多个具有相同标签的动画帧,那么它将使用第一个动画帧。
动画速度
当前动画播放速度,以动画帧数 / 秒为单位。
动画 RepeatToFrame
重复动画时要倒回到的动画帧的从零开始的索引。
图像宽度
def getImageSize():
只读数字,指示当前动画帧的源图像的大小(以像素为单位)。该方法允许同时获取两个值。
def getImagePointCount():
返回当前动画帧上的图像点数。
def getImagePointX(name_or_index):
在布局坐标中返回图像点在当前动画帧上的位置。在使用 3D 网格畸变时,Z 坐标非常有用。图像点由其名称的不区分大小写的字符串或索引标识。请注意,图像点 0 是原点,因此索引 1 是第一个图像点。如果未找到图像点,则返回原点。变体返回。getImagePoint[x, y, z]
def getImagePointY(name_or_index):
pass
def getImagePointZ(name_or_index):
pass
def getPolyPointCount():
返回当前动画帧上的碰撞多边形点数。
def getPolyPointX(index):
按从零开始的索引返回碰撞多边形点在布局坐标中当前动画帧上的位置。变体返回。getPolyPoint[x, y]
def getPolyPointY(index):
pass
def getPolyPoint(index):
按从零开始的索引返回碰撞多边形点在布局坐标中当前动画帧上的位置。变体返回。getPolyPoint[x, y]
第一个多边形点在末尾(在索引处)再次重复,因为它可以更轻松地遍历碰撞多边形的每个边。getPolyPointCount()
def setSolidCollisionFilter(isInclusive, tags):
根据标签启用或禁用与 Solid 行为的碰撞。使用以空格分隔的标记名称字符串进行指定。如果为 true,则仅使用与任何给定标签匹配的实体启用碰撞;如果未指定标签,则禁用所有实体的碰撞。如果为 false,则使用与任何给定标签匹配的实体禁用碰撞;如果未指定标签,则为所有实体启用碰撞(默认值)。另请参阅 ISolidBehaviorInstance 的属性。tagsisInclusiveisInclusivetags
async def replaceCurrentAnimationFrame(blob):
将当前动画帧图像替换为表示图像文件(如 PNG 图像)的 Blob 的内容。可以在本地生成或从 URL 检索 Blob,例如:
# // Loading an image from a URL
const response = await fetch(url);
const blob = await response.blob();
await spriteInst.replaceCurrentAnimationFrame(blob);