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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? maincanvas.java~3~

?? 太空大戰(zhàn)J2ME版本
?? JAVA~3~
字號:
package game0925;

import javax.microedition.lcdui.*;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;
import java.util.Random;
import javax.microedition.media.*;
import java.io.*;

/**
 * <p>Title:太空生存 </p>
 *狀態(tài):完成(待改進)
 * 日期:2005.10.15
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class MainCanvas extends Canvas implements CommandListener, Runnable {

    Command ok;
    protected static MainCanvas self;
    private Random rnd = new Random();
    protected int score;
    protected static int D_SCORE = 5;
    protected int alive = 100;
    protected static int DEF_A = 1;

    //******************************************************
//     protected Vector ufomissV = new Vector(); //敵機子彈
//    protected int ufomissCount = 0; //敵機子彈數(shù)量

     protected Vector mymissV = new Vector(); //自機子彈

    protected int mymissCount = 0; //自機子彈數(shù)量

    protected UFOMiss[] ufomiss = new UFOMiss[] {
                                  new UFOMiss(),
                                  new UFOMiss(),
                                  new UFOMiss(),
                                  new UFOMiss(),
                                  new UFOMiss()
    };

    protected Vector ufoV = new Vector(); //UFO

    protected int ufoCount = 0; //敵機數(shù)量
    //*****************************************************
     Thread thread;
    public int gameAction;
    public boolean keyEvent;
    private Timer timer = new Timer();
    public Task task;
    protected PlayTask play = new PlayTask();
    protected int gamestate;
    protected static final int GAME_TITLE = 0;
    protected static final int GAME_PLAYING = 1;
    protected static final int GAME_END = 2;
    protected static final int GAME_PAUSE = 3;
    private int screenwidth;
    private int screenheight;
    private Image background;
    private Image off;
    private MyShip myship = new MyShip(); //自機
//    List l = new List(" ", 1);
    public MainCanvas() {
        self = this;
        ok = new Command("重新開始", Command.OK, 1);
//        this.addCommand(ok);
        //   this.setCommandListener(this);


        task = new Task(this);
        if (background == null) {
            background = ImageTools.getImage("/img/backg.PNG");
        }
        if (!this.isDoubleBuffered()) {
            off = Image.createImage(getWidth(), getHeight());
        }
        screenwidth = this.getWidth();
        screenheight = this.getHeight();

        gameInit();
    }

    public void keyPressed(int keycode) {
        gameAction = getGameAction(keycode);
        keyEvent = true;
    }

    public void keyReleased(int keycode) {
        keyEvent = false;
    }

    public void commandAction(Command command, Displayable displayable) {
        /** @todo Add command handling code */
        if (command.getCommandType() == Command.EXIT) {
            // stop the MIDlet
            MaiMIDlet.quitApp();
        } else if (command == ok) {
            gameInit();
        }
    }

    void gameInit() {
        if (thread == null) {
            thread = new Thread(this);
        }
        myship.isAlive = true;
        myship.setX(screenwidth / 2);
        myship.setY(screenheight - myship.getHeight() - 10);
        gamestate = GAME_PLAYING;
        thread.start();
        score = 0;
        alive = 100;
    }

    protected void paint(Graphics g) {
        Graphics old = g;
        if (off != null) {
            g = off.getGraphics();
        }
        g.drawImage(background, screenwidth / 2, screenheight / 2,
                    Graphics.HCENTER | Graphics.VCENTER);
        switch (gamestate) {
        case GAME_TITLE:
            g.setColor(0xffffff);
            g.drawString("Chao copyright 2005", 10, 5,
                         Graphics.TOP | Graphics.LEFT);
            break;
        case GAME_PLAYING:

            //************************顯示部分**********************
             myship.paint(g);

            for (int i = 0; i < mymissV.size(); i++) { //自機子彈
                MyMiss miss = (MyMiss) mymissV.elementAt(i);
                miss.paint(g);
            }

            for (int i = 0; i < ufoV.size(); i++) { //UFO
                UFO ufo = (UFO) ufoV.elementAt(i);
                ufo.paint(g);
            }
            for (int i = 0; i < ufomiss.length; i++) { //ufo 子彈
                ufomiss[i].paint(g);
            }

            //********************************************************

             //---------積分顯示--------------------------
             g.setColor(0x00ff0000);
            g.drawString("S:" + score, this.getWidth() - 80, 5,
                         Graphics.TOP | Graphics.LEFT);
            g.drawString("L:" + alive, 5, this.getHeight() - 20,
                         Graphics.TOP | Graphics.LEFT);

            //----------------------------------------
            break;
        case GAME_END:
            g.setColor(0xffffff);
            g.drawString("Chao.com copyright 2005", this.getWidth() - 150,
                         this.getHeight() - 40, Graphics.TOP | Graphics.LEFT);
            g.drawString("G A M E   O V E R !", this.getWidth() / 2 - 35,
                         this.getHeight() / 2, Graphics.TOP | Graphics.LEFT);
            break;
        }
        if (g != old) {
            g.drawImage(off, 0, 0, 20);
        }
    }

    public void showNotify() {
        timer.schedule(task, 0);
//        timer.schedule(play, 0, 40);
    }

    void addUFO() { //加入敵機
        UFO ufo;
        int _temp = rnd.nextInt() % 2;
        int x_s;
        int _x = this.getWidth() - 50;
        int _y;
        int _speed = rnd.nextInt(30);
        if (_temp == 1 | _temp == -1) {
            _temp = rnd.nextInt() % 2;
        }
        if (_temp < 0) {
            _temp = ( -1) * _temp;
        }
        x_s = _temp * 2 + 12;
        _y = 16 * _temp;
        _x = _x - _temp * 2;
        if (_temp == 0) {
            ufoV.addElement(new UFO(x_s, _y, UFO.DIR_LEFT, true, _speed));
        } else {
            ufoV.addElement(new UFO(_x, _y, UFO.DIR_RIGHT, true, _speed));
        }
    }

    public void keyR() { //飛機按鍵事件
        switch (gameAction) {
        case Canvas.UP:
            if (myship.getY() > 0) {
                myship.y -= 5;
            }
            break;
        case Canvas.DOWN:
            if (myship.getY() < screenheight - myship.getHeight() - 10) {
                myship.y += 5;
            }
            break;
        case Canvas.LEFT:
            if (myship.getX() > 0) {
                myship.x -= 5;
            }
            break;
        case Canvas.RIGHT:
            if (myship.getX() < screenwidth - myship.getWidth() - 1) {
                myship.x += 5;
            }
            break;
        }
        repaint();
    }

    public void run() {
        int temp;
        int speed;
        switch (gamestate) {
        case GAME_TITLE:
            try {
                Thread.sleep(1500);
                gamestate = GAME_PLAYING;
                repaint();
            } catch (Exception e) {}

            break
                    ;
        case GAME_PLAYING:
            repaint();
            while (thread != null) {

                if (alive <= 0) {
                    gamestate = GAME_END;
                }
                for (int i = 0; i < mymissV.size(); i++) { //處理自機子彈
                    MyMiss miss = (MyMiss) mymissV.elementAt(i);
                    if (miss.isAlive() && miss.getY() + miss.getHeight() > 0) {
                        miss.doMove();
                        for (int j = 0; j < ufoV.size(); j++) {
                            UFO ufo = (UFO) ufoV.elementAt(j);
                            if (ufo.isAlive()) {
                                if (miss.isOver(ufo)) {
                                    score = score + D_SCORE;
                                    ufo.setAlive(false);
                                    ufoV.removeElement(ufo);
                                    mymissV.removeElement(miss);
                                    break;
                                }
                            }
                        }

                    } else if (miss.isAlive() &&
                               miss.getY() + miss.getHeight() < 0) {

                        if (miss.getY() + miss.getHeight() < 0) {
                            mymissV.removeElement(miss);
                        }
                    }
                }

                for (int i = 0; i < ufoV.size(); i++) { //處理UFO
                    UFO ufo = (UFO) ufoV.elementAt(i);
                    if (ufo.isAlive()) {
                        if (ufo.getX() + ufo.getWidth() > 0 &&
                            ufo.getX() < this.getWidth()) {
                            ufo.doMove();
                        } else {
                            ufo.setHit(true);
                            ufo.setAlive(false);
                            ufoV.removeElement(ufo);
                            break;
                        }
                    }

                    if (isCenter(ufo) && ufo.isAlive()) { //如果處于最佳攻擊位置則發(fā)射子彈
                        for (int j = 0; j < ufomiss.length; j++) { //激活子彈
                            if (!ufomiss[j].isAlive) {
                                ufomiss[j].setX(ufo.getX() + ufo.getWidth() / 2);
                                ufomiss[j].setY(ufo.getY());
                                ufomiss[j].setAlive(true);
                                break;
                            }
                        }
                    }

                }

                temp = rnd.nextInt(30);
                speed = rnd.nextInt(5);

                for (int i = 0; i < ufomiss.length; i++) {
                    if (ufomiss[i].getY() > this.getHeight() - 10) {
                        ufomiss[i].setAlive(false);
                        ufomiss[i].setHit(false);
                    }
                    if (ufomiss[i].isAlive()) {
                        ufomiss[i].doMove();
                    }
                    if (ufomiss[i].isOver(myship) && ufomiss[i].isAlive()) {
                        alive = alive - DEF_A;
                        ufomiss[i].setAlive(false);

                        break;
                    }
                }
                if (mymissV.size() < 5) {
                    mymissV.addElement(new MyMiss(myship.getX() +
                                                  myship.getWidth() / 2 - 2,
                                                  myship.getY() - 6, true));
                }
                if (ufoV.size() < 5) {
                    addUFO(); //加入敵機
                }
                try {
                    Thread.sleep(40);
                } catch (Exception e) {}
                repaint();
            }
            break;
        case GAME_END:
            repaint();
            try {
                thread = null;
                Thread.sleep(5000);

            } catch (Exception e) {}
            break
                    ;

        }
    }

    boolean isCenter(UFO ufo) { //判定敵機是否處于最佳攻擊位置
        if (ufo.getX() + ufo.getWidth() / 2 >= myship.getX() - ufo.getWidth() &&
            ufo.getX() + ufo.getWidth() <=
            myship.getX() + myship.getWidth() * 2
                ) {
            return true;
        }
        return false;
    }
}


