⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example3.java

📁 3D J2ME 代码集合
💻 JAVA
字号:

import javax.microedition.m3g.*;

/**
 * Animation and interpolation test.
 *
 * The result should be a smoothly rotating white cube over a black
 * "floor".
 *
 */
public class Example3 extends ExampleBase
{

    private World iWorld;

    public Example3()
    {
        super(SHOW_RENDER_TIME);
    }

    protected void render(int time)
    {
        iWorld.animate(time);
        iWorld.align(null);
        Graphics3D.getInstance().render(iWorld);
    }

    protected void initialize()
    {
        iWorld = new World();
        Mesh box = createBox();

        Background bg = new Background();
        bg.setColor(0xff204080);
        iWorld.setBackground(bg);

        Camera camera = new Camera();
        camera.setPerspective(90.0f, 1.0f, 1.0f, 100.0f);
        camera.setTranslation(0.0f, 0.0f, 30.0f);
        iWorld.addChild(camera);
        iWorld.setActiveCamera(camera);

        Light light = new Light();
        light.setTranslation(0.0f, 0.0f, 30.0f);
        iWorld.addChild(light);

        Node ground = (Node)box.duplicate();
        ground.setTranslation(0.0f, -15.0f, 0.0f);
        ground.setScale(2.0f, 0.1f, 2.0f);
        iWorld.addChild(ground);

        for (int i = 0; i < 1; i++)
        {
            int num = 5;
            int duration = 3000;
            int comps = 4;

            Node node = (Node)box.duplicate();
            node.setScale(0.5f, 0.5f, 0.5f);
            iWorld.addChild(node);

   //       KeyframeSequence seq = new KeyframeSequence(num, comps, KeyframeSequence.LINEAR);
         KeyframeSequence seq = new KeyframeSequence(num, comps, KeyframeSequence.SLERP);
//          KeyframeSequence seq = new KeyframeSequence(num, comps, KeyframeSequence.SPLINE);
    //        KeyframeSequence seq = new KeyframeSequence(num, comps, KeyframeSequence.SQUAD);
//          KeyframeSequence seq = new KeyframeSequence(num, comps, KeyframeSequence.STEP);
//          seq.setRepeatMode(KeyframeSequence.CONSTANT);
            seq.setRepeatMode(KeyframeSequence.LOOP);
            seq.setDuration(duration);
            for (int j = 0; j < num; j++)
            {
                float[] value = new float[comps];
                for (int k = 0; k < comps; k++)
                {
                    value[k] = ((float)random() - 0.5f) * 30.0f;
                }
                seq.setKeyframe(j, (j * 2 + 1) * duration / (num * 2), value);
            }

            AnimationController ctrl = new AnimationController();

//          AnimationTrack track = new AnimationTrack(seq, AnimationTrack.TRANSLATION);
            AnimationTrack track = new AnimationTrack(seq, AnimationTrack.ORIENTATION);
            track.setController(ctrl);

            node.addAnimationTrack(track);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -