国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 手機知識 > 正文

735i的最強游戲方法

2024-06-10 11:09:35
字體:
供稿:網(wǎng)友

   關(guān)于我自己改的游戲,大家在bbs.52ak.com和http://yygames.QQ.topzj.com/index.php以及http://club.joyes.com/Board/Board.asp?BoardID=150都可以找到
     關(guān)于字體修改的補充(0,0,8)---------對應03031008b8
                       (0,1,16)--------對應03041010b8

   看出區(qū)別了嗎?恩,03---0,  04---1,其他的自己可以推了,實在不行的用xp自帶的計算器可以弄出來.

  初級篇
  恩,最近開始修改游戲,有了一點自己的體會和心得,當然要感謝kim,yy,sofy,小召等人的幫助和指點,這篇文章也來之不易,共寫了兩次,同樣的字打了兩片……汗……

  看過眾多高手的文章,覺得都有點偏向于復雜化和深奧化,這里我盡量寫的簡單一點,大家也好明白的快一點,好了廢話不多說,直奔主題(這么多廢話,拖出去砍了)
狂汗…………
 
    對于修改來說,首先要備齊工具,這里推薦winhex(16位進制編輯器)ultraedit,java源代碼反編譯專家,當然還有你的手機所對應的模擬器,至于java環(huán)境一類的你也可以選裝,我現(xiàn)在沒有裝。

    首先,我們先來看看一般情況下的全屏解決的問題,對于阿爾卡特ot735i的手機來說,受著黑條的痛苦很久了(什么是黑條??就是游戲時屏幕下方的黑黑的一條,moto c650等一些機子也有這種情況,對此,可以直接用fulljava來處理,735i注意調(diào)成128*128的哦^-^

   然后,我們再來看看關(guān)于中文字體的顯示問題,這點在于735i和三星x108/x608中尤 為明顯,這點winfy和其他高手也都說過了,在這里我簡單的說一下就行了(對了,關(guān)于字體,主要是游戲調(diào)用了小號字體的緣故,而735i和三星用的是中號字體,而且無法和moto一樣自動調(diào)用中號字體,所以一般的中文游戲都沒有任何顯示……)

   在修改時,一般就針對于getfont(0,0,8)就可以了,那些使用getfont(0,0,16),getfont(32,0,8)一類的游戲大致也差不多主要的差異也就是在16位進制的轉(zhuǎn)換上有所不同……

   在開始時,打開游戲jar文件,從第一個class文件開始,挨個打開,在里面查找getfont或者getfong(0,0,8),在找到后,看一下getfont的位置,大概記一下,改完后在來看看有些什么變化,注意,多看看程序的習慣要養(yǎng)成!^_^

    之后把有g(shù)etfont的class拉到j(luò)ar文件之外,用winhex打開,在搜索中點擊查找16位進制數(shù)……,一般情況下(getfont(o,o,8)時)輸入1008(其他的也只是改了最后的數(shù)字8,自己也可以推一下),將其改為1000即可,成功后,看一下程序,然后就傳回jar文件,之后用模擬器試一下就行了。

    這里有史庫比2的修改對比圖,注意,有些模擬器上可以顯示小號字體,但是并不代表手機可以!比如我的就是……汗

    之后我們再來看看按鍵的修改,一般情況下,按鍵的修改方法都是大同小異的,在我改過的游戲中一般遇到的有if 和 case情況,這兩種情況呢,又以if 較為簡單,他不用太多的東西就可以輕松實現(xiàn),所以也是我們最喜歡碰到的情況,呵呵,關(guān)于if語句,主要方法和改字體一樣,搜索查找,用winhex修改,不過對應的就是faa0和f9a0了,將其修改為所對應的按鍵就行了,為什么是fa,f9呢?

   大家往下看:
阿爾卡特557/556moto c系列    諾基亞:                阿爾卡特ot735i  moto v300以后的機型
按鍵     鍵值  16進制值   按鍵      鍵值  16進制值  按鍵       鍵值      16進制值    鍵名
左軟鍵   -21   EB       左軟鍵    -6      FA        左軟鍵     21        15         soft1
右軟鍵   -22   EA       右軟鍵    -7      F9        右軟鍵     22        16         soft2
上方向鍵 -1    FF       上方向鍵  -1      FF        上方向鍵   1         01          up
左方向鍵 -2    FE       左方向鍵  -3      FD        左方向鍵   2         02          left
下方向鍵 -6    FA       下方向鍵  -2      FE        下方向鍵   6         06          down
右方向鍵 -5    FB       右方向鍵  -4      FC        右方向鍵   5         05          right
                                             action(735i)/ok: 20        14          select
其他的數(shù)字鍵手機上都一樣,具體如下:
按鍵       鍵值      16進制值    鍵名
0鍵       48         30          num0
1鍵       49         31          num1
2鍵       50         32          num2
3鍵       51         33          num3
4鍵       52         34          num4
5鍵       53         35          num5
6鍵       54         36          num6
7鍵       55         37          num7
8鍵       56         38          num8
9鍵       57         39          num9
*鍵       42         2A          star
#鍵       35         23          pound


    大家只需將查到的鍵改為想要的就行了,而我們一般只要改左右的軟鍵就行了,所以一般都先搜索fa a0 ,這個語句反過來就是表示if  i==-6 的意思,大家看程序就是看這個!!當然要s40的游戲才是這樣的,如果改其他按鍵,只要替換相應的代碼就行了,比如我要把557游戲的左軟鍵改為735i的,在class中搜-21 或者 keyPRessed(調(diào)用按鍵的命令),,找到后,用winhex查eba0,然后替換成15ao就行了,關(guān)于if的修改kim作了非常詳盡的文章在557的帖子里,大家可以參考一下!參考請點擊這里

    這里,我在說說case的方法,其實我也是剛接觸case,開始的時候弄了半天不明白,一頭霧水……在那里狂汗不已……還好群里的高手yy他們對我是非常的耐心的解釋,才勉強搞定。這里大家要多想想,多思考一下,硬來是沒有什么好下場的……我第一次改的case游戲弄了好幾個小時還是錯誤……汗ing……

    首先,大家順被一些第三方的軟件比如記事本,Word之類的,呆會兒有用,先打開。

    當然你的先判斷一下是諾機鴨的還是其他的游戲,比如鴨機的就是左軟為-6,右軟為-7,moto和卡記等的就是-21,-22,這個比較重要,要自己在class中判斷方法就是查找……汗(最煩瑣卻最實用)……
之后要注意你所找到的-6 -7或-21 -22 的位置,記清楚了,改完回來在看看這里的變化!!

    來不及找個好例子,就這樣說好了,因為之前的另一個游戲road to riches還有其他的問題,不便作為范例,我手里有沒有多余的游戲……

    好,繼續(xù),現(xiàn)在我們用winhex打開你所確認的那個class,查找ff ff ff f9或者ff ff ff fa,一般光標會停在你所找到的

    第一個fff語句,注意他前面的7個0和數(shù)字x,即00 00 00 0x,這里x是多少,表示后面有多少個組,所謂組,是我取的名字,便于理解而已,大家想叫什么都行,而組共有16個代碼,一般形式為xx xx xx xx xx xx xx xx,而每8個代碼為一個小組,每個小組內(nèi)的順序不可以打亂!!注意!!

   這里大家看看這就是要找的數(shù)據(jù)!

00 00 00 02 /ff ff ff fa 00 00 xx xx / xx xx xx xx xx xx xx xx/
分組就是這樣分的,前面的0000最好保留一起用!

    好,在winhex里找到后(就是先搜索出來的)用鼠標把你剛才找的16位代碼圈出來,現(xiàn)在就點擊工具欄的編輯--全部復制--16位進制數(shù)值,點了后把winhex最小化,在事先準備好的記事本(word)里粘貼兩次,(其中一個作為對照用,另外,此后還要用!小心不要搞混了,放在哪里不管)

   好了,現(xiàn)在對照前面的各機型的按鍵16位數(shù)值進行修改了!是在記事本中哦^_^

    具體的操作是,比如說這種代碼,
00 00 00 02 /ff ff ff fa 00 00 xx xx / xx xx xx xx xx xx xx xx/,直接用00 00 00 xx代替,這里的xx代表你所要改的鍵值,一般就是你的左右軟鍵的值(16位的哦),記住不要改反了,否則游戲中你的左右鍵就是反的,記住這里只替換ff ff ff fa或者ff ff ff f9因為只替換左右軟鍵,將這兩個替換為00 00 00 xx就行了,之后在為剛替換的數(shù)據(jù)排序!!!
   重要!!比如:
改后:00 00 00 03 / 00 00 00 16/xx xx xx xx /00 00 00 15/yy yy yy yy/zz zz zz zz/zz zz zz zz
這個需要將00 00 00 16/xx xx xx xx與00 00 00 15/ yy yy yy yy
整體對換00 00 00 03 / 00 00 00 15/yy yy yy yy/00 00 00 16/xx xx xx xx /zz zz zz zz/zz zz zz zz即這個樣子……后面的xx yy zz一類的東東大家可以看看,不要動啊,還有這里的‘/’符號是為了讓大家看的清楚而畫的,真正改的時候不能有的啊

好了,第一步完了,

接下來,打開ue即ultraedit,點擊 搜索--替換,這是會有一對話框彈出(有點說的多了……不過,這里很容易出錯……而且一錯就完了),在查找欄把你之前的對照用的數(shù)據(jù)復制貼上去,記住在數(shù)據(jù)的最后面不能有空格,仔細檢查,替換欄就貼上你改好的數(shù)據(jù),注意鼠標此時最好在點一下ue中class文件的左上方,因為ue是從上往下搜的,之后直接點替換,成功后保存,在到winhex里去,之前是最小化,先在會有一對話框提升你更新數(shù)據(jù),點‘是’。然后重復操作……這個class里面改完了,就改下一個,知道把你所有確定的有case -6 /-7或者case -21 /-22的class改完……
汗……
繁重的體力和腦力還有眼力活……

一般熟練后在10分鐘類全部搞定,大家多多努力……

改完后打開改過的class文件看看,順便還可以查查你該好的數(shù)據(jù),一般情況下(好象沒有特殊吧),原來的的諸如case-6 -7 都成了你改的 case  xx了

呵呵,傳回你的jar文件,試著運行一下,應該是ok吧!

最后,在給大家說說游戲的名字修改,這個好象三星的同志說過的,其實我的方法很簡單的,注意,不是在游戲中,是在手機上的名字顯示,一般都是為英文的吧,呵呵,其實你打開jar里面會有一個meta-inf文件夾,打開,然后把里面的唯一的文件manifest.mf拖到外面,隨便你放在哪兒,只要你找的到,我一般就放在桌面,好了,在桌面上打開manifest.mf,有很多的東東,很多都是沒有用的,而且里面的有些東西反而阻止了一部分游戲的運行!!我就經(jīng)常遇到這種情況,具體必要的東西如下
Manifest-Version:
MicroEdition-Configuration:
MicroEdition-Profile:
MIDlet-1:
這些是必須要的,刪了好象游戲就不能用了!!(應該是吧,反正我沒有試過),還有三個一般也保留

MIDlet-Name:(這個就是手機上的名字顯示,你寫什么就顯示什么)
MIDlet-Version:(版本)
MIDlet-Vendor:(附加信息,你可以寫個本人修改之類的東西)
除了name,和vender,其他的最好不改,而剩余的東西一個字:刪!

改好后點擊:文件--另存為,什么都不變,只是把格式改為utf-8,保存,在傳回jar的meta-inf,覆蓋原來的manifest.mf
試試,你們的一些以前不能運行的游戲是不是可以了?
呵呵,那些由于機能原因而不能運行的游戲大家就不要在想了,一般這樣改了還是不能用的游戲,還有三種途徑解決:
一,徹底修改游戲的程序,使之對應自己的手機,一般人……狂汗……,
二,買部新的手機……
三,放棄這個游戲……

                                                                 (完)
補遺:關(guān)于jar的大小,復雜的調(diào)法這里不作過多說明,因為涉及到修改整個游戲的程
      序,簡單點的就是刪掉一些可以不用的東西,比如mid音樂!修改成功的例子有alest2在按鍵改后,打上全屏的補丁,有135k左右,偶將mid全刪后只有108k。希望這個對手機內(nèi)存緊張的朋友有點幫助。
     十六進制數(shù)的表達方法如果不使用特殊的書寫形式,16進制數(shù)也會和10進制相混。隨便一個數(shù):9876,就看不出它是16進制或10進制。Java規(guī)定,16進制數(shù)必須以 0x開頭。比如 0x1表示一個16進制數(shù)。而1則表示一個十進制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不區(qū)分大小寫。(注意:0x中的0是數(shù)字0,而不是字母O)
        以下是一些用法示例:
         int a = 0x100F;
         int b = 0x70 + a;10進制數(shù)轉(zhuǎn)換成16進制的方法,和轉(zhuǎn)換為2進制的方法類似, 惟一變化:除數(shù)由2變成16。
         同樣是120,轉(zhuǎn)換成16進制則為:
         被除數(shù) 計算過程 商 余數(shù)
           120 120/16 7 8
           7 7/16 0 7
           120轉(zhuǎn)換為16進制,結(jié)果為:78。
         原碼、反碼、補碼。
        我們已經(jīng)知道計算機中,所有數(shù)據(jù)最終都是使用二進制數(shù)表達。
        我們也已經(jīng)學會如何將一個10進制數(shù)如何轉(zhuǎn)換為二進制數(shù)。
        不過,我們?nèi)匀粵]有學習一個負數(shù)如何用二進制表達。
        比如,假設(shè)有一 int 類型的數(shù),值為5,那么,我們知道它在計算機中表示為:
        00000000 00000000 00000000 00000101
        5轉(zhuǎn)換成二制是101,不過int類型的數(shù)占用4字節(jié)(32位),所以前面填了一堆0。
        現(xiàn)在想知道,-5在計算機中如何表示?
        在計算機中,負數(shù)以其正值的補碼形式表達。
        什么叫補碼呢?這得從原碼,反碼說起。
        原碼:一個整數(shù),按照絕對值大小轉(zhuǎn)換成的二進制數(shù),稱為原碼。
        比如 00000000 00000000 00000000 00000101 是 5的 原碼。
        反碼:將二進制數(shù)按位取反,所得的新二進制數(shù)稱為原二進制數(shù)的反碼。
        取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)
        比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
        稱:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反碼。
        反碼是相互的,所以也可稱:
        11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互為反碼。
        補碼:反碼加1稱為補碼。
        也就是說,要得到一個數(shù)的補碼,先得到反碼,然后將反碼加上1,所得數(shù)稱為補碼。
        比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11 111111 11111010。
        那么,補碼為:
        11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 111 11011
        所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。轉(zhuǎn)換為十
        六進制:0xFFFFFFFB。
        再舉一例,我們來看整數(shù)-1在計算機中如何表示。
       假設(shè)這也是一個int類型,那么:
           1、先取1的原碼:00000000 00000000 00000000 00000001
           2、得反碼:     11111111 11111111 11111111 11111110
           3、得補碼:     11111111 11111111 11111111 11111111
          可見,-1在計算機里用二進制表達就是全1。16進制為:0xFFFFFF。
      注:這段文字來自sofy,其實16位的東西在c語言上面就詳細的很了
          這方面的東西大家還嫌不夠的話可以找書來仔細研究研究
          (偶可省了不少工夫去寫了,感謝sofy)

                                    文章來自手機修改群:cj20038413


