日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

J2ME 3D編程的第一個(gè)3D程序_JSP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:用J2ME在移動(dòng)設(shè)備上實(shí)現(xiàn)動(dòng)畫(huà)1
使用MIDP(Mobile Information Device Profile)的開(kāi)發(fā)人員經(jīng)常會(huì)抱怨用些什么辦法才可以在一個(gè)MIDlet上顯示動(dòng)畫(huà)。 MIDP 1.0 沒(méi)有直接提供對(duì)動(dòng)畫(huà)的支持(正在開(kāi)發(fā)中的MIDP 2.0支持),但真

參考WTK2.2提供的demo,完成了第一個(gè)3D程序,雖然很簡(jiǎn)單,而且有些問(wèn)題還不是很清楚,還是把代碼共享出來(lái)和愿意學(xué)習(xí)J2ME 3D編程的朋友一起學(xué)習(xí)。

關(guān)于代碼的編譯和運(yùn)行說(shuō)明如下:

1、以下代碼在J2ME WTK2.2下面編譯通過(guò)。

2、代碼分為兩個(gè)文件:First3DCanvas.java和First3DMIDlet.java。

3、使用J2ME WTK2.2建立新的工程,主MIDlet類(lèi)為:first3d. First3DMIDlet

4、將代碼保存在你的工程目錄下的first3d目錄下。

5、將J2ME WTK安裝目錄下的apps\Demo3D\res\com\superscape\m3g\wtksamples\retainedmode\content目錄中的swerve.m3g文件復(fù)制到你的工程目錄下的res目錄下。

6、你的工程建立后,設(shè)置工程,通過(guò)WTK界面中的“設(shè)置”按鈕打開(kāi)設(shè)置窗口,在“API選擇”中,設(shè)置“目標(biāo)平臺(tái)”為:自定義;“簡(jiǎn)檔”為“MIDP2.0”;“配置”為“CLDC1.1”;選中“Mobile 3D Graphics for J2ME(JSR184)”。

7、這樣你就可以編譯和運(yùn)行以下代碼了。

源代碼如下:

// First3DMIDlet.java

package first3d;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class First3DMIDlet extends MIDlet

{

private First3DCanvas displayable = new First3DCanvas();

public void startApp()

{

Display.getDisplay(this).setCurrent(displayable);

}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

}

// First3Dcanvas.java

package first3d;

import javax.microedition.lcdui.*;

import javax.microedition.m3g.*;

import java.util.*;

/**

* 第一個(gè)3D程序

*/

public class First3DCanvas extends Canvas implements Runnable

{

/**World對(duì)象*/

private World myWorld = null;

/**Graphics3D對(duì)象*/

private Graphics3D g3d = Graphics3D.getInstance();

/**Camera對(duì)象*/

private Camera cam = null;

private int viewport_x;

private int viewport_y;

private int viewport_width;

private int viewport_height;

private long worldStartTime = 0;

//重繪時(shí)間

private int validity = 0;

public First3DCanvas()

{

//啟動(dòng)重繪界面的線(xiàn)程

Thread thread = new Thread(this);

thread.start();

try

{

//導(dǎo)入3D圖片

myWorld = (World) Loader.load("/swerve.m3g")[0];

viewport_x = 0;

viewport_y = 0;

viewport_width = getWidth();

viewport_height = getHeight();

cam = myWorld.getActiveCamera();

//設(shè)置cam對(duì)象

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 = (getHeight() - viewport_height) / 2;

}

else

{

float width = viewport_height * params[1];

viewport_width = (int) width;

viewport_x = (getWidth() - viewport_width) / 2;

}

}

worldStartTime = System.currentTimeMillis();

}

catch (Exception e) {}

}

protected void paint(Graphics g)

{

//清除背景

g.setColor(0x00);

g.fillRect(0, 0, getWidth(), getHeight());

//和3D對(duì)象綁定

g3d.bindTarget(g);

g3d.setViewport(viewport_x, viewport_y, viewport_width, viewport_height);

long startTime = System.currentTimeMillis() - worldStartTime;

validity = myWorld.animate((int)startTime);

try

{

g3d.render(myWorld);

}

finally

{

g3d.releaseTarget();

}

}

public void run()

{

try

{

while(true)

{

//重繪圖形

repaint(viewport_x, viewport_y, viewport_width, viewport_height);

}

}

catch(Exception e){}

}

}

  

分享:用J2ME與ASP建立數(shù)據(jù)庫(kù)連接
J2ME是利用HttpConnection建立HTTP連接,然后獲取數(shù)據(jù),ASP也是利用HTTP協(xié)議,因而可以利用J2ME與ASP建立連接,從而訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。 ASP是MicroSoft公司的服務(wù)器端動(dòng)態(tài)頁(yè)面技術(shù),可以根

來(lái)源:模板無(wú)憂(yōu)//所屬分類(lèi):JSP教程/更新時(shí)間:2008-08-22
相關(guān)JSP教程