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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? maincanvas.java~2~

?? 太空大戰J2ME版本
?? JAVA~2~
字號:
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>
 *
 * <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; //敵機子彈數量

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

    protected int mymissCount = 0; //自機子彈數量

    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; //敵機數量
    //*****************************************************
     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()) { //如果處于最佳攻擊位置則發射子彈
                        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 { //模擬連續按鍵
    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一区二区三区免费野_久草精品视频
国产精品久久久久久久裸模| 欧美专区日韩专区| 久久综合精品国产一区二区三区| 热久久国产精品| 精品区一区二区| 国产精品一区二区黑丝| 国产精品不卡一区| 欧洲中文字幕精品| 久久国产精品色婷婷| 久久精品在这里| 99久久国产综合精品色伊 | 精品久久一二三区| 国产高清精品久久久久| 最新不卡av在线| 欧美日韩午夜精品| 精品一区二区日韩| 中文字幕在线观看一区二区| 在线中文字幕不卡| 久久99精品久久久久久国产越南 | 欧美国产日韩精品免费观看| 91视视频在线观看入口直接观看www | 国产亚洲精品免费| 成人免费高清在线| 天堂成人国产精品一区| 亚洲精品一区二区三区香蕉| av亚洲精华国产精华精| 天天色 色综合| 国产目拍亚洲精品99久久精品| 91视视频在线观看入口直接观看www | 亚洲自拍偷拍麻豆| 精品国产伦一区二区三区观看方式 | 日韩精品乱码免费| 久久久久青草大香线综合精品| 91啦中文在线观看| 激情另类小说区图片区视频区| 国产精品免费网站在线观看| 91精品欧美久久久久久动漫| 国产成人精品三级| 丝袜美腿成人在线| 日韩理论电影院| 精品国产精品网麻豆系列| 色哟哟一区二区在线观看| 精品无人区卡一卡二卡三乱码免费卡| 亚洲色图一区二区三区| 日韩精品影音先锋| 欧美三级电影在线看| 不卡视频免费播放| 国产一区二区久久| 亚洲成av人片在www色猫咪| 国产女人18水真多18精品一级做| 欧美区视频在线观看| 色国产精品一区在线观看| 国产一二三精品| 免费精品视频最新在线| 亚洲一区二区三区四区中文字幕| 中文字幕欧美激情| 久久综合色综合88| 日韩女优av电影| 欧美一区二区三区色| 欧美中文一区二区三区| 色综合久久久久久久久久久| 成人精品国产免费网站| 国产一区二区伦理| 精品一区二区免费在线观看| 免费看欧美美女黄的网站| 香蕉成人伊视频在线观看| 一区二区激情小说| 亚洲男人的天堂av| 成人免费小视频| 亚洲桃色在线一区| 中文字幕一区二区三区四区不卡 | 一区二区三区产品免费精品久久75| 国产精品美女一区二区| 国产精品欧美一级免费| 欧美高清在线视频| 国产精品乱码久久久久久| 国产色综合一区| 国产欧美日韩三级| 国产精品国产三级国产普通话三级| 国产精品久久久久一区二区三区| 国产欧美一区二区在线| 国产欧美一区二区在线| 亚洲国产高清在线| 一区视频在线播放| 中文字幕一区视频| 一区二区三区欧美| 香蕉久久夜色精品国产使用方法| 日韩精品电影一区亚洲| 热久久久久久久| 国产麻豆精品一区二区| 国产99久久久久| 色悠悠久久综合| 欧美久久高跟鞋激| 精品成人一区二区三区| 久久久蜜桃精品| 亚洲视频在线一区二区| 亚洲一二三四在线| 青青草成人在线观看| 国产99久久久国产精品潘金网站| gogogo免费视频观看亚洲一| 欧美在线视频日韩| 日韩女优制服丝袜电影| 中文字幕第一区二区| 亚洲免费观看高清完整版在线观看 | 精品少妇一区二区三区日产乱码 | 一本色道a无线码一区v| 欧美日韩国产综合一区二区三区| 欧美videofree性高清杂交| 中文字幕精品一区| 水野朝阳av一区二区三区| 国产又黄又大久久| 91免费版在线| 日韩欧美国产精品| 国产精品麻豆欧美日韩ww| 午夜久久久久久久久| 国产一区二区视频在线| 欧美视频三区在线播放| 欧美精品一区二区三区很污很色的| 国产精品日产欧美久久久久| 日韩国产精品久久久| 高清久久久久久| 欧美久久久久久蜜桃| 国产精品欧美综合在线| 免费看黄色91| 日本精品裸体写真集在线观看 | 26uuu精品一区二区| 亚洲欧美日韩国产另类专区| 久久国产综合精品| 色哟哟精品一区| 国产亚洲精品福利| 午夜精品久久久久久久蜜桃app| 国产成人av自拍| 日韩一区二区中文字幕| 亚洲一卡二卡三卡四卡| 懂色av一区二区夜夜嗨| 日韩欧美视频在线| 一区二区三区四区亚洲| 国产高清精品久久久久| 日韩视频免费观看高清完整版在线观看| 国产精品女主播av| 国产在线精品免费| 欧美一区二区三区在线观看视频 | 亚洲成人免费观看| 成人av网在线| 国产三级欧美三级日产三级99 | 成人免费毛片片v| 日韩午夜在线影院| 亚洲宅男天堂在线观看无病毒| 国产不卡视频一区| 亚洲精品一区二区三区香蕉| 欧美a级一区二区| 欧美精选在线播放| 亚洲成人福利片| 欧美色男人天堂| 亚洲自拍偷拍图区| 色欧美片视频在线观看在线视频| 国产精品三级视频| 国产成人在线看| 精品成人一区二区三区| 久久97超碰色| 欧美变态tickling挠脚心| 三级欧美在线一区| 欧美日韩小视频| 午夜一区二区三区视频| 91国在线观看| 亚洲午夜日本在线观看| 色噜噜夜夜夜综合网| 一区二区三区在线视频免费| 91农村精品一区二区在线| 中文字幕中文乱码欧美一区二区 | ●精品国产综合乱码久久久久| 成人黄色综合网站| 国产精品久久久久婷婷二区次| 国产成人av电影在线播放| 久久网这里都是精品| 国产精品一区二区久激情瑜伽| 欧美激情综合五月色丁香| 国产成人精品免费在线| 中文字幕乱码日本亚洲一区二区| 成人av网址在线观看| 亚洲免费看黄网站| 欧美美女一区二区在线观看| 日本女人一区二区三区| 日韩一区二区三区精品视频| 久草精品在线观看| 国产农村妇女毛片精品久久麻豆| 91在线高清观看| 亚洲国产综合91精品麻豆| 91精品国产日韩91久久久久久| 久久av中文字幕片| 久久久777精品电影网影网 | 午夜欧美2019年伦理| 3d成人h动漫网站入口| 久久精品国产澳门| 国产欧美日本一区二区三区| 日本高清视频一区二区| 天堂一区二区在线| 久久婷婷综合激情| 91蜜桃在线观看| 免费一级片91|