亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用MIDP2.0開發游戲(2)使用Sprite

2019-11-17 06:27:34
字體:
來源:轉載
供稿:網友

SPRite,精靈,顧名思義,專用來代表游戲中的動畫角色,比如飛機,坦克等等。在MIDP1.0中,我們必須自己寫專門的類來實現Sprite,幸運的是,MIDP2.0為Sprite提供了強力支持,可以創建靜態,動態,不透明和透明的Sprite,下面我們預備在上次的GameCanvas基礎上添加一個Sprite并讓它動起來。

Sprite的主要構造方法有:

Sprite(Image):構造一個單幅圖案的Sprite;

Sprite(Image, int width, int height):構造一個動畫Sprite,圖片將按照指定大小被分為N個Frame,通過setFrame(int index)就可以讓Sprite動起來。我們用了一個有透明背景的png圖片創建坦克的Sprite:

使用MIDP2.0開發游戲(2)使用Sprite(圖一)

(注重這個圖是放大的JPG格式,你需要用photoshop之類的軟件處理成有透明背景的png格式,大小為64x16)

我們在Eclipse中建立如下工程和目錄:

使用MIDP2.0開發游戲(2)使用Sprite(圖二)

以下是畫出Sprite的TankGameCanvas.java

package tank.midp.core;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class TankGameCanvas extends GameCanvas implements Runnable {
    // 控制方向:
    private static int INDEX_OF_UP = 0;
    private static int INDEX_OF_DOWN = 1;
    private static int INDEX_OF_LEFT = 3;
    private static int INDEX_OF_RIGHT = 2;

    private boolean isPlay; // Game Loop runs when isPlay is true
    private long delay; // To give thread consistency
    private int currentX, currentY; // To hold current position of the 'X'
    private int width; // To hold screen width
    private int height; // To hold screen height

    private Sprite spriteTank; // our sprite!

    // Constructor and initialization
    public TankGameCanvas() {
        super(true);
        width = getWidth();
        height = getHeight();
        currentX = width / 2;
        currentY = height / 2;
        delay = 20;
        // init sprite:
        try {
            Image image = Image.createImage("/res/img/player1.png"); // 注重路徑
            spriteTank = new Sprite(image, 16, 16); // 大小是16x16
        }
        catch(Exception e) { e.printStackTrace(); }
    }

    // Automatically start thread for game loop
    public void start() {
        isPlay = true;
        new Thread(this).start();
    }

    public void stop() { isPlay = false; }

    // Main Game Loop
    public void run() {
        Graphics g = getGraphics();
        while (isPlay) {
            input();
            drawScreen(g);
            try {
                Thread.sleep(delay);
            }
            catch (InterruptedException ie) {}
        }
    }

    // Method to Handle User Inputs
    private void input() {
        int keyStates = getKeyStates();
        // Left
        if ((keyStates & LEFT_PRESSED) != 0) {
            currentX = Math.max(0, currentX - 1);
            spriteTank.setFrame(INDEX_OF_LEFT);
        }
        // Right
        if ((keyStates & RIGHT_PRESSED) !=0 ) {
            if ( currentX + 5 < width)
                currentX = Math.min(width, currentX + 1);
            spriteTank.setFrame(INDEX_OF_RIGHT);
        }
        // Up
        if ((keyStates & UP_PRESSED) != 0) {
            currentY = Math.max(0, currentY - 1);
            spriteTank.setFrame(INDEX_OF_UP);
        }
        // Down
        if ((keyStates & DOWN_PRESSED) !=0) {
            if ( currentY + 10 < height)
                currentY = Math.min(height, currentY + 1);
            spriteTank.setFrame(INDEX_OF_DOWN);
        }
    }
    // Method to Display Graphics
    private void drawScreen(Graphics g) {
        g.setColor(0); // black
        g.fillRect(0, 0, getWidth(), getHeight());

        // 畫一個Sprite非常簡單:
        spriteTank.setPosition(currentX, currentY);
        spriteTank.paint(g);

        flushGraphics();
    }
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女久久| 国产精品99久久久久久人| 国产精品久久久久一区二区| 中文字幕精品影院| 欧美性感美女h网站在线观看免费| 国产精品高潮呻吟久久av无限| 一区二区日韩精品| 欧美高清不卡在线| 亚洲网站视频福利| 国产精品入口免费视频一| 国产精品成人免费电影| 欧美有码在线观看视频| 成人激情视频在线观看| 久久久免费av| 亚洲人成啪啪网站| 亚洲第一国产精品| 中文字幕欧美日韩在线| 日韩最新免费不卡| 午夜精品国产精品大乳美女| 欧美激情xxxx性bbbb| 欧美国产第二页| 亚洲精品福利资源站| 欧美亚洲在线观看| 国产精品一二三在线| 国产在线观看一区二区三区| 日韩在线高清视频| 国产91亚洲精品| 欧美在线不卡区| 国产精品综合网站| 欧美成人精品在线| 91精品久久久久久久久青青| 最近日韩中文字幕中文| 欧美精品久久久久久久久久| 亚洲奶大毛多的老太婆| 激情成人中文字幕| 欧美精品videos性欧美| 精品激情国产视频| 亚洲一区免费网站| 国外成人在线直播| 欧美性生交xxxxxdddd| 久久久国产精品视频| 乱亲女秽乱长久久久| 日韩欧美在线免费观看| 欧美成人国产va精品日本一级| 九九热这里只有在线精品视| 欧美老女人bb| 国产亚洲精品久久久优势| 国产精品视频男人的天堂| 精品少妇一区二区30p| 欧美在线视频一二三| 国产最新精品视频| 欧美性猛交99久久久久99按摩| 亚洲精品欧美一区二区三区| 91麻豆桃色免费看| 国产精品一区久久久| 国产精品日本精品| 这里只有精品在线观看| 日韩精品在线视频美女| 亚洲精品国产综合久久| 亚洲男人天堂网| 欧美精品videossex性护士| 国产自摸综合网| 久久中文精品视频| 亚洲人成电影在线| 日本伊人精品一区二区三区介绍| 中文字幕精品av| 久久成人综合视频| 尤物精品国产第一福利三区| 在线性视频日韩欧美| 奇米四色中文综合久久| 另类少妇人与禽zozz0性伦| 欧美一乱一性一交一视频| 伊人伊人伊人久久| 亚洲自拍偷拍色片视频| 亚洲精品美女久久久| 亚洲第一国产精品| 亚洲日韩欧美视频一区| 欧美成人精品h版在线观看| 久久97久久97精品免视看| 亚洲第一精品久久忘忧草社区| 57pao成人永久免费视频| 日韩亚洲一区二区| 欧美亚洲国产日本| 亚洲欧美一区二区精品久久久| 欧美精品videossex88| 国产精品久久久久av免费| 日韩欧美一区二区在线| 国产精品视频xxx| 日韩成人免费视频| 久久视频国产精品免费视频在线| 中文字幕日韩精品在线观看| 国产精品久久久久久久久借妻| 国产国语刺激对白av不卡| 日韩成人性视频| 欧美日韩亚洲一区二区| 日本不卡视频在线播放| 日韩av高清不卡| 亚洲精品福利在线观看| 亚洲国产91精品在线观看| 久久久久久免费精品| 91亚洲精品久久久久久久久久久久| 国产亚洲一级高清| 成人观看高清在线观看免费| 91在线色戒在线| 欧美午夜片欧美片在线观看| 国产精品一区二区三区久久| 欧美精品激情视频| 亚洲精品一区二三区不卡| 午夜精品国产精品大乳美女| 久久精品国产综合| 亚洲老头同性xxxxx| 日韩中文第一页| 久久乐国产精品| 疯狂做受xxxx高潮欧美日本| 国产精品视频大全| 91香蕉嫩草影院入口| 中文字幕在线精品| 精品国产精品三级精品av网址| 北条麻妃99精品青青久久| 亚洲精品自在久久| 亚洲天堂av高清| 欧美一区二区三区……| 国产精品视频一区国模私拍| 欧美理论片在线观看| 国产精品久久久久久久久借妻| 国模私拍一区二区三区| 欧洲亚洲在线视频| 国产精品xxx视频| 91精品久久久久久久久久久久久| 成人在线中文字幕| 深夜成人在线观看| 亚洲欧美制服第一页| 日韩欧美中文在线| 国产欧美va欧美va香蕉在| 午夜精品久久久久久久久久久久久| 国产成人亚洲综合青青| 亚洲成人免费网站| 久久九九免费视频| 精品久久久久久中文字幕一区奶水| 91欧美精品成人综合在线观看| 欧美另类老肥妇| 亚洲视频一区二区三区| 久久久久国色av免费观看性色| 亚洲国产日韩一区| 亚洲美女av黄| 欧美插天视频在线播放| 亚洲国产高清自拍| 国产伦精品一区二区三区精品视频| 91成人国产在线观看| 亚洲第一精品久久忘忧草社区| 日韩欧美精品免费在线| 亚洲国产精品va在线| 精品毛片三在线观看| 久久久国产一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 一色桃子一区二区| 一本一本久久a久久精品综合小说| 98精品国产高清在线xxxx天堂| 中文欧美日本在线资源| 欧美成人激情视频| 亚洲精选一区二区| 欧美中文在线观看| 91国偷自产一区二区三区的观看方式| 欧美福利视频在线|