<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在线| 亚洲人成无码网WWW| 久久精品国产亚洲av麻豆小说| 三级毛片在线免费观看| 久久久久亚洲AV成人网人人软件| 深夜福利在线视频免费| 免费在线观看你懂的| 边摸边吃奶边做爽免费视频99| 国产免费久久精品久久久| 西西人体大胆免费视频| 亚洲精品无码永久在线观看| 一区二区免费国产在线观看| 国产偷国产偷亚洲清高动态图 | 免费又黄又爽又猛大片午夜| 国产做床爱无遮挡免费视频| 免费人成网上在线观看| 最新精品亚洲成a人在线观看| 国产精品hd免费观看| 亚洲AV无码一区东京热久久| 蜜臀AV免费一区二区三区| 33333在线亚洲| 国产免费爽爽视频免费可以看| jizz免费在线影视观看网站| 国产日产亚洲系列| 亚洲精品视频免费看| 亚洲砖码砖专无区2023| 无码专区一va亚洲v专区在线| 中文字幕在线视频免费| 亚洲天堂一区二区三区| 国产精品公开免费视频| 成人妇女免费播放久久久| 亚洲激情视频网站| 免费一级毛片女人图片| 久久精品成人免费观看| 亚洲 日韩经典 中文字幕| 国产亚洲自拍一区| 无码乱肉视频免费大全合集| 在线精品自拍亚洲第一区| 亚洲2022国产成人精品无码区 | 亚洲伦另类中文字幕| 日韩一级视频免费观看|