Java 3D 骰子动画代码范例

文章介绍了创建3D效果和复杂3D动画效果的方法,以骰子动画为例,说明可用3DMAX创建骰子和动画,运动可预先创建并保存。还给出动画代码示例,包括建立动作、载入模型、合并动画文件等,最后提供范例程序和源代码下载地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:imtrash 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=765

创建3D效果非常简单,如果你有正确的工具,创建复杂的3D动画效果并不困难。在这个例子中,骰子和动画是用3DMAX来创建的。

为了取代计算一个mesh的运动,运动可以被预先创建并保存在Mascot Capsule V3mtra文件里或JSR 184M3G文件里。

在下面的例子中,创建了6个动画,每个动画都针对一个骰子面。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype>

为确保每个抛出的骰子是不同的,Z轴旋转是随机的

下面是动画的代码示例:

建立每个动作并存储帧的数量。

private final int []frameLength = new int[] {80,65,70,80,55,75};

载入骰子模型。

diceFigure = new Figure("/res/dice.mbac");

六个不同动画可以全被合并到一个文件而不必使用六个不同的动画文件

action[0] = new ActionTable("/res/one.mtra");

action[1] = new ActionTable("/res/two.mtra");

action[2] = new ActionTable("/res/three.mtra");

action[3] = new ActionTable("/res/four.mtra");

action[4] = new ActionTable("/res/five.mtra");

action[5] = new ActionTable("/res/six.mtra");

在游戏循环中要保持动画帧的不断更新。

if(diceOneFrame < action[diceOneIndex].getNumFrames(0)){

diceOneFrame += action[diceOneIndex].getNumFrames(0)/frameLength[diceOneIndex];

}

diceFigure.setPosture(action[diceOneIndex], 0, diceOneFrame);

下载范例程序和源代码:

http://developer.sonyericsson.com/getDocument.do?docId=73634

原文地址:点击这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值