<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    摘要:學習如何定義游戲邊界,并給小游戲增加了跳躍功能
    原文見:http://www.tkk7.com/Andyluo/archive/2005/12/12/23435.html
    posted @ 2005-12-12 20:23 羅明 閱讀(113) | 評論 (0)編輯 收藏
     

     原文見: http://today.java.net/pub/a/today/2005/07/07/j2me3.html?page=3

    定義游戲的角色和特征

    一個只能將圖片左右移動的游戲是沒有意思的。我們現在要對清單1的代碼作一些改動,讓它變得更有趣些。首先我們要定義游戲顯示的邊界,這樣能保證在所有設備上的大小一致,先定義一些常量,如下代碼所示:

    //游戲邊界
    public static final int GAME_WIDTH = 160;
    public static final int GAME_HEIGHT = 160;

    // 游戲屏幕的原點坐標(左上角)
    public final int GAME_ORIGIN_X = (getWidth() - GAME_WIDTH) / 2;
    public final int GAME_ORIGIN_Y = (getHeight() - GAME_HEIGHT) / 2;

    // couple小精靈上下區域的高度
    public final int SECTION_HEIGHT = 64;

    // couple小精靈來回移動的基準位(base)
    public final int BASE = GAME_ORIGIN_Y + GAME_HEIGHT - SECTION_HEIGHT;

    // couple小精靈跳躍的最大高度
    public final int MAX_HEIGHT = 32;


    (注意,我們這里引入了一個游戲特征:couple小精靈很快就可以在屏幕上跳動了)

    在游戲屏幕上定義的這些常量規定了游戲的邊界,如圖2所示。

    j2me3_figure2.gif


                            圖 2. 用常量定義游戲邊界

    當然,我們現在需要修改代碼來使用這些常量。在清單1的代碼中添加一個buildGameScreen(Graphics g)方法,如下代碼所示:

    private void buildGameScreen(Graphics g)
    {
        
    // 設置畫筆為黑色
        g.setColor(0x000000);
        
        
    // 繪制游戲邊界
        g.drawRect(GAME_ORIGIN_X, GAME_ORIGIN_Y, GAME_WIDTH, GAME_HEIGHT);

        
    // 繪制基準線
        g.drawLine(GAME_ORIGIN_X, BASE, GAME_ORIGIN_X + GAME_WIDTH, BASE);

        
    //標出couple小精靈能跳到的最高位置
        g.drawLine(GAME_ORIGIN_X, BASE - MAX_HEIGHT, GAME_ORIGIN_X + GAME_WIDTH, BASE - MAX_HEIGHT);
    }

    再在updateGameScreen()方法里繪制couple之前添加一個該方法的調用,還要將couple小精靈的開始位置由CENTER_Y改為BASE(在start()方法里設置coupleY = BASE)。

    couple小精靈可以左右移動,我們要限制它走出邊界,更改calculateCoupleX()方法里左右移動的代碼,避免坐標超出邊界。修改后的代碼如下:

    private void calculateCoupleX(int keyState)
    {
        
    // 根據移動方向改變x坐標
        if((keyState & LEFT_PRESSED) != 0)
        
    {
            coupleX 
    = Math.max(
                GAME_ORIGIN_X 
    + coupleImg.getWidth() / 2,
                coupleX 
    - dx);
        }

        
    else if((keyState & RIGHT_PRESSED) != 0)
        
    {
            coupleX 
    = Math.min(
                GAME_ORIGIN_X 
    + GAME_WIDTH - coupleImg.getWidth() / 2,
                coupleX 
    + dx);
        }

    }

    方法使用Math.max()和min()函數使圖片顯示在游戲邊界內。注意我們在計算中還考慮了圖片的大小。

    我們剛才說過要實現couple小精靈在屏幕上跳躍的功能,我們現在增加一個方法使圖片在Y軸上移動,跳躍時移動的具體路徑將不受玩家影響。

    在清單1的代碼中添加三個新的實例變量:up、jumpHeight 和random。如下所示:

    // 表示couple小精靈移動方向的標識
    private boolean up = true;

    // 跳躍高度,跳躍時隨機生成
    private int jumpHeight = MAX_HEIGHT;

    // 隨機數產生器
    public Random random = new Random();

    jumpHeight初始值被設為MAX_HEIGHT。jumpHeight變量會在couple小精靈每次跳躍時動態設為隨機值,新增的calculateCoupleY()方法如下:

    private void calculateCoupleY(int keyState)
    {
        
    // 檢查couple小精靈是否在跳躍
        if(up)
        
    {
            
    // 檢查小精靈是否跳到了最大高度
            if((coupleY > (BASE - jumpHeight + coupleImg.getHeight())))
            
    {
                
    //沒達到最大高度,繼續上升
                coupleY -= dy;
            }

            
    else if(coupleY == (BASE - jumpHeight + coupleImg.getHeight()))
            
    {
                
    // 到了最大高度,開始下降
                coupleY += dy;

                
    // 修改方向標識
                up = false;
            }

        }

        
    else
        
    {
            
    // 小精靈正在下降,檢查是否到地面了?
            if(coupleY < BASE)
            
    {
                
    // 還沒有,繼續下降
                coupleY += dy;
            }

            
    else if(coupleY == BASE)
            
    {
                
    // 到達地面,算一個新的隨機高度(小于等于最大高度)
                int hyper = random.nextInt(MAX_HEIGHT + 1);
                
                
    // 保證跳躍高度大于圖像高度
                if(hyper > coupleImg.getHeight())
                
    {
                    jumpHeight 
    = hyper;
                }


                
    // 往上跳
                coupleY -= dy;

                
    // 重置方向標識
                up = true;
            }

        }

    }


    你可能已經發覺,這個方法不依賴于用戶的按鍵,傳入的keyState信息也沒有用到。傳入這個值是為了與calculateCoupleX()方法保持一致。方法剛開始時通過漸增coupleY變量值使couple小精靈上升,直到達到這次的跳躍高度(剛開始是MAX_HEIGHT)。達到這個高度后,小精靈開始往下降,降到BASE后又隨機生成一個介于MAX_HEIGHT和圖像高度之間的數值,按這個高度開始下一次跳躍。

    游戲的整個效果是一個以隨機高度跳躍的couple小精靈,它可以在用戶的操縱下左右移動。圖3是游戲的一個截屏:

    j2me3_figure3.GIF

                       圖 3. 游戲截屏

    posted @ 2005-12-12 11:39 羅明 閱讀(917) | 評論 (0)編輯 收藏
     
    摘要:圖中有14個著名的開源項目,你都能看出來嗎?(答案附文后)
    原文見:http://www.tkk7.com/Andyluo/archive/2005/12/08/23024.html
    posted @ 2005-12-09 04:10 羅明 閱讀(87) | 評論 (0)編輯 收藏
     

    承接第一部分,介紹小游戲的具體實現,實現第一個版本,并介紹GameCanvas類的使用及運行機制。

    原文見:http://www.tkk7.com/Andyluo/archive/2005/12/08/23003.html

    posted @ 2005-12-09 03:48 羅明 閱讀(98) | 評論 (0)編輯 收藏
     
    14個開源項目,你看出來了嗎?

    圖中有14個著名的開源項目,你都能看出來嗎?(答案附文后)
    r_free-project-foundation.jpg


    答案:

    posted @ 2005-12-08 19:57 羅明 閱讀(749) | 評論 (1)編輯 收藏
     
    J2ME Tutorial, Part 3: 探究MIDP 2.0的游戲API(二)

    原文見:http://today.java.net/pub/a/today/2005/07/07/j2me3.html?page=2

    構建一個J2ME游戲:從GameCanvas類開始

    GameCanvas類繼承自Canvas,提供了一個屏幕后端的緩沖區,所有的繪制操作都先在這個緩沖區里進行。當所有繪制操作完成后,我們調用flushGraphics()方法將緩沖區內容輸出到屏幕。這種雙緩沖機制可以使圖像的移動更加平滑,避免圖像的閃爍。緩沖區大小等于屏幕的大小,而且每一個GameCanvas實例有且僅有一個緩沖區。

    GameCanvas類提供一種存儲按鍵狀態的機制,我們可以通過它方便的了解用戶與游戲的交互。這種機制可以跟蹤用戶按特殊鍵的次數,調用getKeyStates()方法返回所有游戲鍵按鍵狀態的二進制表示,1代表上次調用方法后按過該鍵,0表示上次調用后還沒有按過該鍵。我們可以跟蹤的游戲狀態有(這里的鍵都是在Canvas類里定義的):DOWN_PRESSED, UP_PRESSED, RIGHT_PRESSED, LEFT_PRESSED, FIRE_PRESSED, GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED和GAME_D_PRESSED。

    首先擴展GameCanvas類,定制一個游戲畫布,代碼見清單1。清單2是運行例子的MIDlet。

    package com.j2me.part3;

    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.Display;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.game.GameCanvas;

    import java.io.IOException;

    public class MyGameCanvas
        
    extends GameCanvas
        
    implements Runnable
    {
        
    public MyGameCanvas()
        
    {
            
    super(true);
        }

        
        
    public void start()
        
    {
            
    try
            
    {
                
    //導入couple圖片,坐標定位在屏幕中央
                coupleImg = Image.createImage("/couple.gif");
                coupleX 
    = CENTER_X;
                coupleY 
    = CENTER_Y;
            }

            
    catch(IOException ioex)
            
    {
                System.err.println(ioex);
            }

            
            Thread runner 
    = new Thread(this);
            runner.start();
        }

        
        
    public void run()
        
    {
            
    //獲取畫布的graphics對象
            Graphics g = getGraphics();
            
            
    while(true//無窮循環
            {
                
    //基于上一個代碼清單列出的結構
                
                
    //首先檢查游戲狀態
                verifyGameState();
                
                
    //檢查用戶輸入
                checkUserInput();
                
                
    //更新屏幕
                updateGameScreen(getGraphics());
                
                
    //休息一下,控制刷新頻率
                try
                
    {
                    Thread.currentThread().sleep(
    30);
                }

                
    catch(Exception e)
                
    {}
            }

        }

        
        
    private void verifyGameState()
        
    {
            
    //現在先不做任何操作
        }

        
        
    private void checkUserInput()
        
    {
            
    //獲取按鍵信息
            int keyState = getKeyStates();
            
            
    //計算x軸位置
            calculateCoupleX(keyState);
        }

        
        
    private void updateGameScreen(Graphics g)
        
    {
            
    //清空屏幕背景
            g.setColor(0xffffff);
            g.fillRect(
    00, getWidth(), getHeight());
            
            
    //將couple圖片繪制到當前坐標位置
            g.drawImage(
                coupleImg, coupleX, coupleY, Graphics.HCENTER 
    |
                Graphics.BOTTOM);
            
            flushGraphics();
        }

        
        
    private void calculateCoupleX(int keyState)
        
    {
            
    //判斷移動方向
            if((keyState & LEFT_PRESSED) != 0)
            
    {
                coupleX 
    -= dx;
            }

            
    else if((keyState & RIGHT_PRESSED) != 0)
            
    {
                coupleX 
    += dx;
            }

        }

        
        
    private Image coupleImg;
        
    private int coupleX;
        
    private int coupleY;
        
    private int dx = 1//移動量
        
        
    //屏幕中心
        public final int CENTER_X = getWidth() / 2;
        
    public final int CENTER_Y = getHeight() / 2;
    }

    清單 1. MyGameCanvas:游戲畫布的第一個版本

    清單 2 是使用這個游戲畫布的MIDlet:

    package com.j2me.part3;

    import javax.microedition.lcdui.Display;
    import javax.microedition.midlet.MIDlet;

    public class GameMIDlet extends MIDlet
    {
        MyGameCanvas gCanvas;
        
        
    public GameMIDlet()
        
    {
            gCanvas 
    = new MyGameCanvas();
        }

        
        
    public void startApp()
        
    {
            Display d 
    = Display.getDisplay(this);
            gCanvas.start();
            
            d.setCurrent(gCanvas);
        }

        
        
    public void pauseApp()
        
    {}
        
        
    public void destroyApp(boolean unconditional)
        
    {}
    }

    清單 2. 運行游戲示例的MIDlet類

    使用Wireless工具建立一個工程,導入這兩個類,然后生成并運行工程。確保你的工程目錄res中有這個圖片文件couple.gif,并保證名稱為couple.gif, 圖1是運行結果。

    j2me3_figure1.gif
    圖1. 構建一個游戲:使用GameCanvas類

    使用設備的方向鍵可以左右移動屏幕中的小圖像,這是通過從checkUserInput()里取得按鍵狀態,然后調用calculateCoupleX(),通過將按鍵狀態與GameCanvas里預定義的按鍵值進行與操作(&),得到用戶當前按的鍵,然后將實例變量更新,最終反映到設備屏幕上。

    圖像是在updateGameScreen()方法里被繪制到屏幕上的。這個方法使用傳入的Graphics對象進行繪制,每一個GameCanvas只有一個Graphics對象。方法首先擦除上次繪制的圖像,然后基于當前的coupleX值(還有一直不變的coupleY值)繪制couple.gif圖像,最后將緩沖區的數據輸出到屏幕。

    run()方法里的循環體遵循我們剛開始提出的游戲結構。循環每30毫秒檢查一次用戶輸入并刷新屏幕。你可以試著將這個值改變一下,這會改變刷新的頻率。

    最后,注意MyGameCanvas的構造器里調用了父類GameCanvas的構造方法,傳入的參數為true,這表示從Canvas類繼承的按鍵事件機制被抑制了,因為我們的代碼不需要這些通知機制。我們的游戲狀態用GameCanvas里自帶的按鍵信息(由getKeyStates()方法取得)來處理已經足夠了。通過抑制“keyPressed”、“keyReleased”和“keyRepeated”等通知機制,可以提高游戲的性能。

    posted @ 2005-12-08 18:01 羅明 閱讀(2605) | 評論 (3)編輯 收藏
     
    J2ME Tutorial, Part 3: 探究MIDP 2.0的游戲API (一)
    翻譯了java.net上的J2ME tutorial文章,Part 3介紹J2ME中的游戲開發部分
    介紹了javax.microedition.lcdui.game包中的類,通過開發一個完整的小游戲學習J2ME游戲開發。
    原文見:http://www.tkk7.com/Andyluo/archive/2005/12/07/22911.html
    posted @ 2005-12-08 04:52 羅明 閱讀(111) | 評論 (0)編輯 收藏
     
    更改Ubuntu系統的MAC地址(ZZ)
    如何修改Ubuntu Linux系統的物理地址,也適用于其他Linux
    原文見:http://www.tkk7.com/Andyluo/archive/2005/12/07/22907.html
    posted @ 2005-12-08 04:49 羅明 閱讀(100) | 評論 (0)編輯 收藏
     
    J2ME Tutorial, Part 3: 探究MIDP 2.0的游戲API (一)

    原文見:http://today.java.net/pub/a/today/2005/07/07/j2me3.html

    J2ME是一個很流行的用于移動設備游戲開發的平臺。J2ME中的MIDP 2.0引入了一個新的API包,它提供了一些定義好的游戲結構,這在以前的1.0版中要通過很多累贅代碼來實現。在這部分tutorial中,我們會學習這個API包,然后用它開發一個小游戲(為了學習需要,我們會用到包中所有的類)。這個包是javax.microedition.lcdui.game. 它的建立基于我們前兩次學的J2ME概念。

    J2ME游戲API:摘要
    javax.microedition.lcdui.game包只有5個類:GameCanvas, Layer, Sprite, TiledLayer和LayerManager. 這5個類提供了開發各種游戲應用的平臺。

    LayerSpriteTiledLayer的父類。這個類封裝了游戲中可視化元素的行為。可視化元素可以是小精靈(sprite),代表一個可以在屏幕上來回移動的獨立圖形(或組成動畫的一組圖形),
    或是一個背景層:通過很少的圖片,就可以生成龐大游戲中的背景。我們可以用Layer來布置圖形和進行可視化操作。Layer的子類通過重寫paint(Graphics g)方法將元素繪制到屏幕上。

    LayerManager類可以控制各層的繪制及繪制順序,因此我們可以更方便地管理游戲中的可視化元素(包括小精靈和背景層)。

    GameCanvas類擴展了上兩節我們講過的Canvas類(畫布),提供一個在屏幕后端運行(off-screen)的緩沖區,所有繪制操作都先在這個緩沖區上進行,然后再顯示到屏幕。它還提供了得到用戶按鍵信息的快捷方法。

    最好的學習方法應該是寫一個完整的小游戲,通過這個小游戲我們可以了解游戲制作的方方面面。我們在介紹完這個小游戲的構造后(針對目前還沒有游戲開發經驗的),會在開發游戲的過程中具體介紹包中的每個類。

    構建游戲的簡短入門

    游戲和動畫是建立在重復執行某段代碼的機制上的。這段代碼跟蹤實例變量的值,然后更新相應狀態。基于當前游戲狀態,代碼將游戲元素繪制到屏幕上。實例變量值是隨著用戶交互和游戲內部行為而改變的。

    代碼的重復執行是通過將這段代碼放入循環中實現的。在進入循環前,先檢查一下實例變量,看是否要繼續游戲,否則退出循環。為了控制實例變量的更新頻率(其實是屏幕刷新的頻率),循環體中的代碼應該每次休眠一段時間(毫秒計)。

    游戲的結構如下列代碼所示:

    // 主類
    public class MainClass 
    {
      
    private GameCanvas canvas = new MyGameCanvas();


      
    public MainClass() 
      
    {
        
    // 開始一個線程
        canvas.start();
      }

      
      
    // 其他代碼
    }



    // 實際進行繪制的類
    public class MyGameCanvas extends GameCanvas implements Runnable 
    {
      
    public MyGameCanvas() 
      
    {
        
    // 初始化
      }

      
      
    public void start() 
      
    {
        
    // 初始化
        
        
    // 執行繪制線程
        Thread runner = new Thread(this);
        runner.start();
      }

      
      
    private void run() 
      
    {
      
        
    // 或者使用(keeprunning = true) 
        
    // keeprunning是一個控制游戲狀態的實例變量

        
    while(true
        



          
    // 檢查游戲是否達到 
          
    // 某個邊界值或特殊條件
          
          verifyGameState(); 


          
    // 從用戶那里得到輸入,然后更新描述游戲元素狀態的變量值 
          
            checkUserInput(); 


          
    // 使用Graphics對象將當前游戲狀態繪制到屏幕上

          updateGameScreen(getGraphics());


          
    // 控制屏幕更新的頻率 

          Thread.sleep(milliseconds); 
        }

      }

    }

     

    我們將在以下幾節中使用這個結構來開發一個游戲。

    posted @ 2005-12-07 20:40 羅明 閱讀(1874) | 評論 (0)編輯 收藏
     
    更改Ubuntu系統的MAC地址(ZZ)

    轉自:http://forum.ubuntu.org.cn/viewtopic.php?t=6774

    1、臨時更改(不需要重啟):
    代碼:
    $ sudo ifconfig eth0 down
    $ sudo ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
    $ sudo ifconfig eth0 up

    這樣做完以后default route可能就沒有了,要重新加一下
    代碼:
    $ sudo route add default gw xxx.xxx.xxx.xxx

    2、永久更改:
    代碼:
    $ sudo gedit  /etc/iftab 


    eth0 mac 00:e0:4d:75:8e:50(改成你要的物理地址mac)

    代碼:
    $ sudo gedit  /etc/network/interfaces

    將iface eth0 inet static后面添加一行

    hwaddress ether 00:E0:4d:75:8E:50

    如:iface eth0 inet static
    hwaddress ether 00:E0:4d:75:8E:50(自己加的)
    address 219.220.214.113


    然后就好了 可能要重啟一下

    posted @ 2005-12-07 19:52 羅明 閱讀(2586) | 評論 (1)編輯 收藏
     
    就當寫畢業日志吧!!!
    今天沒有去公司,我可不想公司為我一個人訂飯(公司里泡面的泡面,回家的回家,包子的包子),昨天因為只有我一個人要訂飯,后來硬是湊了三個人,怕飯店不給送飯呢。我還是先在機房躲躲吧,tmd吉林石化,搞得我上班都沒意思。
    昨天聽頭頭說有短信的項目做,要我先裝一個Oracle, 然后把n多表導進去。現在還不知道做啥,數據庫已經弄好了(Software上的Oracle不好使,下了半天,最后沒裝上,說缺少組件,爛),表也導進去了。可憐我的30G硬盤,我是邊裝邊刪啊。今天類似的“您的硬盤空間不夠,請點擊這里釋放”提示已經出現不下6次了。下次再要有什么變動,我就格了重裝,反正Home和Professional差不多(嗬嗬,只是盜版與正版的區別)。
    J2ME的tutorial看到Part2了,學了幾個控件,知道了MIDlet的lifecycle(不就是applet的lifecycle嘛!it's much the same).繼續看
    明天寫幾個java程序連下數據庫,就可以找頭頭要任務了,hoho
    繼續學習j2me,
    Go on, be a tiger!
    PS: 發現學自己感興趣的東西一點都不累(我還是很注意休息的哦,多吃水果), 今天比較有成就感,哈哈
    posted @ 2005-12-07 05:07 羅明 閱讀(81) | 評論 (0)編輯 收藏
     
    就當寫畢業日志吧!!!
    ?
    今天沒有去公司,我可不想公司為我一個人訂飯(公司里泡面的泡面,回家的回家,包子的包子),昨天因為只有我一個人要訂飯,后來硬是湊了三個人,怕飯店不給送飯呢。我還是先在機房躲躲吧,tmd吉林石化爆炸搞的松花江污染,搞得我上班都沒意思。
    ?
    昨天聽頭頭說有短信的項目做,要我先裝一個Oracle, 然后把n多表導進去。現在還不知道做啥,數據庫已經弄好了(Software上的Oracle不好使,下了半天,最后沒裝上,說缺少組件,kick),表也導進去了。可憐我的30G硬盤,我是邊裝邊刪啊。今天類似的“您的硬盤空間不夠,請點擊這里釋放”提示已經出現不下6次了。下次再要有什么變動,我就格了重裝,反正Home和Professional差不多(嗬嗬,只是盜版與正版的區別,支持正版!)。
    ?
    J2ME的tutorial看到Part2了,學了幾個控件,知道了MIDlet的lifecycle(不就是applet的lifecycle嘛!it's much the same).繼續看
    ?
    明天寫幾個java程序連下Oracle,就可以找頭頭要任務了,hoho
    繼續學習j2me,
    Go on, be a tiger!
    ?
    PS: 發現學自己感興趣的東西一點都不累(我還是很注意休息的哦,多吃水果), 今天比較有成就感,哈哈
    posted @ 2005-12-06 21:08 羅明 閱讀(158) | 評論 (0)編輯 收藏
     
    這幾天開始學習J2ME,從網上找了些資料,決定按J2ME Wiki的路線走:
    1、Tutorial
    里面有幾篇java.net里的入門文章,講的是MIDP 2.0和CLDC 1.1(最新版本),使用的工具是J2ME Wireless Toolkit 2.2(最新的release版,2.3beta已經出來了)。盡管這個系列主要使用工具Toolkit,但在一開始的時候先不用toolkit做了個項 目,符合初學一種技術的步驟。

    Getting Started with MIDP 2.0

    J2ME Tutorial, Part 1: Creating MIDlets

    J2ME Tutorial, Part 2: User Interfaces with MIDP 2.0

    J2ME Tutorial, Part 3: Exploring the Game API of MIDP 2.0

    J2ME Tutorial, Part 4: Multimedia and MIDP 2.0

    2、Articles(從網上搜集的文章):
    MIDlet Development with J2ME and MIDP.pdf
    MIDlet Development with Version 2.0 of the Wireless Toolkit.pdf
    J2ME development with EclipseMe.pdf

    2、Books
    J2ME應用程序: 《J2ME in a Nutshell》
    J2ME Gaming:
    《Wireless.Game.Development.in.Java.with.MIDP.2.0.Oct.2004》、
    《J2ME & Gaming》

    對J2ME感興趣的同胞,等著看我的Blog吧

    *****************************************
    12:35 12/05/2005
    在Amazon看了所有相關書籍的讀者反饋,發現《J2ME in a Nutshell》是2002年出版的,只有MIDP 1.1內容,所以換成《Wireless Java: Developing with J2ME, Second Edition》(讀者反饋挺好的)
    posted @ 2005-12-05 19:33 羅明 閱讀(120) | 評論 (0)編輯 收藏
     
    這幾天開始學習J2ME,從網上找了些資料,決定按J2ME Wiki的路線走:
    1、Tutorial
    里面有幾篇java.net里的入門文章,講的是MIDP 2.0和CLDC 1.1(最新版本),使用的工具是J2ME Wireless Toolkit 2.2(最新的release版,2.3beta已經出來了)。盡管這個系列主要使用工具Toolkit,但在一開始的時候先不用toolkit做了個項 目,符合初學一種技術的步驟。

    Getting Started with MIDP 2.0 

    J2ME Tutorial, Part 1: Creating MIDlets 

    J2ME Tutorial, Part 2: User Interfaces with MIDP 2.0 

    J2ME Tutorial, Part 3: Exploring the Game API of MIDP 2.0 

    J2ME Tutorial, Part 4: Multimedia and MIDP 2.0

    2、Articles(從網上搜集的文章):
    MIDlet Development with J2ME and MIDP.pdf
    MIDlet Development with Version 2.0 of the Wireless Toolkit.pdf
    J2ME development with EclipseMe.pdf

    2、Books
    J2ME應用程序: 《J2ME in a Nutshell》
    J2ME Gaming:
    《Wireless.Game.Development.in.Java.with.MIDP.2.0.Oct.2004》、
    《J2ME & Gaming》

    對J2ME感興趣的同胞,等著看我的Blog吧

    *****************************************
    12:35 12/05/2005
    在Amazon看了所有相關書籍的讀者反饋,發現《J2ME in a Nutshell》是2002年出版的,只有MIDP 1.1內容,所以換成《Wireless Java: Developing with J2ME, Second Edition》(讀者反饋挺好的)
    posted @ 2005-12-05 12:54 羅明 閱讀(480) | 評論 (0)編輯 收藏
     
    別妄想會在以后去每個分類里找東西。將所有的書簽都放在頂層,這才是你的注意力所在!
    posted @ 2005-12-04 19:22 羅明 閱讀(128) | 評論 (0)編輯 收藏
     
    今天逛論壇時發現的,藍迪游戲其實是一個跨平臺的網游,支持W$、Linux和Mac, 是國產的網游,所以速度還比較快,跟QQ游戲大廳的樣子差不多,現在有麻將、斗地主、軍旗等幾種游戲。做得挺好,玩的比較舒服。

    現在主要是Linux和Mac的玩家,Mac居多,W$的最少。

    玩了一個多點,差點忘吃午飯了,呵呵

    網址:www.bluedj.com
    posted @ 2005-12-04 11:27 羅明 閱讀(2295) | 評論 (2)編輯 收藏
     
    如果我的大學生活重新來過,我會在大一時配一臺電腦,學會編程和裝機;在大二時申請一個域名,裝一個Linux系統,做一臺服務器,提供Weblog等功能。。。再慢慢做精做大.....
    posted @ 2005-12-04 11:27 羅明 閱讀(345) | 評論 (0)編輯 收藏
     
    別妄想會在以后去每個分類里找東西。將所有的書簽都放在頂層,這才是你的注意力所在!
    posted @ 2005-12-04 11:27 羅明 閱讀(419) | 評論 (0)編輯 收藏
     
    ...
    如果我的大學生活重新來過,我會在大一時配一臺電腦,學會編程和裝機;在大二時申請一個域名,裝一個Linux系統,做一臺服務器,提供Weblog等功能。。。
    posted @ 2005-12-03 03:47 羅明 閱讀(96) | 評論 (0)編輯 收藏
     
    今天逛論壇時發現的,藍迪游戲其實是一個跨平臺的網游,支持W$、Linux和Mac, 是國產的網游,所以速度還比較快,跟QQ游戲大廳的樣子差不多,現在有麻將、斗地主、軍旗等幾種游戲。做得挺好,玩的比較舒服。

    現在主要是Linux和Mac的玩家,Mac居多,W$的最少。

    玩了一個多點,差點忘吃午飯了,呵呵

    網址:www.bluedj.com
    posted @ 2005-12-01 03:23 羅明 閱讀(112) | 評論 (0)編輯 收藏
    僅列出標題
    共14頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
     
    主站蜘蛛池模板: 亚洲国产成人久久一区久久| 亚洲免费精彩视频在线观看| 波多野结衣免费在线| 国产综合成人亚洲区| 91情国产l精品国产亚洲区| 亚洲AV网站在线观看| 韩国免费一级成人毛片| 外国成人网在线观看免费视频| 怡红院亚洲红怡院在线观看| 国产成人精品日本亚洲11| 亚洲av无码无在线观看红杏| 亚洲熟伦熟女新五十路熟妇 | 日韩精品成人亚洲专区| 在线看片无码永久免费视频| 91香蕉在线观看免费高清| 免费播放在线日本感人片| 日韩在线观看免费| 色欲色欲天天天www亚洲伊| 亚洲精品国产国语| 亚洲制服丝袜第一页| 亚洲欧洲日韩国产| 亚洲人成网www| 亚洲成年轻人电影网站www | 又长又大又粗又硬3p免费视频| 久久亚洲中文字幕无码| 亚洲影院天堂中文av色| 久久亚洲国产成人影院| 亚洲1234区乱码| 亚洲va久久久久| 亚洲综合小说另类图片动图| 久久综合久久综合亚洲| 亚洲第一综合天堂另类专 | 最近中文字幕大全免费视频| 97免费人妻在线视频| 久久精品人成免费| 18女人腿打开无遮掩免费| 久久精品国产免费观看| 美女视频黄的全免费视频网站| 亚洲免费中文字幕| 欧美三级在线电影免费| 在线观看免费大黄网站|