游戲的減肥法(sofy搜集)
一 減少圖片容量

方法1:將多張png圖片集成到一張圖片上。
這是最基本也是最有效的減少png圖片容量的辦法了。比如你有10張png圖片,每張10×15,現(xiàn)在你可以把它集成到一張100×15或者10×150或者X×X的圖片上去。這張大png圖片的容量比10張png圖片的總?cè)萘啃『芏唷_@是因為省去了9張圖片的文件頭,文件結(jié)束數(shù)據(jù)塊等等,而且合并了調(diào)色板(如果10張圖片的調(diào)色板恰好相同,則省去了9張圖片的調(diào)色板所占的容量!這是個不小的數(shù)字)

方法2:減少圖片的顏色數(shù)
減少顏色也算是一個方法?我想說的是什么時候減,誰去減。如果游戲完成后發(fā)現(xiàn)容量超出,此時在用優(yōu)化工具減少顏色,雖然能降低圖片容量,但圖片效果可能就不讓你滿意了。所以,在美工作圖時就要確定使用的顏色數(shù),手機游戲使用的是象素圖,即一個象素一個象素點出來的圖像,所以預先規(guī)定調(diào)色板顏色數(shù)量是可以辦到的。不過,最終使用優(yōu)化工具也是有用的,有時候相差一兩種顏色,但效果差別并不大,容量卻可以變小一些。呵呵,減少顏色確實可以算是一種方法。

