亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? piecesprite.java

?? < JavaME核心技術最佳實踐>>的全部源代碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.j2medev.chapter5;
/**
 *修改日期 2006-4-8
 *增加縮放比例
 *
 *
 */

import javax.microedition.lcdui.*;
//#if (NOKIA_S40_V1 ||NOKIA_S60_V1||NOKIA_S40_V2 ||NOKIA_S60_V2)
import com.nokia.mid.ui.*;
//#else
    //#if (   NOKIA_S40_V1||SAMSUNG_E108)
//#
    //#else
//#       import javax.microedition.lcdui.game.*;
    //#endif
//#endif
import java.io.*;

public class PieceSprite implements MyGameInterface
{
  Image sprImage;
  short[][][][] sprData;

    //*/////////////////////////////////////////////////////////////

  public static final int TRANS_NONE = 0;
  public static final int TRANS_ROT90 = 5;
  public static final int TRANS_ROT180 = 3;
  public static final int TRANS_ROT270 = 6;
  public static final int TRANS_MIRROR = 2;
  public static final int TRANS_MIRROR_ROT90 = 7;
  public static final int TRANS_MIRROR_ROT180 = 1;
  public static final int TRANS_MIRROR_ROT270 = 4;

   //  following params is equal to Graphics's paramas  ,so it is easy for porting
    public static final int HCENTER = 1;
    public static final int VCENTER = 2;
    public static final int LEFT = 4;
    public static final int RIGHT = 8;
    public static final int TOP = 16;
    public static final int BOTTOM = 32;
    /**
     * 當前動畫數據
     */
    short[][][] currentAnimation;
    /**
     * 當前幀數據
     */
    short [][] currentFrame;
    /**
     * 當前幀時間
     */
    short currentFrameTime;
    /**
     * 當前幀保留值
     */
    short currentFrameValue;
    /**
     * 當前幀水平偏移
     */
    short currentFrameGlobalX;
    /**
     * 當前幀垂直偏移
     */
    short currentFrameGlobalY;
    /**
     * 當前幀碰撞起始點X
     */
    short currentFrameCollisionX;
    /**
     * 當前幀碰撞機始點Y
     */
    short currentFrameCollisionY;
    /**
     * 當前幀碰撞寬度
     */
    short currentFrameCollisionW;
    /**
     * 當前幀碰撞高度
     */
    short currentFrameCollisionH;

    /**
     * 當前幀幀號
     */
    short currentFrameNr;
    /**
     * 是否連續播放
     */
    boolean isAnimationRepeat;
    /**
     * 幀的起始時間
     */
    long startFrameTime;

    /**
     * 是否是一次性載入標志
     */
    boolean b_LoadedOnce;
    /**
     * 構造函數直接通過傳入四維數組進行初始化
     * @param spriteSheet Image
     * @param spriteData short[][][][]
     */
    public PieceSprite(Image spriteSheet, short[][][][] spriteData)
  {
    sprImage = spriteSheet;
    sprData = spriteData;

  }



  /**  輸入流*/
 private InputStream is = null;

 /**  數據輸入流*/
 private DataInputStream dis = null;

 /**
  *當前動畫的長度
  */
 short CurrentAnimationFrameLength;

 /**
  *數據文件名
  */
 String m_strBinData;
 short m_rate;

 /**
  * 該構造方法用于播放單一的、連續的、幀頻數很多的動畫對像
  * @param spriteSheet Image
  * @param binData String
  * @param rate 縮放比例
  * @param bLoadAll boolean 是否將數據一次全部載入到數組中
  */


 public PieceSprite(Image spriteSheet,  String binData,short rate,boolean bLoadAll)
  {
       m_rate=rate;
      m_strBinData=binData;
      sprImage = spriteSheet;
      is = getClass().getResourceAsStream(binData);
      dis= new DataInputStream(is);

      b_LoadedOnce=bLoadAll;
    try
    {
        //讀取動畫長度
        short PlayerAnimationsLength=ReadShortFromBCC(dis);

        if(bLoadAll)//如果是一次載入
        {
          sprData= new short[PlayerAnimationsLength][][][];
            for(int i =0;i<PlayerAnimationsLength;i++)
            {
                sprData[i]= read_One_Animation();
            }
            dis.close();

        }
        else //如果是多次載入
        {
            CurrentAnimationFrameLength=ReadShortFromBCC(dis);
        }
    }
          catch(Exception e)
            {
                e.printStackTrace();

            }

  }

