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

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

?? piecesprite.java

?? j2me簡單實例,j2me教程加源碼,希望大家喜歡
?? 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一区二区三区免费野_久草精品视频
精品一区二区三区香蕉蜜桃 | 欧美亚洲国产怡红院影院| 久久精品国产精品青草| 亚洲chinese男男1069| 亚洲色图视频网站| 精品久久一区二区| 日韩欧美国产三级电影视频| 欧美高清www午色夜在线视频| 一本一道久久a久久精品综合蜜臀| 国产精品一级二级三级| 精品一区二区国语对白| 欧美aaa在线| 六月丁香综合在线视频| 秋霞国产午夜精品免费视频| 亚洲天堂免费在线观看视频| 中文字幕一区二区视频| 中文字幕高清不卡| 国产精品亲子乱子伦xxxx裸| 亚洲国产成人自拍| 国产精品免费视频观看| 国产精品久久久久久久久图文区| 久久久国产精品午夜一区ai换脸| 久久先锋资源网| 国产亚洲精品精华液| 国产日本欧美一区二区| 国产精品网站在线观看| 最新热久久免费视频| 日韩码欧中文字| 亚洲小说欧美激情另类| 一区精品在线播放| 一区二区在线观看免费| 亚洲va欧美va国产va天堂影院| 日韩av中文字幕一区二区| 亚洲777理论| 欧美aaaaa成人免费观看视频| 精久久久久久久久久久| 成人午夜免费视频| 色菇凉天天综合网| 欧美日韩高清一区二区| 精品免费国产一区二区三区四区| 久久五月婷婷丁香社区| 国产精品美女久久久久久| 亚洲激情五月婷婷| 婷婷成人综合网| 久草这里只有精品视频| 成人毛片视频在线观看| 一本大道av一区二区在线播放| 精品婷婷伊人一区三区三| 日韩欧美不卡在线观看视频| 国产亚洲一区二区三区四区| 一区二区三区在线视频播放| 日韩专区在线视频| 国产999精品久久久久久绿帽| 色综合天天综合色综合av | 在线不卡一区二区| 久久久精品国产99久久精品芒果| 国产亚洲制服色| 亚洲亚洲精品在线观看| 国内外成人在线| 91麻豆蜜桃一区二区三区| 欧美一区二区三区四区在线观看| 国产亚洲婷婷免费| 亚洲一区二区三区精品在线| 韩国女主播成人在线观看| 成人小视频免费在线观看| 欧美电影一区二区三区| 欧美极品美女视频| 午夜精品123| 99精品偷自拍| 日韩欧美一区在线| 欧美韩国日本不卡| 日韩高清国产一区在线| 成人综合婷婷国产精品久久蜜臀| 欧美专区日韩专区| 欧美一区二区三区在线观看视频 | 蜜臀av一区二区在线免费观看| 国产在线精品免费| 在线观看日产精品| 国产精品二三区| 久久99精品国产麻豆婷婷洗澡| 一本大道av伊人久久综合| 2021国产精品久久精品 | 久久精品国产99| 91视频免费观看| 91精品国产色综合久久| 欧美国产日韩亚洲一区| 久久国产人妖系列| 91国产福利在线| 亚洲国产高清在线观看视频| 美女一区二区三区在线观看| 欧美三区在线观看| 成人免费在线观看入口| 香蕉影视欧美成人| 日本韩国一区二区三区| 1000部国产精品成人观看| 国产一区二区三区不卡在线观看| 欧美日本免费一区二区三区| |精品福利一区二区三区| 免费观看一级特黄欧美大片| 欧美在线免费观看亚洲| 国产精品成人免费在线| 福利视频网站一区二区三区| 欧美岛国在线观看| 免费看日韩a级影片| 欧美久久一二区| 一区二区免费在线| 国产91在线看| 国产婷婷色一区二区三区在线| 免费欧美在线视频| 欧美一区二区三区在线视频| 婷婷久久综合九色综合绿巨人 | 日本欧美一区二区在线观看| 欧美手机在线视频| 亚洲人精品午夜| 91一区二区三区在线播放| 国产精品福利在线播放| av中文字幕一区| 国产精品的网站| youjizz国产精品| 中文字幕乱码久久午夜不卡| 国产精品一区一区三区| 国产清纯在线一区二区www| 国产成人啪免费观看软件| 久久久精品人体av艺术| 国产馆精品极品| 久久精品免费在线观看| 成人在线一区二区三区| 国产精品不卡视频| 色综合天天综合色综合av| 亚洲www啪成人一区二区麻豆| 日韩欧美视频在线| 成人污污视频在线观看| 一片黄亚洲嫩模| 制服丝袜在线91| 丁香婷婷综合网| 亚洲一区在线观看免费观看电影高清| 777午夜精品视频在线播放| 国产精品亚洲一区二区三区妖精 | 欧美一级日韩不卡播放免费| 国产高清不卡一区二区| 亚洲综合图片区| 精品久久五月天| 色综合久久中文综合久久牛| 美女www一区二区| 国产精品三级电影| 69久久99精品久久久久婷婷 | 一本久道久久综合中文字幕| 无吗不卡中文字幕| 日本一区二区电影| 欧美丝袜丝交足nylons| 国产一区二区三区四区五区入口 | 国产精品婷婷午夜在线观看| 欧美视频在线观看一区| 国产福利一区二区三区在线视频| 一区二区三区欧美久久| 久久亚洲一区二区三区明星换脸| 欧美亚洲国产怡红院影院| 国产成人在线视频网站| 午夜精品福利久久久| 国产精品久久三区| 日韩免费看网站| 在线看国产一区| 成人精品一区二区三区中文字幕| 日韩激情中文字幕| 亚洲色图一区二区三区| 欧美精品一区二区三区在线| 色国产精品一区在线观看| 国产盗摄精品一区二区三区在线| 天堂成人国产精品一区| 亚洲丝袜制服诱惑| 国产日韩欧美综合在线| 日韩精品一区国产麻豆| 欧美三级视频在线| 色综合久久久网| 豆国产96在线|亚洲| 另类小说色综合网站| 亚洲国产另类精品专区| 亚洲欧美国产高清| 欧美激情一区二区| 精品国产91亚洲一区二区三区婷婷 | 成人高清伦理免费影院在线观看| 视频精品一区二区| 亚洲午夜国产一区99re久久| 亚洲色图.com| 国产精品剧情在线亚洲| 久久久久久久精| 欧美刺激脚交jootjob| 欧美久久久久久久久中文字幕| 色综合久久久久久久久| 不卡一区二区三区四区| 大胆亚洲人体视频| 国产成人超碰人人澡人人澡| 精品一区二区三区在线观看| 美腿丝袜亚洲综合| 日韩经典中文字幕一区| 天堂久久久久va久久久久| 性欧美大战久久久久久久久| 午夜视频一区二区| 亚洲电影中文字幕在线观看| 夜色激情一区二区|