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

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

?? piecesprite.java

?? j2me簡單實例,j2me教程加源碼,希望大家喜歡
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.j2medev.chapter5;

import javax.microedition.lcdui.*;
import java.io.*;

public class PieceSprite
{
    Image sprImage;
    short[][][][] sprData;
    boolean isEndOfAnimation;
    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);
            }
            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;
            }
        }
        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]);
                }
            }
        }
        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)
    {
        isEndOfAnimation = false;
        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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女mm1313爽爽久久久蜜臀| 欧美日韩中文精品| 91精品91久久久中77777| 欧美系列一区二区| 亚洲最大色网站| 久久99精品国产| 色菇凉天天综合网| 国产亚洲精品福利| 日韩av中文字幕一区二区| 成人性生交大片免费看中文网站 | 中文字幕制服丝袜成人av | 日本欧洲一区二区| av亚洲精华国产精华| 欧美成人一级视频| 日日夜夜精品免费视频| 94-欧美-setu| 国产精品伦一区二区三级视频| 日本va欧美va欧美va精品| 91在线精品一区二区三区| 久久久国产一区二区三区四区小说| 亚洲伊人伊色伊影伊综合网| 成人18视频在线播放| 日韩免费看的电影| 日本午夜精品视频在线观看| 欧美日韩视频在线一区二区 | 国产婷婷色一区二区三区四区 | 欧美日韩精品一区二区三区四区 | 成人免费高清在线| 久久久久久久一区| 国产一区二区三区高清播放| 日韩视频一区在线观看| 丝袜美腿亚洲色图| 777久久久精品| 五月婷婷综合在线| 欧美日韩国产精选| 免费精品视频在线| 精品国产一区二区精华| 精品一区二区三区免费播放| 日韩欧美国产麻豆| 久久99精品国产麻豆婷婷洗澡| 欧美一三区三区四区免费在线看| 午夜不卡在线视频| 日韩一区二区不卡| 国产一区二区网址| 中文在线免费一区三区高中清不卡| 国产成人啪免费观看软件| 国产欧美一区在线| 99久久综合国产精品| 一区二区三区四区国产精品| 欧美在线高清视频| 日本美女一区二区三区| 精品久久久久久久久久久久久久久久久 | 成人av在线资源网站| 中文字幕精品—区二区四季| 成熟亚洲日本毛茸茸凸凹| 欧美激情一区在线| av电影天堂一区二区在线观看| 国产精品久久久久久久岛一牛影视| 成人动漫视频在线| 午夜视频一区在线观看| 精品久久久久久久人人人人传媒| 国产69精品久久久久777| 成人欧美一区二区三区白人| 欧美在线免费观看亚洲| 久久国产尿小便嘘嘘尿| 久久精品视频在线免费观看| 国产91丝袜在线18| 亚洲精品乱码久久久久| 欧美一区二区在线视频| www.欧美精品一二区| 一区二区免费视频| 精品久久久久久无| 91丨九色丨蝌蚪富婆spa| 亚洲va欧美va人人爽| 日韩视频永久免费| 色综合久久六月婷婷中文字幕| 亚洲电影视频在线| 国产亚洲欧美一级| 一本大道综合伊人精品热热| 免费观看日韩av| 亚洲蜜桃精久久久久久久| 欧美日韩国产一级| 不卡一区二区三区四区| 午夜激情综合网| 中文字幕一区二区三区乱码在线 | 91福利视频久久久久| 麻豆精品在线播放| 亚洲免费观看高清完整版在线观看 | 亚洲成人在线免费| 国产精品久久久久久久久晋中| 欧美日本韩国一区二区三区视频 | 一区二区三区精品视频| 精品久久久久久久久久久久久久久 | 久久久久久麻豆| 91精品婷婷国产综合久久性色| 麻豆高清免费国产一区| 一二三四社区欧美黄| 国产校园另类小说区| 91麻豆精品91久久久久同性| 一本久久综合亚洲鲁鲁五月天| 国产一区二区三区综合| 蜜臀av一级做a爰片久久| 一区二区欧美在线观看| 亚洲欧洲国产专区| 人人精品人人爱| 精品国产欧美一区二区| 天堂成人国产精品一区| 中文字幕第一页久久| 99九九99九九九视频精品| 亚洲一区二区在线观看视频 | 91视频一区二区| 青椒成人免费视频| 日本在线不卡视频一二三区| 亚洲午夜在线视频| 亚洲日本在线观看| 亚洲免费毛片网站| 亚洲激情av在线| 视频在线观看一区| 爽爽淫人综合网网站| 午夜久久久影院| 男女男精品视频网| 激情久久五月天| bt欧美亚洲午夜电影天堂| 99国产精品久久久久久久久久 | 国产亚洲综合在线| 国产精品久久久久7777按摩| 亚洲精品成人a在线观看| 丝袜a∨在线一区二区三区不卡| 亚洲超丰满肉感bbw| 成人一区二区视频| 欧美精品在线观看播放| 国产日韩欧美综合一区| 欧美一区二区高清| 6080yy午夜一二三区久久| 欧美日韩激情一区二区| 久久久亚洲午夜电影| 最新欧美精品一区二区三区| 国产精品美女久久久久久久| 国产精品欧美一级免费| 久久电影国产免费久久电影| 欧美日韩国产在线播放网站| 国产精品每日更新| 国产成人精品一区二| 欧美国产丝袜视频| 国产不卡视频一区二区三区| 久久亚洲二区三区| 成人黄页毛片网站| 欧美精品久久久久久久多人混战 | 亚洲精品美国一| 国产一区二区三区在线观看精品| 97aⅴ精品视频一二三区| 亚洲欧美日韩综合aⅴ视频| 成人小视频免费在线观看| 精品国产一区二区三区四区四| 午夜欧美在线一二页| 日韩西西人体444www| 日本最新不卡在线| 欧美激情在线一区二区| 国产剧情av麻豆香蕉精品| 久久九九久久九九| 欧美日韩三级一区| 99久久精品国产麻豆演员表| 久久久久国产精品免费免费搜索| 国产精品一区二区久久精品爱涩| 久久久久久黄色| 日本久久一区二区| 青青草97国产精品免费观看| 日韩精品一区二区在线| 成人深夜在线观看| 免费久久99精品国产| 2019国产精品| 制服.丝袜.亚洲.中文.综合| 在线观看国产日韩| 91亚洲永久精品| jlzzjlzz国产精品久久| 国产精品资源在线| 九色|91porny| 国产一区二区三区四区五区入口| 日韩电影在线免费看| 国产精品视频观看| 久久久亚洲国产美女国产盗摄 | 国产精品一级片| 日本午夜一本久久久综合| 亚洲一区二区五区| 欧美另类高清zo欧美| 欧美伊人久久大香线蕉综合69| 99国产精品久久久| 精品伊人久久久久7777人| 国产精品国产三级国产有无不卡| 欧美日本在线看| 在线免费亚洲电影| 成人亚洲一区二区一| 国产一级精品在线| 看电影不卡的网站| 蜜桃视频一区二区三区在线观看| 国产精品久久看| 久久久久久久久蜜桃| 欧美成人aa大片| 日韩视频在线一区二区| 666欧美在线视频|