- 帖子
- 3632
- 積分
- 12756
- 閱讀權限
- 1
- 在線時間
- 1570 小時
- 最後登入
- 2012-3-20
  
|
1#
發表於 2009-8-13 06:57
| 只看該作者
本帖最後由 aqc121 於 2011-3-5 05:25 編輯
須用軟體:HALO(請去<A
href="http://bbs.mpbus.com/thread-37288-1-1.html">http://bbs.mpbus.com/thread-37288-1-1.html下載)
自適屏的修改
把遊戲改為自適屏是有前提條件的,必須是遊戲的顯示是用全局變量控制的!比如天之痕的這段:
<FONT
color=red> public b()
{
j = false;
k = 0;
l = 0;
m = null;
i = null;
c = 176;
d = 208;
e = c / 2;
f = d / 2;
}
其中c,d就是寬高的全局變量.
再介紹兩個函數,getWidth()I,getHeight()I,他們的意思是返回當前屏幕的寬高值.假如你是E398的手機,這兩個值分別是176,208.那把
c = 176;
d = 208;
改為:
c =
getWidth()I;
d =
getHeight()I;
他就可以根據機型自適屏了.我們用HALO2來修改,發現這段代碼是出現在<init>裡的,並且是採用了com/nokia/mid/ui/FullCanvas,而getWidth()I,
getHeight()I用的是javax/microedition/lcdui/Displayable類,也為了遊戲的兼容性,我們把<init>裡前兩句
aload_0
invokespecial
com/nokia/mid/ui/FullCanvas/<init>()V
改為
aload_0
invokespecial
javax/microedition/lcdui/Canvas/<init>()V
並在常量池的繼承的父類由
com/nokia/mid/ui/FullCanvas
改為
<FONT
color=red>javax/microedition/lcdui/Canvas
並把
<FONT
color=red>sipush 176
putstatic main/b/c I
sipush 208
putstatic
main/b/d I
改為
aload_0
iconst_1
invokevirtual
javax/microedition/lcdui/Canvas/setFullScreenMode(Z)V
aload_0
invokevirtual javax/microedition/lcdui/Displayable/getWidth()I
putstatic
main/b/c I
aload_0
invokevirtual
javax/microedition/lcdui/Displayable/getHeight()I
putstatic main/b/d
I
這樣就可以實現遊戲的自適屏了.
最後還要注意全局變量的數值類型,這個遊戲是int類型的.他是32位的,這倒沒問題.但有些遊戲全局變量是byte類型的,byte類型是個8位的整數類型,大小範圍-
128 ~ 127,假如你手機是E398的,
寬高176,208就超範圍了,必須作調整,具體調整方法較複雜我不詳細說了,畢竟這情況較少,有些韓國遊戲偶爾使用,不常見!
[/hide] |
-
1
評分次數
-
|