麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

J2MEGame開發筆記(第二輯)

2019-11-18 16:21:15
字體:
來源:轉載
供稿:網友

  J2ME Game開發筆記 (第二輯)

整理近期的一些blog,包括NokiaS60,Motorola,Eclipse的一些內容

nokia S60的幾個問題

1. 不能每幀調用 System.gc(),否則嚴重降低fps
2. Nokia S60機器的不同機型對于translate 和 setClip的處理不一樣。在Nokia N-Gage QD等機型中,setClip是相對于translate以后的坐標計算的,而在Nokia 6600,6670等機型中,setClip不受translate的影響,永遠只相對于屏幕左上角(0,0)點計算。所以如果在Nokia6670中,使用先translate再setClip的方法畫子圖,則會出現錯誤。為了統一代碼,在Nokia S60中不要使用translate,即使用,兩次translate之間不要進行setClip.修改后的畫子圖函數為:

public static void drawSubImg(Graphics g,Image img,int x,int y,int sx,int sy,int swidth,int sheight)
{
  g.setClip(x,y,swidth,sheight);  
  g.drawImage(img,x-sx,y-sy,GLT) ;
  g.setClip(0,0,width,height) ;
}


3. 部分Nokia機型(6600,6670等)退出后報錯null pointer exception的解決方法
不要在在主while循環中調用destroyApp,而改成檢測一個標志,退出主循環后再調用destroyApp
boolean exit ;
...
while(!exit){
...
  if(...){
    exit = true ;
  }
...
}

destroyApp(true);

注:可在destroyApp內部調用notifyDestroyed

nokia"不能運行應用程序"錯誤新解

    Nokia手機運行J2ME程序的時候出現“不能運行應用程序”的錯誤,一般都是內存不足引起的,但今天遇到這樣的錯誤,卻發現是另一個原因。即當使用nokia的UI API,DirectGraphics的drawImage時,如果旋轉參數設置不當,也會出現“不能運行應用程序”的錯誤。

eclipse集成motorola模擬器

在Eclipse的菜單/工具條中選擇Run->External Tools,打開面板后,選擇PRogram,然后new一個新的配置
1 在Location中填入Moto模擬器的路徑,如:C:/Program Files/Motorola/SDK v4.2 for J2ME/EmulatorA.1/bin/emujava.exe,Moto的不同模擬器支持n種不同機型,需要看moto sdk的文檔才知道。
2 在Arguments里填入執行的參數,包括jad路徑,模擬器使用的機型。如:"${project_loc}/deployed/${project_name}.jad" -deviceFile Resources/V600.props
我是讓模擬器執行deployed里面的jad/jar,${project_loc}是工程路徑,${project_name}是工程名。這里選擇的機型是V600.

說明:這種方法的局限在于只能執行jar,所以每次運行前必須打包。實際使用前需要為沒種機型配置一個run,由于使用了通配參數,所以所有的工程都可以使用一個配置

motorola手機j2me應用問題

1 應用程序圖標
  必須在jad 文件Midlet-Icon屬性中指定圖標文件,Midlet-1中指定的圖標無效
  Moto V系列圖標大小應為15*15,其他尺寸無法顯示。

2 左右軟鍵問題
Motorola手機操作系統設定是:右軟鍵確認,左軟鍵取消。所以,我們的程序應該和這個習慣保持一致。

3 Key Code
Moto V的key code不同于其他Midp2.0機器
左軟鍵:21
右軟鍵: 22
中鍵: 20
up: 1
down: 6
left: 2
right: 5

midp2.0 Canvas全屏問題

    MIDP2.0 Canvas可以調用setFullScreenMode(true)將Canvas設置成全屏,但設置成全屏后新的Canvas width & height的獲得對于不同手機卻并不一樣。

1 MotoV系列
調用setFullScreenMode(true)后,將觸發sizeChanged事件,此事件從系統接受兩個參數,即為Canvas全屏后的width & height,通過這個事件可以獲得新的寬高。
    protected void sizeChanged(int w, int h)
    {
        width = w ;
        height = h ;        
    }
但要注意,此事件并不是同步的,就是說如果你調用了setFullScreenMode(true)之后,立即使用新的width,height,有可能獲得錯誤的結果。

2 SE K700
調用setFullScreenMode(true)后,不會觸發sizeChanged,而是通過getWidth和getHeight獲得新的寬高。SE的setFullScreenMode調用后是立即返回的,所以可以獲得正確的width & height

----------
對于其他機型暫時還不了解

百寶箱應用編譯打包事宜

1 編譯時,設置javac 的target vm為1.1即可通過移動檢測。wtk中無法實現。在Eclipse中可以在java-compiler-Compliance and Classfiles中做以下設置:
Compiler compliance level: 1.4
Generated .class files compatibility: 1.1
Source compatibility: 1.3

2 用eclispe打混淆包。但eclipse編寫jad中文會出現亂碼,所以用wtk編寫正確的jad,然后用wtk打包(注意不能覆蓋eclispe打的包),這是為了用wtk獲得正確的jad和manifest文件。將elcipse打包出的jar解壓,用wtk生成的mainifest代替原jar中的mainifest文件,然后用WinRAR打包(zip格式,可選最大壓縮,注意要選擇所有的文件后打包,不要將外面的整個目錄打包).最后將jad中的jar size改為這個最新的jar的字節數。

另:1. Nokia S60,SE k700機器中顯示的游戲名字為MIDlet-1中的名字,而Nokia40為MIDlet-Name中的名字
    2. 根據sp提供的資料Nokia 7650 游戲不能用中文名(其實NGageQD可以)進入討論組討論。

(出處:http://www.companysz.com)



上一篇:J2ME入門-(6)CLDCAPI

下一篇:j2me內存優化

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人福利 | 免费国产之a视频 | 性欧美xxxx极品摘花 | 欧美精品久久久久久久多人混战 | 91美女福利视频 | 欧洲精品久久久 | 国产资源在线观看视频 | 福利一区二区三区视频在线观看 | 久久久久久久久久性 | 成人三级在线播放 | av在线中文 | 天天看天天摸天天操 | 视频一区免费观看 | 色综合久久久久久久久久久 | 国产亚洲精品久久久久久网站 | 精品国产91久久久久久浪潮蜜月 | 国产精品久久久久久久久久久天堂 | 久久国产精| 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 羞羞网站在线观看入口免费 | 国产精品久久久久久久午夜片 | 男男羞羞视频网站国产 | 国产精品久久久久久久久久久久久久久久 | 久久宗合色 | 欧美日本日韩 | 亚洲精品av在线 | 午夜视频中文字幕 | 成人污在线 | 黄色久 | 色羞羞 | 精品中文字幕视频 | 黄色影院 | 黄色大片网站在线观看 | 久草在线资源福利站 | 成年人在线视频观看 | 国产流白浆高潮在线观看 | 久久精品国产99国产精品亚洲 | 免费黄色小网站 | 国产88久久久国产精品免费二区 | 男女羞羞视频在线免费观看 | 欧美精品一区自拍a毛片在线视频 |