方法3:盡可能使用旋轉(zhuǎn)和翻轉(zhuǎn)
這點不用解釋了

方法4:使用換調(diào)色板技術(shù)和自定義圖片格式
如果前兩種方法還不能滿足你對容量的要求,而你的游戲中恰好使用了很多僅顏色不同的怪物,那么可以試試換調(diào)色板技術(shù)。J2ME規(guī)范中規(guī)定手機至少可以支持png格式的圖片,每張png都帶有調(diào)色板數(shù)據(jù),如果兩張圖片除了顏色不同而其他(包括顏色數(shù))完全相同,則只要保存一張圖片和其他圖片的調(diào)色板,這相對于保存多張圖片來說節(jié)省了不少容量。不過這個方法挺麻煩,你得了解png文件格式,然后做一個工具提取出調(diào)色板數(shù)據(jù)和調(diào)色板數(shù)據(jù)塊在png文件中的偏移。內(nèi)存中保存圖像仍使用Image,如果要換調(diào)色板,則將png文件讀入到一個字節(jié)數(shù)組中,根據(jù)調(diào)色板數(shù)據(jù)塊在png中的偏移,用新的調(diào)色板代替原來的調(diào)色板數(shù)據(jù),然后用這個字節(jié)數(shù)組創(chuàng)建出換色后的Image。也許你覺得保存一張png和n份調(diào)色板數(shù)據(jù)的方法有點浪費。至少多保存了1份調(diào)色板數(shù)據(jù)啊!如果直接將圖像數(shù)據(jù)提取出來,在加上n份調(diào)色板數(shù)據(jù),豈不是更節(jié)省容量。但是使用上面的方法,我們還可以用drawImage渲染。如果這樣自定義了圖片格式,那只有自己寫個渲染函數(shù)了,這倒還可以,只不過put pixel的速度在某些機器上非常慢。或者自己構(gòu)造png格式數(shù)據(jù),再使用Image.如果你真得決定這么做,我還有個小建議,不要對圖像數(shù)據(jù)進行壓縮,zip壓縮大多數(shù)時候比你寫得壓縮算法好(參見J2ME Game開發(fā)筆記-壓縮還是不壓縮)。論壇上有位朋友提過使用bmp格式代替png格式,jar中圖片容量更小,也是一個道理。

