<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    即興的靈感

    思維是一種藝術; 藝術需要靈感。

    博客好友

    最新評論

    J2ME游戲APIの游戲精靈Sprite

    ?? 在J2ME手機游戲開發(fā)中,MIDP2.0以上版本提供了一個有助于游戲制作的類,該類稱為游戲精靈Sprite,在J2ME中使用游戲精靈Sprite可以簡單的管理角色動畫使用的frame圖像。
    ?? 以下我將歸納一下游戲精靈Sprite的一些核心內(nèi)容。
    ?? 一、圖像分割
    ?? 在使用Sprite類時候,只需要準備一張圖像就可以構(gòu)造出生動的動畫效果,將要制作的動畫效果使用的圖像按照順序排列后制作成一張圖片,在Sprite構(gòu)造方法中設定圖片源跟圖片的分割frame數(shù),Sprite就能自動根據(jù)frame數(shù)對圖片進行分割。
    ?? Sprite常用構(gòu)造方法為:public Sprite(Image i, int frameWidth, int frameHeight)。
    ?? 需要注意的是,組成圖片的各個幀寬度必須相同,且像素數(shù)需要跟圖片對應,否則將出現(xiàn)IO異常。

    ?? 二、圖片frame設置
    ?? 經(jīng)過Sprite的分割后,圖片將被分成不同的獨立小圖片,例如一副圖片由4幀圖片組成,則圖片的index將從0-3個不同幀對象。利用Sprite類的setFrame(int index)方法可以在游戲過程中任意指定顯示哪一個frame。
    ?? 相應其他方法還有nextFrame()和prevFrame()取得前后幀圖像等方法。

    ?? 三、精靈定位與描繪
    ?? Sprite類利用setPosition方法來指定精靈描繪的坐標點(固定點是圖片的左上頂點坐標),從而定位了精靈在屏幕中的位置;在描繪精靈時,只需要把Graphics對象傳遞到Sprite中的paint方法中的參數(shù)就能將精靈顯示。
    ?? 例如:精靈對象plane
    ?? 設置位置:plane.setPosition(getWidth()/2, getHeight()/2);
    ?? 顯示精靈:plane.paint(g);

    ?? 四、精靈轉(zhuǎn)動跟翻轉(zhuǎn)
    ?? 在游戲中經(jīng)常需要使游戲?qū)ο笥修D(zhuǎn)動跟翻轉(zhuǎn)的功能使得游戲更加生動逼真,在Sprite類中提供了方法void setTransform(int transform)來設定精靈的轉(zhuǎn)動跟翻轉(zhuǎn)效果,利用它我們就可以容易的讓圖片動起來。
    ?? 參數(shù)transform預先設定了八種常量定義,這八種常量對應的效果如下:
    ?? 1、TRANS_NONE: 沒有進行轉(zhuǎn)動和翻轉(zhuǎn);
    ? 2、TRANS_ROT90: 90度轉(zhuǎn)動;
    ? 3、TRANS_ROT180: 180度轉(zhuǎn)動;
    ? 4、TRANS_ROT270: 270度轉(zhuǎn)動;
    ? 5、TRANS_MIRROR: 左右翻轉(zhuǎn);
    ? 6、TRANS_MIRROR_ROT90: 左右翻轉(zhuǎn)后90度轉(zhuǎn)動;
    ? 7、TRANS_MIRROR_ROT180: 左右翻轉(zhuǎn)后180度轉(zhuǎn)動;
    ? 8、TRANS_MIRROR_ROT270: 左右翻轉(zhuǎn)后270度轉(zhuǎn)動。
    ? 如設定精靈plane轉(zhuǎn)動90度如下:
    ? plane.setTransform(Sprite.TRANS_ROT90);

    ? 五、精靈參照點和目標定位
    ??在Sprite中還有兩個重要的方法,分別為defineReferencePixel(int x,int y)和setRefPixelPosition(int y,int y),用于設定精靈的參照點和對精靈參照點的目標定位。
    ??如設定精靈plane的參照點跟定位點如下:
    ??plane.defineReferencePixel(0,12);
    ??plane.setRefPixelPosition(getWidth()/2,getHeight()/2);

    ??六、精靈碰撞檢測
    ??在MIDP1.0中對游戲角色碰撞是通過計算物體的大小以及坐標來判斷的,Sprite中提供了專門的碰撞判斷方法,通過該方法可以容易的對角色是否接觸進行判斷。
    ??碰撞判斷常用的方法為collidesWith(Sprite sprite,boolean pixelLebel);
    ??第一個參數(shù)為與自身可能發(fā)生碰撞的精靈對象;
    ??第二個參數(shù)為是否像素級別碰撞檢測,如果為false,則當精靈圖片的邊框接觸時候?qū)榕鲎舶l(fā)生;如果為true,則需要在當圖片中真實的像素內(nèi)容接觸時碰撞才發(fā)生,通常設定為true使得游戲更加逼真。

    ?
    鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
    ???? 隱姓埋名/低調(diào)華麗/簡單生活/完美人生

    posted on 2009-02-17 13:47 poetguo 閱讀(1745) 評論(0)  編輯  收藏 所屬分類: J2ME

    主站蜘蛛池模板: 国产精品极品美女免费观看| 毛片免费观看网址| 久久乐国产精品亚洲综合| 亚洲av无码偷拍在线观看| 成年人视频在线观看免费| 香蕉大伊亚洲人在线观看| 男女免费观看在线爽爽爽视频| 亚洲国产日韩在线| 免费下载成人电影| 亚洲欧洲AV无码专区| 日本一区免费电影| 免费夜色污私人影院网站电影| 亚洲国产精品成人AV无码久久综合影院| 在线看亚洲十八禁网站| 亚洲人成网www| 91热久久免费精品99| 亚洲午夜在线一区| 成人免费视频软件网站| 国产成人高清亚洲一区91| 亚洲国产一区二区三区| 99视频在线免费观看| 在线电影你懂的亚洲| 久久久久国产精品免费免费搜索| 国产99在线|亚洲| 免费一级毛片在播放视频| 一级做α爱过程免费视频| 亚洲国产精品成人久久| 成人黄色免费网站| 国产精品亚洲一区二区三区在线观看| 亚洲精品无码久久久| 99久热只有精品视频免费观看17| 亚洲天堂2016| 国产精品亚洲αv天堂无码| 99久久免费观看| 久久久久亚洲精品无码网址色欲| 亚洲日韩欧洲无码av夜夜摸| 91免费人成网站在线观看18| 亚洲国产精品99久久久久久| 亚洲精品二区国产综合野狼| 无码人妻久久一区二区三区免费丨 | 亚洲人成电影网站国产精品|