  public void TRACE(String str)
  {

  System.out.println(str);
  }
  /**
   * 讀取動畫工程中的一個動畫
   * @return short[][][]
   */

  public short[][][] read_One_Animation()
  {
      //讀取該動畫包含的Frame的長度
      int CurrentAnimationFrameLength=ReadShortFromBCC(dis);
      short animationData[][][]=new short[CurrentAnimationFrameLength][][];

      for(int i=0;i<CurrentAnimationFrameLength;i++)
      {
        animationData[i]=read_One_Frame();

      }
      return animationData;

  }
  /**
   * 讀取動畫中的一幀
   * @return short[][]
   */
  public short[][]read_One_Frame()
  {
       int    globalOX=ReadShortFromBCC(dis);
       int    globalOY=ReadShortFromBCC(dis);
       int    time=ReadShortFromBCC(dis);
       int    value=ReadShortFromBCC(dis);
       int    rx=ReadShortFromBCC(dis);
       int    ry=ReadShortFromBCC(dis);
       int    rx2=ReadShortFromBCC(dis);
       int    ry2=ReadShortFromBCC(dis);

       //讀取該Frame的包含的零件的長度
       int CurrentFramePieceLength=ReadShortFromBCC(dis);
       short frameData[][]=new short[CurrentFramePieceLength+1][];


       for(int k=0;k<CurrentFramePieceLength+1;k++)
       {
         if (k == 0) {
           frameData[k] = new short[8];

           frameData[0][0] = (short) value;
           frameData[0][1] = (short) time;
           frameData[0][2] = (short) globalOX;
           frameData[0][3] = (short) globalOY;
           frameData[0][4] = (short) rx;
           frameData[0][5] = (short) ry;
           frameData[0][6] = (short) (rx2 - rx);
           frameData[0][7] = (short) (ry2 - ry);
   //                            for(int kk=0;kk<8;kk++)
   //                                System.out.print( " "+table[frameIndex][j][0][kk]);
   //                             System.out.println();
         }
         else {
           frameData[k] = new short[6];

           int ox = ReadShortFromBCC(dis);
           int oy = ReadShortFromBCC(dis);
           rx = ReadShortFromBCC(dis);
           ry = ReadShortFromBCC(dis);
           rx2 = ReadShortFromBCC(dis);
           ry2 = ReadShortFromBCC(dis);

           frameData[k][0] = (short) rx;
           frameData[k][1] = (short) ry;
           frameData[k][2] = (short) (rx2 - rx);
           frameData[k][3] = (short) (ry2 - ry);
           frameData[k][4] = (short) ox;
           frameData[k][5] = (short) oy;
   //                           for(int kk=0;kk<6;kk++)
   //                              System.out.print(" "+table[frameIndex][j][k][kk]);
   //                              System.out.println();
   //

         }
       }

       return frameData;
  }

  /**
   *從BorlandC++語言中讀取 short數據
   */
  public short ReadShortFromBCC(DataInputStream dataInputStream)
  {
      short data[]=new short[2];
      try
      {

          for(int i =0;i<2;i++)
          {

              data[i]= (short)dataInputStream.readByte();
              if(data[i]<0)data[i]=(short)(256+data[i]);
              //          System.out.println("read byte "+i+" "+data[i]);
          }

      }
      catch (IOException ex)
      {
          ex.printStackTrace();
      }

      //  System.out.println("read int "+(data[0]+(int)(data[1]<<8)+(int)(data[2]<<16)+(int)(data[3]<<24)));
      return (short)((short)(data[0])+(short)(data[1]<<8));

  }

   // RETURN FRAME VALUE
  public int setAnimation(int nr, boolean repeat)
  {
     isAnimationRepeat = repeat;
    if(!b_LoadedOnce) return -1;

     currentAnimation = sprData[nr];

    return setFrame((short)0);
  }