二 減少圖片所占內(nèi)存

1 圖片所占內(nèi)存的計算
png圖片所占用的內(nèi)存并不對應于圖片容量。圖片占用的內(nèi)存的計算為:width*height*bpp。bpp即為系統(tǒng)內(nèi)置的顏色位數(shù)。以Nokia 6600為例,象素格式為565共16位。所以一張100*100的圖片占用100*100*(16/8)=20000字節(jié),約為19.5k的內(nèi)存。象素格式是固定的無法改變,所以只有減少圖片的寬和高才能降低其消耗的內(nèi)存。

2 減少Image對象數(shù)量可節(jié)約大量內(nèi)存
減少Image對象數(shù)量不等于減少圖片數(shù)量。我的意思是說,將一張集成圖保存在一個Image對象中,通過setClip的方法從這個Iamge對象中選取你需要的圖像渲染。不過這個方法犧牲了一點速度,每幀都從集成圖Image中減切圖像的速度比無減切的渲染慢。但對于數(shù)目不多的渲染,比如精靈,使用這個方法沒問題。這個方法還有一個問題就是不能釋放集成圖中不需要的圖片,這就要看你集成的程度了。從圖片容量和內(nèi)存管理的角度綜合考慮,我一般使用二次集成的方法。比如有n個精靈,先將各精靈所有的圖片集成到一張集成圖中,得到n張集成圖,然后將這n張集成圖再次集成到一張更大的集成圖中。這樣在jar中只存在一張集成圖。使用時,先將大集成圖分割載入到n個Image對象中即可。這樣各個精靈的圖片可以單獨管理了。