class PlayTask extends TimerTask {
    Player p;
//    MainCanvas my;
//    public PlayTask(MainCanvas my) {
//        this.my = my;
//    }

    public void run() {
        try {
            InputStream is = getClass().getResourceAsStream(
                    "/music/tightspot.mid");
            p = Manager.createPlayer(is, "audio/midi");
            p.realize();
            p.start();
        } catch (Exception e) {}
    }
}


class Task extends TimerTask { //模擬連續(xù)按鍵
    MainCanvas my;
    public Task(MainCanvas my) {
        this.my = my;
    }

    public void run() {
        while (true) {
            while (my.keyEvent) {
                try {
                    my.keyR();
                    Thread.sleep(40);
                } catch (Exception e) {}
                my.repaint();
            }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费视频| 日韩高清电影一区| 欧美一区二区美女| 93久久精品日日躁夜夜躁欧美| 天堂成人国产精品一区| 国产欧美日韩综合| 日韩午夜激情av| 在线观看免费亚洲| 成人免费av资源| 久久精品国产成人一区二区三区| 国产精品成人网| 久久精品一区二区三区不卡| 7777精品伊人久久久大香线蕉的 | 色婷婷精品大在线视频| 国产乱子伦视频一区二区三区| 午夜精品久久久久久久99樱桃| 国产精品国产精品国产专区不蜜| 日韩精品一区二区三区中文精品| 欧美亚洲免费在线一区| 99re8在线精品视频免费播放| 极品美女销魂一区二区三区 | 久久免费精品国产久精品久久久久| 色综合久久88色综合天天| 高清免费成人av| 久久99精品国产.久久久久久| 亚洲va在线va天堂| 夜夜精品浪潮av一区二区三区| 国产精品久久久久国产精品日日| 久久久久青草大香线综合精品| 日韩欧美一级二级三级久久久| 欧美人体做爰大胆视频| 欧美日韩在线电影| 欧美日韩美女一区二区| 在线免费一区三区| 色激情天天射综合网| 欧美亚洲国产怡红院影院| 色综合久久中文综合久久牛| 91在线免费看| 欧美在线免费视屏| 欧美午夜在线一二页| 欧美三级电影网| 欧美日韩不卡一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲国产精品精华液ab| 中文一区二区在线观看| 国产精品另类一区| 成人免费视频在线观看| 亚洲免费观看高清完整版在线观看| 亚洲啪啪综合av一区二区三区| 中文字幕在线不卡国产视频| 亚洲日本成人在线观看| 亚洲激情校园春色| 丝袜美腿一区二区三区| 日本不卡视频在线| 国产一区二区精品久久91| 国产成人丝袜美腿| aa级大片欧美| 欧美性生活大片视频| 欧美一级欧美一级在线播放| 日韩视频在线你懂得| 久久综合九色综合欧美98| 中文字幕乱码久久午夜不卡| 亚洲免费观看高清在线观看| 日韩高清不卡在线| 国产精品一区专区| 99久久99久久综合| 7777女厕盗摄久久久| 国产偷v国产偷v亚洲高清| 亚洲精品五月天| 日本不卡的三区四区五区| 国产精品小仙女| 色婷婷精品大视频在线蜜桃视频 | 国产精品青草综合久久久久99| 一区二区三区中文在线| 蜜桃精品视频在线观看| 成人国产精品免费观看动漫| 欧美视频日韩视频在线观看| 26uuu国产一区二区三区| 亚洲精品视频在线观看免费| 青草国产精品久久久久久| 风流少妇一区二区| 欧日韩精品视频| 国产偷v国产偷v亚洲高清| 亚洲成人手机在线| 成人黄页毛片网站| 日韩一卡二卡三卡| 亚洲色图制服诱惑| 激情另类小说区图片区视频区| 99re热视频这里只精品| 精品国产乱子伦一区| 亚洲免费观看视频| 国产成人免费视频一区| 欧美天堂亚洲电影院在线播放| 国产亚洲成av人在线观看导航| 亚洲一级不卡视频| 成人开心网精品视频| 欧美一区二区三区四区视频| 一色桃子久久精品亚洲| 国产呦精品一区二区三区网站| 欧美在线999| 国产精品高清亚洲| 国产在线视频一区二区| 欧美午夜精品久久久久久孕妇| 国产女主播在线一区二区| 日韩成人av影视| 欧洲精品一区二区| 综合在线观看色| 国产精品123区| 精品久久久久久亚洲综合网| 亚洲大片一区二区三区| 成人a免费在线看| 久久免费视频色| 另类专区欧美蜜桃臀第一页| 欧美日韩卡一卡二| 一区av在线播放| 成人av动漫网站| 国产精品三级在线观看| 国产一区二区0| 日韩女优毛片在线| 青青草原综合久久大伊人精品| 欧美三区在线视频| 一区二区三区中文字幕在线观看| 99国产精品久| 亚洲四区在线观看| 懂色一区二区三区免费观看| 久久久噜噜噜久噜久久综合| 精品一二三四区| 欧美精品一区视频| 久久丁香综合五月国产三级网站| 欧美日韩国产精品成人| 天堂资源在线中文精品| 欧美日韩免费视频| 天堂一区二区在线免费观看| 欧美剧情片在线观看| 日本网站在线观看一区二区三区| 欧美军同video69gay| 日韩不卡一区二区| 日韩色视频在线观看| 麻豆精品视频在线观看免费| 日韩欧美成人激情| 国产综合色视频| 国产精品丝袜91| 91性感美女视频| 亚洲精品免费看| 欧美精选在线播放| 日本aⅴ精品一区二区三区| 日韩精品在线网站| 国产a视频精品免费观看| 国产精品高清亚洲| 欧美三级电影一区| 久久精品久久99精品久久| 欧美一级专区免费大片| 久久精品国产第一区二区三区| 国产午夜亚洲精品羞羞网站| 波多野结衣在线aⅴ中文字幕不卡| 成人免费在线视频观看| 精品视频一区三区九区| 免费成人av资源网| 国产日韩欧美不卡在线| 99re6这里只有精品视频在线观看| 亚洲精品视频一区| 欧美精品国产精品| 国产一区在线精品| 最近中文字幕一区二区三区| 欧美电影在线免费观看| 国产在线精品国自产拍免费| 中文字幕一区二区三区不卡| 欧美亚州韩日在线看免费版国语版| 日本不卡在线视频| 国产精品色眯眯| 欧美日韩三级视频| 国产夫妻精品视频| 一区二区三区av电影| 亚洲精品在线观看网站| 一本久久a久久免费精品不卡| 亚洲国产成人av网| 国产日韩欧美不卡在线| 91视视频在线观看入口直接观看www | 国产精品一二一区| 一区二区三区欧美激情| 精品国产91亚洲一区二区三区婷婷| gogogo免费视频观看亚洲一| 婷婷国产v国产偷v亚洲高清| 日本一区二区三区免费乱视频| 欧美亚洲日本国产| 粉嫩蜜臀av国产精品网站| 亚洲大尺度视频在线观看| 欧美国产日本韩| 91精品国产免费| 99精品视频一区二区| 免费成人在线视频观看| 亚洲综合丝袜美腿| 国产精品久久久久久久浪潮网站| 欧美放荡的少妇| 91国内精品野花午夜精品| 国产伦精品一区二区三区免费迷| 亚洲一级二级三级在线免费观看| 欧美国产精品专区| 久久人人超碰精品| 884aa四虎影成人精品一区|