46、3D动画精灵技术解析与应用

3D动画精灵技术解析与应用

1. 3D动画精灵基础

在处理3D动画精灵时,代码会因需要检查精灵的活动状态而变得复杂。一个非活动的精灵是不可见的,因此改变其姿势没有意义。在 setPose() 方法中使用名称作为参数,这意味着调用者必须知道 poses[] 中使用的姿势名称,另一种选择是使用 Switch 节点中的子索引位置,但这更难记忆。

精灵的活动状态可以通过 setActive() 方法进行切换,该方法接受一个布尔参数:

public void setActive(boolean b)
{ 
    isActive = b;
    if (!isActive) {
        visIms.clear( );
        imSwitch.setChildMask( visIms );   // display nothing
    }
    else if (isActive)
        setPoseNum( currPoseNo );   // make visible
}

这种方法需要一个全局整数 currPoseNo ,用于记录当前姿势的索引,它在精灵一段时间不活动后使其可见。

2. 地板边界检测

AnimSprite3D 中的移动和旋转方法与 Sprite3D 基本相同,除了 move

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值