亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? retainedmodemidlet.java

?? 3D演示例子,初步認識3D的繪制,編程. 適合初學者!
?? JAVA
字號:
/******************************************************************************//** *	@file	RetainModeMidlet.java *	@brief	A simple example of a retained mode M3G midlet * *	Copyright (C) 2004 Superscape plc * *	This file is intended for use as a code example, and *	may be used, modified, or distributed in source or *	object code form, without restriction, as long as *	this copyright notice is preserved. * *	The code and information is provided "as-is" without *	warranty of any kind, either expressed or implied. *//******************************************************************************/package com.superscape.m3g.wtksamples.retainedmode;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Font;import javax.microedition.lcdui.CommandListener;import java.lang.IllegalArgumentException;import java.io.IOException;import java.io.InputStream;import java.io.ByteArrayOutputStream;import javax.microedition.lcdui.Image;import java.util.Timer;import java.util.TimerTask;import javax.microedition.m3g.*;public class RetainedModeMidlet extends MIDlet implements CommandListener{	private Display myDisplay = null;	private JesterCanvas myCanvas = null;	private Timer myRefreshTimer = new Timer();	private TimerTask myRefreshTask = null;	private Command exitCommand = new Command("Exit", Command.ITEM, 1);	Graphics3D myGraphics3D = Graphics3D.getInstance();	World myWorld = null;	private long worldStartTime = 0;		int viewport_x;	int viewport_y;	int viewport_width;	int viewport_height;		int currentContent = 0;	/**	 * RetainedModeMidlet - default constructor.	 */	public RetainedModeMidlet()	{		super();		// Set up the user interface.		myDisplay = Display.getDisplay(this);		myCanvas = new JesterCanvas(this);		myCanvas.setCommandListener(this);		myCanvas.addCommand(exitCommand);	}	/**	 * startApp()	 */	public void startApp() throws MIDletStateChangeException	{		myDisplay.setCurrent(myCanvas);		try		{			myWorld = (World)Loader.load("/com/superscape/m3g/wtksamples/retainedmode/content/swerve.m3g")[0];			setupAspectRatio();		}		catch(Exception e)		{			e.printStackTrace();		}		worldStartTime = System.currentTimeMillis();		myCanvas.repaint();	}	/**	 * pauseApp()	 */	public void pauseApp()	{		// System.out.println("pauseApp()");	}	/**	 * destroyApp()	 */	public void destroyApp(boolean unconditional) throws MIDletStateChangeException	{		myRefreshTimer.cancel();		myRefreshTimer = null;	}		/**	 * Make sure that the content is rendered with the correct aspect ratio.	 */	void setupAspectRatio()	{		viewport_x = 0;		viewport_y = 0;		viewport_width = myCanvas.getWidth();		viewport_height = myCanvas.getHeight();				Camera cam = myWorld.getActiveCamera();				float[] params = new float[4];		int type = cam.getProjection(params);		if(type != Camera.GENERIC)		{			//calculate window aspect ratio			float waspect=viewport_width/viewport_height;			if (waspect<params[1])			{				float height = viewport_width/params[1];				viewport_height=(int)height;				viewport_y=(myCanvas.getHeight()-viewport_height)/2;			}			else			{				float width = viewport_height*params[1];				viewport_width=(int)width;				viewport_x=(myCanvas.getWidth()-viewport_width)/2;			}		}	}	/**	 * MIDlet paint method.	 */	public void paint(Graphics g)	{		if(myCanvas == null || myGraphics3D == null || myWorld == null)			return;				if(g.getClipWidth() != viewport_width ||		   g.getClipHeight() != viewport_height ||		   g.getClipX() != viewport_x ||		   g.getClipY() != viewport_y)		{			g.setColor(0x00);			g.fillRect(0, 0, myCanvas.getWidth(), myCanvas.getHeight());		}		// Delete any pending refresh tasks.		if(myRefreshTask != null)		{			myRefreshTask.cancel();			myRefreshTask = null;		}		// Update the world to the current time.		long startTime = System.currentTimeMillis() - worldStartTime;				if(currentContent == 0 && startTime > 5000)		{			currentContent++;			try			{				myWorld = (World)Loader.load("/com/superscape/m3g/wtksamples/retainedmode/content/skaterboy.m3g")[0];				setupAspectRatio();			}			catch(Exception e)			{				e.printStackTrace();			}						g.setColor(0x00);			g.fillRect(0,0,myCanvas.getWidth(), myCanvas.getHeight());		}				// update any animations in the world		int validity = myWorld.animate((int)startTime);		// render the 3d scene		myGraphics3D.bindTarget(g);		myGraphics3D.setViewport(viewport_x, viewport_y, viewport_width, viewport_height);		myGraphics3D.render(myWorld);		myGraphics3D.releaseTarget();		if(validity < 1)		{	// The validity too small; allow a minimum of 1ms.			validity = 1;		}		if(validity == 0x7fffffff)		{	// The validity is infinite; scehdule a refresh in 1 second.			myRefreshTask = new RefreshTask();			myRefreshTimer.schedule(myRefreshTask, 1000);		}		else		{	// Schedule a refresh task.			// Create a new refresh task.			myRefreshTask = new RefreshTask();			// Schedule an update.			myRefreshTimer.schedule(myRefreshTask, validity);		}	}	/**	 * Handle commands.	 */	public void commandAction(Command cmd, Displayable disp)	{		if (cmd == exitCommand)		{			try			{				destroyApp(false);				notifyDestroyed();			}			catch(Exception e)			{				e.printStackTrace();			}		}	}	/**	 * Inner class for refreshing the view.	 */	private class RefreshTask extends TimerTask	{		public void run()		{			// Get the canvas to repaint itself.			myCanvas.repaint(viewport_x, viewport_y, viewport_width, viewport_height);		}	}	/**	 * Inner class for handling the canvas.	 */	class JesterCanvas extends Canvas	{		RetainedModeMidlet myTestlet;		/**		 * Construct a new canvas		 */		JesterCanvas(RetainedModeMidlet Testlet) { myTestlet = Testlet; }		/**		 * Initialize self.		 */		void init() { }		/**		 * Cleanup and destroy.		 */		void destroy() { }		/*		 * Ask myTestlet to paint itself		 */		protected void paint(Graphics g) { myTestlet.paint(g); }		/*		 * Ask myTestlet to handle keyPressed events		 */		protected void keyPressed(int keyCode) {}		/*		 * Ask myTestlet to handle keyReleased events		 */		protected void keyReleased(int keyCode) {}		/*		 * Ask myTestlet to handle keyRepeated events		 */		protected void keyRepeated(int keyCode) {}		/*		 * Ask myTestlet to handle pointerDragged events		 */		protected void pointerDragged(int x, int y) {}		/*		 * Ask myTestlet to handle pointerPressed events		 */		protected void pointerPressed(int x, int y) {}		/*		 * Ask myTestlet to handle pointerReleased events		 */		protected void pointerReleased(int x, int y) {}	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av中文字幕在线不卡| 国产欧美一区视频| 久久99久久99精品免视看婷婷| 国产日韩欧美高清| 8v天堂国产在线一区二区| 欧洲日韩一区二区三区| 成人av先锋影音| 国产精品18久久久久久久久久久久| 亚洲欧美另类久久久精品| 亚洲色图制服丝袜| 亚洲国产精品一区二区www| 免费看欧美女人艹b| 国产伦精品一区二区三区免费 | 日韩国产一二三区| 精品亚洲成a人| 91麻豆精东视频| 91精品国产综合久久精品性色| 日韩免费视频一区| 亚洲精品福利视频网站| 日本欧美一区二区在线观看| 成人av动漫网站| 在线观看中文字幕不卡| 久久综合久久久久88| 亚洲一区成人在线| 懂色一区二区三区免费观看| 欧美日韩精品系列| 国产精品久久网站| 精品制服美女丁香| 欧美二区三区91| 亚洲免费观看高清完整版在线| 国产馆精品极品| 精品美女在线播放| 美女网站色91| 欧美一区二区三区四区在线观看| 欧美精彩视频一区二区三区| 男人的j进女人的j一区| 欧美日韩高清一区二区不卡| 亚洲伦理在线免费看| 国产69精品久久久久777| www精品美女久久久tv| 日本不卡高清视频| 久久久久久电影| 麻豆久久久久久| 欧美一区二区福利视频| 日韩国产欧美一区二区三区| 色又黄又爽网站www久久| 亚洲欧美一区二区三区国产精品 | 中文字幕不卡在线观看| 老司机精品视频在线| 精品久久久久香蕉网| 国产乱码精品一区二区三区五月婷 | 欧美日韩不卡视频| 在线观看免费亚洲| 久久精品视频在线看| 久久成人麻豆午夜电影| 国产欧美一区二区精品婷婷| 国产成人免费网站| 一区二区三区成人| 日韩一区二区免费在线观看| 国内不卡的二区三区中文字幕| 久久九九影视网| 99久精品国产| 激情综合网av| 一区二区三区欧美久久| 日韩一区二区三区电影在线观看 | 欧美高清在线精品一区| 日本精品一级二级| 国产福利精品一区| 亚洲成人精品影院| **欧美大码日韩| 欧美videos大乳护士334| 91在线观看视频| 国产乱妇无码大片在线观看| 亚洲二区在线观看| 亚洲乱码中文字幕| 国产午夜精品久久久久久免费视 | 国产98色在线|日韩| 亚洲精品国产精品乱码不99| 精品久久久久久久久久久院品网 | 久久99深爱久久99精品| 亚洲欧美另类综合偷拍| 国产精品国产三级国产三级人妇| 欧美一区二区视频免费观看| 一本在线高清不卡dvd| eeuss鲁片一区二区三区在线看| 日日夜夜精品免费视频| 亚洲最大的成人av| 亚洲精品免费视频| 综合网在线视频| 亚洲激情男女视频| 亚洲一区二区偷拍精品| 午夜视频在线观看一区| 日韩精品午夜视频| 狠狠色综合播放一区二区| 久久精品国产精品亚洲综合| 免费观看久久久4p| 玖玖九九国产精品| 成人网页在线观看| 欧美日韩一区三区| 日韩三级在线观看| 国产精品国产三级国产有无不卡| 一区在线中文字幕| 亚洲午夜久久久久久久久电影网| 亚洲高清免费视频| 精品综合久久久久久8888| 成人毛片在线观看| 欧美一区二区三区免费在线看| 精品精品国产高清一毛片一天堂| 国产精品天美传媒| 日本 国产 欧美色综合| av福利精品导航| 日本道在线观看一区二区| 精品一区精品二区高清| 青草av.久久免费一区| bt欧美亚洲午夜电影天堂| 91精品国产高清一区二区三区 | 久久国产三级精品| 91久久一区二区| 国产蜜臀97一区二区三区| 亚洲成人精品一区| 色综合久久久久久久久| 日韩精品一区二区三区视频| 亚洲欧美另类小说视频| 国产成人av影院| 欧美精品一区二区三区一线天视频| 综合网在线视频| av一二三不卡影片| 国产欧美日韩中文久久| 国产真实乱对白精彩久久| 日韩一区二区三区电影在线观看| 亚洲一区二区综合| 欧美精选午夜久久久乱码6080| 亚洲激情第一区| 欧美性欧美巨大黑白大战| 亚洲精品欧美激情| 欧美性生活一区| 午夜伊人狠狠久久| 日韩一区二区三区四区| 久草在线在线精品观看| 欧美www视频| 夫妻av一区二区| 亚洲欧美二区三区| 91精品国产91热久久久做人人| 偷拍一区二区三区| 久久久欧美精品sm网站| a级精品国产片在线观看| 亚洲视频一二三| 欧美一级欧美三级| 高清shemale亚洲人妖| 亚洲一区二区在线观看视频 | 麻豆高清免费国产一区| 久久久国际精品| 日本高清不卡视频| 奇米精品一区二区三区在线观看一| www久久精品| 欧美日韩亚洲综合| 国产成人免费在线视频| 亚洲一级片在线观看| 久久蜜桃av一区精品变态类天堂| 色综合久久久久综合体桃花网| 美腿丝袜在线亚洲一区| 综合久久综合久久| 久久噜噜亚洲综合| 精品剧情在线观看| 欧美性三三影院| 色综合久久中文字幕综合网| 国产成a人亚洲| 精品一区二区免费视频| 视频一区视频二区在线观看| 亚洲色图视频免费播放| 国产精品毛片无遮挡高清| 日韩欧美一区二区三区在线| 在线亚洲欧美专区二区| 99精品在线观看视频| 国产精品一区在线观看你懂的| 日韩av电影免费观看高清完整版 | 91在线视频免费观看| 国产一区二区按摩在线观看| 精品一区二区三区在线播放| 日本vs亚洲vs韩国一区三区二区| 日韩中文字幕区一区有砖一区| 日韩视频一区二区| 精品国产不卡一区二区三区| 精品国产伦一区二区三区免费| 日韩一区二区三区高清免费看看| 欧美性一区二区| 成人激情小说乱人伦| 国产一区二区三区| 成人精品免费视频| 99re视频精品| 欧美一区二区三区不卡| 日韩三级精品电影久久久 | 中文字幕在线播放不卡一区| 亚洲特级片在线| 日韩专区一卡二卡| 国产成人免费视频一区| 欧美日韩一区精品| 久久久亚洲精品一区二区三区| 中文字幕在线一区| 午夜精品一区在线观看|