initialize3d.java

来自「一款模仿劲舞团的手机游戏」· Java 代码 · 共 125 行

JAVA
125
字号


import java.io.IOException;
import javax.microedition.m3g.Light;
import javax.microedition.m3g.Loader;
import javax.microedition.m3g.Object3D;
import javax.microedition.m3g.World;

/**
 * @author trojan
 * 
 * �������ڶ�ȡ��Dģ��,�������е���
 */
public class Initialize3D {

	// -------------------------------�����----------------------------

	private MyMIDLET midlet;

	private World[] firstWorld;// ����һģ������

	private World[] secondWorld;// ����������

	private Object3D[] firstObj;// ����һ��D��������

	private Object3D[] secondObj;// �������D��������

	private Light firstLight;// ����һ�ƹ�

	private Light secondLight;// ������ƹ�

	private String[] m3gPathArray = { "act0", "act2", "act5", "act6", "act7",
			"act8", "act9", "act12", "act15"};// ������ģ�͵�·��


	// --------------------------------����ֽ���------------------------------
	//
	//
	// --------------------------------��������------------------------------

	// ���췽��
	public Initialize3D(MyMIDLET midlet) {
		// TODO �Զ���ɹ��캯����
		this.midlet = midlet;
		initialize();
	}

	// ��ʼ������,ѭ����ȡģ��
	protected void initialize() {
		firstWorld = new World[m3gPathArray.length];
		secondWorld = new World[m3gPathArray.length];

		for (int i = 0; i < m3gPathArray.length; i++) {
			readModel(i);
		}
	}

	// ��ȡģ�ͷ���
	public void readModel(int index) {

		// ��ȡWorld
		midlet.setPercent(index + "1%");
		firstObj = load(m3gPathArray[index]);
		midlet.setPercent(index + "2%");
		secondObj = load(m3gPathArray[index]);
		midlet.setPercent(index + "3%");
		for (int i = 0; i < firstObj.length; i++) {
			if (firstObj[i] instanceof World) {
				firstWorld[index] = (World) firstObj[i];
			}
		}
		midlet.setPercent(index + "4%");
		for (int i = 0; i < secondObj.length; i++) {
			if (secondObj[i] instanceof World) {
				secondWorld[index] = (World) secondObj[i];
			}
		}
		midlet.setPercent(index + "5%");

		// ���õƹ�
		firstLight = new Light();
		firstLight.setMode(Light.AMBIENT);
		firstLight.setIntensity(3.0f);
		secondLight = new Light();
		secondLight.setMode(Light.AMBIENT);
		secondLight.setIntensity(3.0f);
		midlet.setPercent(index + "6%");
		firstWorld[index].addChild(firstLight);
		secondWorld[index].addChild(secondLight);
		midlet.setPercent(index + "7%");
	}

	// ��M3G�ļ��ж�ȡ��D��������
	public Object3D[] load(String m3gPath) {

		Object3D[] objs;

		try {
			objs = Loader.load("/m3g/" + m3gPath + ".m3g");
		} catch (IOException e) {
			e.printStackTrace();
			midlet.setPercent("���ִ�����Ϸ�˳�");
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e1) {
				// TODO �Զ���� catch ��
				e1.printStackTrace();
			}
			midlet.destroyApp(false);
			midlet.destroyed();
			return null;
		}
		return objs;
	}

	// ���������
	public World[] getWorld(int index) {
		if (index == 0) {
			return firstWorld;
		} else {
			return secondWorld;
		}
	}
}

⌨️ 快捷键说明

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