2.0方法1.0實現之Sprite類

來源:互聯網
上載者:User
 

       現在的J2ME遊戲參考書都是描述MID2.0,給我們這些學習的新手帶來不少麻煩。因為例如Sprite類在遊戲開發中很常用到,可是1.0是不支援的。但換句話講2.0不過是比1.0多提供了幾個類。那我們就常試著自己在1.0中寫出這些類的方法,下面我們就來寫Sprite類的方法

                                Sprite(Image img,int frameWidth,int frameHeight)

先理解下這個方法的意思,是從大圖上依次讀取frameWidth*frameHeight大小的圖片存入預設數組。

以序號0開頭標記。

我們試圖建立Image.createImage(frameWidth,frameHeight)地區。然後將對應序列的圖描繪,最後儲存到相應的數組。

下面是我的Sprte方法

                  private Image[]  sprite;//類變數儲存圖片
 
  public void Sprite(Image img,int frameWidth,int frameHeight)
 
   {
           int m=img.getWidth()/frameWidth; / /確定數組大小
           int n=img.getHeight()/frameHeight;
          
           int k=m*n; //數組大小
          
           sprite=new Image[k];//初始化要儲存的數組
            
        Image a=Image.createImage(frameWidth,frameHeight);//建立描繪地區,在雙緩衝時常見
               
                  Graphics g=a.getGraphics();

                
         for(int i=0;i<k;i++){
        
                 g.drawImage(img,-(i/m)*frameWidth,-(i%m)*frameHeight,0);//0是錨點,左上的意思

                 /*新手比較難理解img,-(i/m)*frameWidth,-(i%m)*frameHeight,0

              我們這裡確定m,n  來看圖                     

        0, 1 , 2, 3, 4

         5,   6,  7,   8, 9

            10,11 ,12,13,14   

         m=5,n=3,圖示為對應序號。k=5*3=15,那麼將它對應二維數組。[0][0]對應0,

               [1][1]對應6,那麼[i/m][i%n]對應i ,之後不用我解釋了吧。   */     

   
               sprite[i]=Image.createImage(a);//將所選地區存入數組
               
                             }
    } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.