作者:imtrash 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=765
创建3D效果非常简单,如果你有正确的工具,创建复杂的3D动画效果并不困难。在这个例子中,骰子和动画是用3DMAX来创建的。
为了取代计算一个mesh的运动,运动可以被预先创建并保存在Mascot Capsule V3的mtra文件里或JSR 184的M3G文件里。
在下面的例子中,创建了6个动画,每个动画都针对一个骰子面。
为确保每个抛出的骰子是不同的,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
原文地址:点击这里