75 lines
1.7 KiB
TypeScript
75 lines
1.7 KiB
TypeScript
/*
|
||
* @Author: dgflash
|
||
* @Date: 2022-08-04 15:08:35
|
||
* @LastEditors: dgflash
|
||
* @LastEditTime: 2022-08-04 15:26:26
|
||
*/
|
||
import { Color, Component, EventTouch, sp, Vec3, _decorator } from "cc";
|
||
import { LayerUtil } from "../../../../../extensions/oops-plugin-framework/assets/core/utils/LayerUtil";
|
||
import { smc } from "../../common/SingletonModuleComp";
|
||
import RoleSpineAnimator from "./RoleSpineAnimator";
|
||
|
||
const { ccclass, property } = _decorator;
|
||
|
||
/**
|
||
* RPG SPINE角色模型
|
||
*/
|
||
@ccclass('RoleSpine')
|
||
export class RoleSpine extends Component {
|
||
@property({ type: RoleSpineAnimator, tooltip: '动画控制器' })
|
||
animator: RoleSpineAnimator = null!;
|
||
|
||
private spine!: sp.Skeleton;
|
||
|
||
onLoad() {
|
||
// 角色控制组件
|
||
|
||
this.initAnimator();
|
||
// this.setSkin("magic");
|
||
// this.animator.play("idle", true);
|
||
LayerUtil.setNodeLayer(LayerUtil.MAP, this.node);
|
||
}
|
||
|
||
/** 初始化动画 */
|
||
protected initAnimator() {
|
||
this.spine = this.animator.getComponent(sp.Skeleton)!;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
setSkin(value: string): void {
|
||
console.log("RoleSpine setSkin", value);
|
||
this.spine.setSkin(value);
|
||
}
|
||
play(animName: string, loop: boolean): void {
|
||
this.spine.setAnimation(0, animName, loop);
|
||
}
|
||
setAlpha(value: number): void {
|
||
var color: Color = this.spine.color;
|
||
color.a = 255 * (value / 1);
|
||
this.spine.color = color;
|
||
}
|
||
|
||
setPos(value: Vec3): void {
|
||
this.node.position = value;
|
||
}
|
||
|
||
checkTouch(event: EventTouch): boolean {
|
||
return false;
|
||
}
|
||
|
||
onDestroy() {
|
||
this.node.destroy();
|
||
}
|
||
|
||
walk() {
|
||
|
||
}
|
||
|
||
idle() {
|
||
|
||
}
|
||
}
|