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

📄 logoncanvas.java

📁 一款模仿劲舞团的手机游戏
💻 JAVA
字号:

import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.m3g.Graphics3D;
import javax.microedition.m3g.Loader;
import javax.microedition.m3g.Object3D;
import javax.microedition.m3g.World;

/**
 * @author trojan
 * 
 * ����������ʾС��LOGO
 * 
 */
public class LogonCanvas extends Canvas {

	private World world;// logo�

	private MyMIDLET midlet;// �������

	private Timer timer;// ��ʱ�����

	private int startTime;// ���濪ʼʱ��

	private int currentTime;// ���浱ǰʱ��

	private int pastTime;// �����ȥ��ʱ��

	private Graphics3D g3d;// ��D��ͼ����

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

	// ��ʼ������
	protected void initialize() {
		g3d = Graphics3D.getInstance();

		// ��ȡģ��
		readModel();

		startTime = (int) System.currentTimeMillis();

		// ���ʱ��
		timer = new Timer();
		timer.schedule(new LogonTask(), 0, 100);

	}

	// ��ͼ����
	protected void paint(Graphics g) {
		// ��ȡ��ȥ��ʱ��
		pastTime = getPastTime();
		if (pastTime < 3000) {
			render(g, pastTime);
		}
		// LOGO��ʾ�����,ֹͣ��ʱ��,��������ķ�����ʼ��Ϸ
		else {
			timer.cancel();
			midlet.startGame();
		}
	}

	// ��D��Ⱦ����
	protected void render(Graphics g, int time) {
		g3d.bindTarget(g);

		world.animate(pastTime);
		g3d.setViewport(getWidth() / 2 - 88, getHeight() / 2 - 110, 176, 220);
		g3d.render(world);

		g3d.releaseTarget();
	}

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

		// ��ȡWorld
		Object3D[] firstObj = load("logo");

		for (int i = 0; i < firstObj.length; i++) {
			if (firstObj[i] instanceof World) {
				world = (World) firstObj[i];
			}
		}
	}

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

		Object3D[] objs;

		try {
			objs = Loader.load("/m3g/" + m3gPath + ".m3g");
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}
		return objs;
	}

	// ��ȡ��ǰʱ��
	protected void getCurrentTime() {
		currentTime = (int) System.currentTimeMillis();
	}

	// ��ȡ��Ϸʱ��
	protected int getPastTime() {
		getCurrentTime();
		return Math.abs(currentTime - startTime);
	}

	// ��ʱ��,����ˢ��LOGO
	class LogonTask extends TimerTask {

		public void run() {
			repaint();
		}

	}
}

⌨️ 快捷键说明

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