3 使用旋轉(zhuǎn)和翻轉(zhuǎn)
只保存一個原始的Image,需要時再旋轉(zhuǎn)或翻轉(zhuǎn)
                                                       手機修改群
中級篇
按鍵修改之getGameAction(keyCode)  
通過修改游戲鍵值,我們知道keyPressed(keyCode)是怎么回事。現(xiàn)在,我們來講講按鍵的另一種方式:getGameAction(keyCode)
同樣以簡單基礎(chǔ)為切入點,這里不會講太復雜的深入研究。

getGameAction(keyCode)
也就是說,這個值是由KEYCODE所得來的,值列表:
鍵名      KEYCODE GAMEACTION
導航鍵上:      -1      1
導航鍵下:      -6      6
導航鍵左:      -2      2
導航鍵右:      -5      5
中鍵:            -20      8
數(shù)字鍵1:      49      9
數(shù)字鍵2:      50      1
數(shù)字鍵3:      51      10
數(shù)字鍵4:      52      2
數(shù)字鍵5:      53      8
數(shù)字鍵6:      54      5
數(shù)字鍵7:      55      11
數(shù)字鍵8:      56      6
數(shù)字鍵9:      57      12

由上表可看出,如果一個游戲采用了getGameAction(keyCode)這樣的方式,得出的值無論是導航鍵還是數(shù)字鍵的2、4、6、8,都可以來進行操作,節(jié)省了程序員的麻煩及節(jié)約了空間。而且getGameAction是標準API,即上表中的值在任何機型上都是相同的,所以也十分方便移植(多用在動作和射擊游戲上)。

不過需要值得注意的是,getGameAction對NOKIA的左右軟鍵是有效的(數(shù)值暫不明)。但是對于MOTO來說(包括索愛等),getGameAction對左右軟鍵是無效的,具體數(shù)值為0。所以如果這個時候仍然修改到左右軟鍵,就可能會出錯。另外#*鍵也都是無效,數(shù)字0暫不明。

學會getGameAction,對修改按鍵來說能夠更進一步。getGameAction的值雖然一般不用去修改,但是對閱讀代碼是有幫助的。而且有的游戲會利用getGameAction來進行判斷,這個時候就需要利用到這方面的知識了。
                                           手機修改群     小召


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 云浮市| 施甸县| 德格县| 聂拉木县| 常宁市| 定襄县| 房产| 阳信县| 满洲里市| 时尚| 邵阳市| 天等县| 张家川| 岳池县| 班玛县| 营口市| 资中县| 宾川县| 咸阳市| 吴堡县| 泽州县| 三明市| 白城市| 和田县| 平昌县| 泰来县| 海城市| 甘肃省| 台安县| 株洲县| 苗栗县| 厦门市| 富蕴县| 瑞金市| 新龙县| 红原县| 靖宇县| 历史| 临邑县| 朝阳区| 兖州市|