亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
2023国产一二三区日本精品2022| 91极品美女在线| 欧美一区二区三区啪啪| 日韩在线卡一卡二| 26uuu精品一区二区在线观看| 国产在线精品一区二区三区不卡| 国产日本一区二区| 99热这里都是精品| 亚洲444eee在线观看| 欧美电影免费观看高清完整版在线 | 欧美激情资源网| 成人午夜视频在线观看| 亚洲六月丁香色婷婷综合久久| 欧美午夜电影一区| 久久99精品网久久| 国产精品二区一区二区aⅴ污介绍| 色天天综合色天天久久| 人妖欧美一区二区| 国产精品丝袜黑色高跟| 欧美日韩免费一区二区三区| 久久99久久精品欧美| 国产精品―色哟哟| 在线成人小视频| 东方欧美亚洲色图在线| 亚洲一卡二卡三卡四卡五卡| 欧美videofree性高清杂交| 成人高清免费观看| 日韩av一区二区三区| 国产精品免费免费| 91精品麻豆日日躁夜夜躁| 成人av片在线观看| 久久精品久久精品| 亚洲免费视频成人| 久久综合九色综合欧美98| 色婷婷av一区二区三区大白胸| 久88久久88久久久| 亚洲成人先锋电影| 17c精品麻豆一区二区免费| 91精品国产免费久久综合| 91一区二区在线| 另类小说综合欧美亚洲| 一区二区三区欧美亚洲| 欧美激情一区二区三区全黄| 91麻豆精品国产91久久久使用方法| 国v精品久久久网| 久久精品久久99精品久久| 亚洲美女淫视频| 欧美国产精品劲爆| 精品剧情v国产在线观看在线| 91福利国产精品| 成人福利视频在线| 国产精品一线二线三线| 日本欧美大码aⅴ在线播放| 一区二区三区中文字幕精品精品 | 国产精品1区2区| 蜜芽一区二区三区| 一区二区三区成人| 亚洲日本乱码在线观看| 中文字幕精品在线不卡| 国产亚洲自拍一区| 日韩小视频在线观看专区| 欧美无乱码久久久免费午夜一区| 国产成人综合在线| 国产精品自拍av| 国产精品一色哟哟哟| 久久 天天综合| 蜜桃av一区二区三区| 日本中文字幕不卡| 丝袜美腿亚洲一区二区图片| 亚洲自拍偷拍麻豆| 亚洲成av人片在线| 亚洲成人激情自拍| 亚洲成人tv网| 三级欧美在线一区| 天堂va蜜桃一区二区三区| 日日夜夜免费精品| 日本欧美一区二区三区乱码| 五月激情综合婷婷| 日产精品久久久久久久性色 | 精品伊人久久久久7777人| 免费在线观看日韩欧美| 免费成人性网站| 久久精品国产亚洲一区二区三区 | 亚洲成人av在线电影| 五月婷婷激情综合| 奇米影视一区二区三区| 久久国产精品色婷婷| 韩国成人福利片在线播放| 激情综合一区二区三区| 国产精品一级二级三级| 成人网在线免费视频| 91免费在线播放| 欧美日韩国产高清一区二区| 日韩视频一区二区在线观看| 2014亚洲片线观看视频免费| 国产免费观看久久| 亚洲区小说区图片区qvod| 亚洲成人自拍偷拍| 国产呦萝稀缺另类资源| 9色porny自拍视频一区二区| 94色蜜桃网一区二区三区| 欧美日韩精品电影| 精品处破学生在线二十三| 国产精品理伦片| 午夜精品免费在线| 国产主播一区二区三区| 91在线观看地址| 欧美一区二区高清| 国产精品久久久久久久久图文区| 亚洲一区中文日韩| 激情综合网激情| 一本色道综合亚洲| 777亚洲妇女| 国产精品网站在线播放| 午夜精品福利视频网站| 国产一区二区三区四区在线观看| 91麻豆免费在线观看| 日韩欧美亚洲国产精品字幕久久久| 国产精品女主播av| 日本视频中文字幕一区二区三区| 国产成人av一区| 欧美一区二区三区免费视频 | 久久精品人人做人人爽97| 亚洲午夜激情av| 成人中文字幕在线| 6080午夜不卡| 亚洲免费电影在线| 国产乱对白刺激视频不卡| 欧美午夜一区二区三区免费大片| 久久九九国产精品| 免费在线观看视频一区| 欧美亚洲动漫精品| 亚洲国产精品99久久久久久久久 | 亚洲欧洲成人精品av97| 久久激情五月激情| 色哟哟精品一区| 中文字幕av资源一区| 激情亚洲综合在线| 在线观看91av| 亚洲国产日韩在线一区模特| eeuss鲁片一区二区三区在线看| 日韩欧美国产wwwww| 亚洲成av人片在www色猫咪| av一区二区不卡| 久久久久久久网| 国产一区二区三区免费在线观看| 欧美人动与zoxxxx乱| 亚洲精品中文在线观看| 欧洲人成人精品| 国产亚洲污的网站| 国内精品视频666| 日韩三级.com| 日本伊人色综合网| 欧美另类一区二区三区| 亚洲亚洲精品在线观看| 一本在线高清不卡dvd| 综合久久久久久| 97久久人人超碰| 亚洲女女做受ⅹxx高潮| www.欧美亚洲| 国产精品电影一区二区| 成人一道本在线| 国产精品视频在线看| 成人aaaa免费全部观看| 中文字幕在线不卡视频| av在线播放一区二区三区| 亚洲特黄一级片| 91精品91久久久中77777| 亚洲一区二区在线免费看| 欧洲日韩一区二区三区| 亚洲高清视频中文字幕| 欧美理论在线播放| 午夜精品久久久| 日韩欧美在线网站| 国产一区二区三区免费| 国产欧美精品一区二区三区四区| 国产精品一二三四五| 国产精品美女久久久久高潮| a亚洲天堂av| 亚洲一卡二卡三卡四卡无卡久久 | 国产欧美日韩一区二区三区在线观看| 九九**精品视频免费播放| 欧美精品一区二区三区视频| 国产美女精品人人做人人爽| 日本一区二区免费在线观看视频| 丁香啪啪综合成人亚洲小说| 亚洲欧美综合另类在线卡通| 97精品久久久久中文字幕| 亚洲无人区一区| 日韩欧美国产系列| 成人免费毛片片v| 亚洲一区二区三区国产| 日韩一区二区三区视频在线| 国产一区二区女| 亚洲精品视频一区二区| 日韩欧美区一区二| 99久久精品国产一区| 亚洲va欧美va人人爽| 久久久精品日韩欧美| 欧美亚洲国产一区二区三区va |