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

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

?? maincanvas.java

?? 太空大戰J2ME版本
?? JAVA
字號:
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>
 *狀態:完成(待改進,以后吧)
 * 日期: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; //敵機子彈數量

     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一区二区三区免费野_久草精品视频
亚洲精品欧美二区三区中文字幕| 理论电影国产精品| 亚洲国产成人va在线观看天堂| 久久精品久久综合| 在线观看日韩高清av| 精品对白一区国产伦| 亚洲黄一区二区三区| 国产精品一品二品| 日韩一级片在线观看| 亚洲精品欧美综合四区| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 亚洲精品久久久蜜桃| 精品一区二区在线视频| 欧美三级中文字幕在线观看| 国产精品久久久久久久久图文区 | 国产精品久久久久一区 | 亚洲色图一区二区| 国产美女久久久久| 日韩小视频在线观看专区| 亚洲免费观看高清| 91麻豆免费看片| 国产色一区二区| 国产一区二区日韩精品| 日韩小视频在线观看专区| 亚洲大片一区二区三区| 色乱码一区二区三区88| 最新不卡av在线| 99精品国产视频| 亚洲欧洲av一区二区三区久久| 国产成人高清视频| 久久久久青草大香线综合精品| 久久超级碰视频| 精品国产免费一区二区三区四区| 日本va欧美va精品发布| 欧美蜜桃一区二区三区| 天堂一区二区在线| 5566中文字幕一区二区电影| 日本大胆欧美人术艺术动态| 欧美一区二区视频网站| 欧美aaaaaa午夜精品| 日韩女优电影在线观看| 国产一区亚洲一区| 国产欧美日韩一区二区三区在线观看| 国产在线不卡一区| 中文一区在线播放| 色婷婷一区二区| 亚洲一区自拍偷拍| 91精品在线观看入口| 老鸭窝一区二区久久精品| 久久伊99综合婷婷久久伊| 国产成人免费xxxxxxxx| 亚洲免费观看高清| 欧美一区午夜精品| 国产剧情在线观看一区二区| 欧美极品美女视频| 欧美亚洲图片小说| 久久精品国产**网站演员| 国产清纯白嫩初高生在线观看91 | 色综合欧美在线| 性做久久久久久久免费看| 777久久久精品| 国产成人精品综合在线观看| 亚洲精品午夜久久久| 日韩欧美成人激情| 99久久久无码国产精品| 日本成人在线网站| 国产精品久久久久影院色老大| 91福利资源站| 久久99热这里只有精品| 亚洲色图在线视频| 精品国产欧美一区二区| 在线亚洲欧美专区二区| 免费在线欧美视频| 亚洲视频免费观看| 欧美一区日韩一区| 91麻豆免费在线观看| 久久国产生活片100| 亚洲欧美日韩电影| 亚洲精品一区二区三区影院 | 夜夜精品视频一区二区| 精品国免费一区二区三区| 99久久久无码国产精品| 日本aⅴ精品一区二区三区| 国产欧美一区二区精品秋霞影院| 欧美三级三级三级爽爽爽| 国产成人综合网| 三级欧美韩日大片在线看| 国产色产综合产在线视频| 欧美精品亚洲二区| 91美女视频网站| 国产高清精品网站| 久久精品国产99久久6| 亚洲不卡在线观看| 亚洲乱码中文字幕| 国产女同性恋一区二区| 精品国产精品网麻豆系列| 欧美日韩国产色站一区二区三区| 成人国产免费视频| 高清在线成人网| 久久 天天综合| 免费观看久久久4p| 日韩在线一区二区三区| 一区二区理论电影在线观看| 国产欧美日韩视频一区二区| 精品999久久久| 日韩美女天天操| 日韩欧美一区二区三区在线| 911国产精品| 欧美精品丝袜中出| 欧美日韩一级片在线观看| 在线视频一区二区三区| 色悠悠亚洲一区二区| 色综合久久中文综合久久牛| 成人美女视频在线看| 成人动漫一区二区在线| 国产成人鲁色资源国产91色综| 国产精品一二一区| 成人av在线资源| 成人爱爱电影网址| 91在线视频网址| 91免费看`日韩一区二区| 91在线精品一区二区| 色婷婷综合久久久久中文一区二区| 91视频精品在这里| 欧美偷拍一区二区| 在线观看91精品国产麻豆| 欧美高清性hdvideosex| 欧美一区二区三区不卡| 欧美一区二区不卡视频| 欧美mv日韩mv国产网站app| 精品久久久久久久久久久院品网 | 国产精品青草久久| 亚洲人成在线观看一区二区| 亚洲精品欧美综合四区| 视频一区二区三区在线| 国产一区二区在线免费观看| 成年人网站91| 欧美性受xxxx| 91精品国产黑色紧身裤美女| 欧美mv和日韩mv国产网站| 国产精品乱码妇女bbbb| 亚洲一区视频在线观看视频| 视频一区二区国产| 成人午夜在线视频| 欧美日韩精品一区二区三区蜜桃 | 欧美一区二区在线免费播放| 久久久精品天堂| 亚洲另类在线视频| 午夜久久久久久久久| 国产iv一区二区三区| 欧美中文字幕一区二区三区亚洲| 欧美一区午夜视频在线观看| 国产精品乱人伦| 日本视频中文字幕一区二区三区| 国产在线国偷精品产拍免费yy | 亚洲最大成人网4388xx| 久久精品99国产精品日本| 91丨九色丨国产丨porny| 在线播放日韩导航| 国产精品国产a级| 男人操女人的视频在线观看欧美| 成人精品小蝌蚪| 日韩欧美一卡二卡| 亚洲欧美日韩一区| 久久99久久久久| 91浏览器在线视频| wwwwww.欧美系列| 亚洲成a人片在线不卡一二三区 | 久久精品一级爱片| 亚洲第一福利视频在线| 不卡高清视频专区| 精品国产一区二区三区忘忧草| 亚洲卡通动漫在线| 国产激情视频一区二区三区欧美 | 99re热这里只有精品免费视频| 日韩久久精品一区| 亚洲国产另类av| 91在线视频免费观看| 国产三级三级三级精品8ⅰ区| 日韩精品成人一区二区三区| 一本到不卡免费一区二区| 中文字幕精品综合| 国产伦精品一区二区三区在线观看| 欧美精品一二三四| 亚洲小少妇裸体bbw| 91免费国产在线观看| 成人欧美一区二区三区1314| 国产精品综合网| 精品噜噜噜噜久久久久久久久试看| 亚洲成av人影院| 欧美日韩一级片网站| 亚洲黄色尤物视频| 91美女片黄在线观看| 亚洲欧美日韩在线| 一本一本久久a久久精品综合麻豆| 久久精品欧美日韩精品| 狠狠色2019综合网| 久久久久久久久久看片| 国产精品系列在线播放| 久久色在线观看|