AWTK 骨骼动画控件用法

创建骨骼动画控件

atlas 指定纹理图集文件,skeleton 指定骨骼动画数据文件。数据文件和图片文件放在design/assets/default/raw/data目录下。

scale_x 和 scale_y 指定缩放比例,根据实际情况调整。

scale_time 指定播放速度,1 表示正常速度,小于 1 表示减速,大于 1 表示加速。

action 指定动画名称,多个动画用逗号分隔。

示例:

  <spine2d name="spine2d" x="c" y="m" w="240" h="200" atlas="res/assets/default/raw/data/spineboy-pma.atlas"
    skeleton="res/assets/default/raw/data/spineboy-pro.skel" scale_x="0.5" scale_y="0.5" 
    action="portal,run" />

播放动画

通过 spine2d_set_action 函数设置当前播放的动画名称。

/**
 * @method spine2d_set_action
 * 设置 当前动画名。
 * @annotation ["scriptable"]
 * @param {widget_t*} widget widget对象。
 * @param {const char*} action 当前动画名。
 *
 * @return {ret_t} 返回RET_OK表示成功,否则表示失败。
 */
ret_t spine2d_set_action(widget_t* widget, const char* action);

注册动画事件

通过 widget_on 函数注册动画事件。目前支持的事件有:

  • EVT_ANIM_START 动画开始事件
  • EVT_ANIM_ONCE 动画播放一次事件
  • EVT_ANIM_END 动画结束事件
static ret_t on_anim_start(void* ctx, event_t* e) {
  widget_animator_event_t* evt = widget_animator_event_cast(e);
  widget_animator_t* animator = (widget_animator_t*)evt->animator;
  log_debug("on_anim_start: %s\n", animator->name);

  return RET_OK;
}

static ret_t on_anim_once(void* ctx, event_t* e) {
  widget_animator_event_t* evt = widget_animator_event_cast(e);
  widget_animator_t* animator = (widget_animator_t*)evt->animator;
  log_debug("on_anim_once: %s\n", animator->name);

  return RET_OK;
}

static ret_t on_anim_end(void* ctx, event_t* e) {
  widget_animator_event_t* evt = widget_animator_event_cast(e);
  widget_animator_t* animator = (widget_animator_t*)evt->animator;
  log_debug("on_anim_end: %s\n", animator->name);

  return RET_OK;
}

  widget_child_on(win, "spine2d", EVT_ANIM_START, on_anim_start, win); 
  widget_child_on(win, "spine2d", EVT_ANIM_END, on_anim_end, win); 
  widget_child_on(win, "spine2d", EVT_ANIM_ONCE, on_anim_once, win); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值