  // FRAME VALUE=0 TIME=100 GLOBAL_X=0 GLOBAL_Y=0 RX=0 RY=0 W=21 H=32

  public int setFrame(short nr)
  {
    currentFrameNr = nr;
    currentFrame = currentAnimation[nr];

    currentFrameValue = currentFrame[0][0];
    currentFrameTime =  currentFrame[0][1];
    currentFrameGlobalX = currentFrame[0][2];
    currentFrameGlobalY = currentFrame[0][3];
    currentFrameCollisionX = currentFrame[0][4];
    currentFrameCollisionY = currentFrame[0][5];
    currentFrameCollisionW = currentFrame[0][6];
    currentFrameCollisionH = currentFrame[0][7];

    startFrameTime = System.currentTimeMillis();

    return currentFrameValue;
  }

  /**
   * SETTING ANIMATION NEXT FRAME
   * @return int - TRIGGER VALUE OR -1 IF FRAME NOT SWITCHED
   */

  public int setNextFrame()
  {
    if(b_LoadedOnce)
    {
      // CHECK IF WE CAN SWITCH FOR NEXT FRAME (IS FINISHED FRAME TIME)
      if (startFrameTime + currentFrameTime > System.currentTimeMillis())
      {

        return -1;
      }

      int aniLength = currentAnimation.length;
      // CHECK IF ANIMATION IS OVER
      if (currentFrameNr + 1 == aniLength) {
        // IF REPEAT THEN SET FRAME 0
        if (isAnimationRepeat)
          return setFrame( (short) 0);
        return -1;
      }
      return setFrame( (short) (currentFrameNr + 1));
    }
    else
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区日韩| 亚洲成人av一区二区三区| 亚洲成人在线免费| 国产精品日韩成人| 国产一区二区在线看| 亚洲国产美女搞黄色| 欧美色中文字幕| proumb性欧美在线观看| 中文字幕第一区综合| 日韩久久久久久| 蜜桃一区二区三区在线观看| 久久免费午夜影院| 色国产综合视频| 奇米色一区二区| 天堂一区二区在线| 91精品国产一区二区| 不卡的av电影| 亚洲国产另类av| 夜夜精品浪潮av一区二区三区 | 亚洲色图丝袜美腿| 国产精品18久久久久久久久| 日韩精品一级中文字幕精品视频免费观看| 久久久久国产一区二区三区四区| 欧美性猛交xxxxxx富婆| 欧洲色大大久久| 欧洲色大大久久| 在线观看日产精品| 欧美性色综合网| 在线观看日韩国产| 欧美视频一区二区三区四区| 91久久精品网| 在线观看91视频| 欧美日韩卡一卡二| 午夜精品福利一区二区蜜股av| 日韩一区二区三区精品视频| 欧美日本一道本在线视频| 欧美美女喷水视频| 国产99久久精品| 成人少妇影院yyyy| 日韩一区二区免费高清| 成人综合婷婷国产精品久久| 丁香激情综合国产| 97精品视频在线观看自产线路二| 97精品视频在线观看自产线路二| 91丝袜美女网| 香蕉成人伊视频在线观看| 亚洲国产乱码最新视频| 国产白丝精品91爽爽久久| 97久久超碰精品国产| 欧美日韩国产精品成人| 欧美刺激脚交jootjob| 久久综合久久综合久久综合| 国产精品网站在线观看| 亚洲综合一区二区| 免费观看91视频大全| 久久er99热精品一区二区| 成人av午夜电影| 欧美日韩aaa| 久久久午夜精品理论片中文字幕| 国产精品久99| 日日骚欧美日韩| 国产成人免费视频网站| 欧美在线观看视频在线| 欧美成人一区二区| 中文字幕一区二区三区在线不卡| 欧美图片一区二区三区| 91丨porny丨蝌蚪视频| 欧美亚洲图片小说| 欧美www视频| 国产精品美女视频| 婷婷综合另类小说色区| 国产一区视频在线看| 欧美影视一区二区三区| 久久精品视频一区二区三区| 色噜噜狠狠色综合中国| 91精品中文字幕一区二区三区| 国产色产综合产在线视频| 一区二区三区日韩欧美| 国产精品911| 欧美日韩大陆一区二区| 欧美极品另类videosde| 五月激情六月综合| 99精品桃花视频在线观看| 欧美高清hd18日本| 国产精品伦一区二区三级视频| 视频一区欧美精品| av在线播放成人| 久久亚洲综合色一区二区三区| 亚洲成人在线网站| 99精品一区二区| 久久久久久亚洲综合影院红桃| 欧美高清在线一区二区| 欧美日韩视频一区二区| 国产亚洲福利社区一区| 五月天激情综合| 91小视频在线免费看| 久久久久久一级片| 免费av网站大全久久| 欧美性极品少妇| 亚洲精品中文在线观看| 成人av午夜影院| 国产日产欧美一区二区视频| 蜜臀久久99精品久久久久久9| 91国产免费观看| 欧美国产精品一区| 国产一区二区三区在线观看免费| 欧美乱熟臀69xxxxxx| 亚洲码国产岛国毛片在线| 国模冰冰炮一区二区| 欧美性受极品xxxx喷水| 亚洲欧美成aⅴ人在线观看| 99精品久久只有精品| 精品久久久网站| 捆绑变态av一区二区三区| 欧美日韩国产成人在线91| 亚洲一二三四区不卡| 91麻豆精品在线观看| 精品噜噜噜噜久久久久久久久试看| 亚洲高清免费观看| 午夜精品福利一区二区三区av | 欧美丰满少妇xxxxx高潮对白| 亚洲卡通欧美制服中文| 99在线精品观看| 国产精品久久久久一区二区三区 | 亚洲成人av一区二区三区| 日本乱人伦aⅴ精品| 亚洲免费电影在线| 91毛片在线观看| 亚洲男同性视频| 欧美性高清videossexo| 亚洲成a人片综合在线| 欧美日本乱大交xxxxx| 视频一区二区欧美| 欧美一区二区国产| 精一区二区三区| 久久久www成人免费无遮挡大片 | 99国产精品99久久久久久| 亚洲免费电影在线| 欧美日韩一级片网站| 色婷婷一区二区| 国产精品大尺度| 国产大片一区二区| 国产精品麻豆久久久| 91小视频在线| 亚洲成人免费电影| 日韩一区二区不卡| 免费看日韩a级影片| 精品国产乱码久久久久久免费| 国产综合色产在线精品| 久久人人97超碰com| 国产一区二区三区久久久| 欧美国产成人在线| 成人激情小说乱人伦| 亚洲另类色综合网站| 欧美片网站yy| 极品美女销魂一区二区三区免费| 国产色91在线| 在线国产电影不卡| 精品一区二区免费| 亚洲欧美影音先锋| 欧美女孩性生活视频| 国产一区 二区 三区一级| 中文字幕亚洲欧美在线不卡| 欧美日韩国产色站一区二区三区| 精品无码三级在线观看视频| 国产欧美视频一区二区三区| 91国偷自产一区二区三区观看| 蜜桃av一区二区在线观看| 欧美激情一二三区| 欧美影院一区二区| 成人97人人超碰人人99| 中文字幕一区二区在线播放 | 欧美男生操女生| 国产一区久久久| 一区二区成人在线视频 | 亚洲欧美电影一区二区| 日韩三级中文字幕| 色综合欧美在线视频区| 国产成人免费av在线| 美腿丝袜在线亚洲一区| 亚洲午夜久久久| 中文字幕一区二区三区乱码在线| 亚洲精品一区二区三区福利| 欧美高清视频不卡网| 欧美综合欧美视频| av在线不卡网| 成人精品在线视频观看| 国产呦萝稀缺另类资源| 另类欧美日韩国产在线| 亚洲二区在线视频| 亚洲主播在线播放| 一区二区三区在线视频播放| 中文字幕一区二区三区视频| 国产精品女人毛片| 久久久精品黄色| 久久久综合视频| 精品国产91乱码一区二区三区| 欧美一区二区播放| 91精品国产欧美一区二区| 欧美日韩第一区日日骚|