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

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

?? escapeecanvas.java

?? 單屏手機游戲
?? JAVA
字號:
import java.util.Random;
import java.util.Vector;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.media.*;
import java.io.*;


class escapeeCanvas    extends GameCanvas    implements Runnable
{
    // shared direction constants
    static final int BULLETS_NUM = 50;
    static final int UP = 0;
    static final int LEFT = 1;
    static final int DOWN = 2;
    static final int RIGHT = 3;

    private TiledLayer background;
    private Escapee escapee;
    private Bullets bullets;
    private Sprite explosion;
    private int CanvasWidth = getWidth();
    private int CanvasHeight = getHeight();
    private Image image;
    private static final int MILLIS_PER_TICK = 50;
    private final escapeeMIDlet midlet;
    private boolean isGameOver = false;
    private boolean isCollidesWith = false;
    private int explosionCnt = 4;

    private final Graphics g;
    private long gameDuration = 0;
    private long startTime;
    private volatile Thread animationThread = null;
    


    escapeeCanvas(escapeeMIDlet midlet)
    {
        super(true);   // suppress key events for game keys
        this.midlet = midlet;
        setFullScreenMode(false);
        g = getGraphics();
        load();
        init();
    }


    public void keyPressed(int keyCode)
    {
        // The constructor suppresses key events for game keys, so we'll
        // only get key events for non-game keys. The number keys, * & #
        // have positive keyCodes, so negative keyCodes mean non-game
        // special keys like soft-keys. We'll use key-presses on special
        // keys to take us to the menu.
        if (keyCode < 0)
        {
            stop();
            midlet.GameCanvasMenu();
        }
    }


    private void load()
    {
      image = midlet.createImage("/back_water.png");
      int backColumns = CanvasWidth/image.getWidth()+1;
      int backRows = CanvasHeight/image.getHeight()+1;
      background = new TiledLayer(backColumns,backRows,image,image.getWidth(),image.getHeight());
      int x,y;
      for (int i = 0; i < backColumns*backRows; i++) 
      {
      x=i%backColumns;
      y=i/backColumns;
      background.setCell(x,y,1);
      }

     image = midlet.createImage("/Escapee.png");
     escapee = new Escapee(image,image.getWidth()/3,image.getHeight());

     escapee.setCanvasSize(CanvasWidth,CanvasHeight);
     
     image = midlet.createImage("/bullet.png");
     bullets = new Bullets(image,image.getWidth(),image.getHeight());
     bullets.setBulletsNum(BULLETS_NUM);
     bullets.setCanvasSize(CanvasWidth,CanvasHeight);
     
     image = midlet.createImage("/explosion.png");
     explosion = new Sprite(image,image.getWidth()/4,image.getHeight());
     
     image = midlet.createImage("/gameover.png");

    }
    public void init(){

     escapee.setPosition(CanvasWidth/2,CanvasHeight/2);
     bullets.initBullets();
     explosion.setVisible(false);
     explosion.setFrame(0);
     explosionCnt = 4;     
     isCollidesWith = false;
     isGameOver = false;
     gameDuration = 0;
     escapee.setAlive(true);
    }
    

    public synchronized void start()
    {
        animationThread = new Thread(this);
        animationThread.start();

        startTime = System.currentTimeMillis() - gameDuration;
    }


    public synchronized void stop()
    {
        gameDuration = System.currentTimeMillis() - startTime;
        animationThread = null;
    }


    public void run()
    {
        Thread currentThread = Thread.currentThread();

        try
        {
            // This ends when animationThread is set to null, or when
            // it is subsequently set to a new thread; either way, the
            // current thread should terminate
            while (currentThread == animationThread)
            {
                long startTime = System.currentTimeMillis();
                // Don't advance game or draw if canvas is covered by
                // a system screen.
                if (isShown())
                {
                    input();
                    tick();
                    draw();
                    
                }
                long timeTaken = System.currentTimeMillis() - startTime;
                if (timeTaken < MILLIS_PER_TICK)
                {
                    synchronized (this)
                    {
                        wait(MILLIS_PER_TICK - timeTaken);
                    }
                }
                else
                {
                    currentThread.yield();
                }
            }
        }
        catch (InterruptedException e)
        {
            // won't be thrown
        }
    }


    private void tick()
    {
        // If player presses two or more direction buttons, we ignore them
        // all. But pressing fire is independent. The code below also ignores
        // direction buttons if GAME_A..GAME_D are pressed.

        escapee.tick();
        if(!isCollidesWith)bullets.tick();
        if(isCollidesWith&&(explosionCnt!=0)){
        	
            explosion.setFrame((explosionCnt-1));
           
            explosionCnt--;
            if(explosionCnt == 0)isGameOver = true;
            

        }
         
        if(bullets.collidesWith(escapee)){
        
        isCollidesWith = true;
        escapee.setAlive(false);
        SoundEffects.getInstance().startBlastSound();
        explosion.setPosition(escapee.getRefPixelX()-explosion.getWidth()/2,
                              escapee.getRefPixelY()-explosion.getHeight()/2);
        explosion.setVisible(true);
        
        
        }
        if(isGameOver){
        long time = (System.currentTimeMillis() - startTime);
        midlet.GameCanvasGameOver(time,BULLETS_NUM);
        }
    }
    private void input() {
        // If player presses two or more direction buttons, we ignore them
        // all. But pressing fire is independent. The code below also ignores
        // direction buttons if GAME_A..GAME_D are pressed.
    int keyStates = getKeyStates();
    if(escapee.isAlive()){
    if ((keyStates & LEFT_PRESSED) != 0) escapee.move(LEFT);
    else if ((keyStates & RIGHT_PRESSED) != 0) escapee.move(RIGHT);
    else if ((keyStates & UP_PRESSED) != 0) escapee.move(UP);
    else if ((keyStates & DOWN_PRESSED) != 0) escapee.move(DOWN);
    }
    }

  


    void vibrate(int millis)
    {
        midlet.vibrate(millis);
    }

    
    // draw game
    private void draw()
    {
    	background.paint(g);
    	escapee.paint(g);
    	bullets.draw(g);
    	explosion.paint(g);
    	if(isCollidesWith&&!isGameOver)g.drawImage(image, 
    	                                           CanvasWidth/2,
    	                                           CanvasHeight/2,
    	                                           g.VCENTER|g.HCENTER);
    	 
    	flushGraphics();

    }
    



}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va韩国va欧美va精品| 欧美视频中文字幕| 国产精品一级黄| 精品一区二区精品| 久久99国产精品久久99| 色综合激情五月| 精品日韩在线一区| 91精品国产一区二区三区 | 538prom精品视频线放| 欧美精品一区二| 秋霞电影一区二区| 欧美在线一区二区三区| 中文字幕在线播放不卡一区| 老鸭窝一区二区久久精品| 欧美午夜免费电影| 一区二区三区精品久久久| 成人美女在线观看| 久久综合网色—综合色88| 美女高潮久久久| 日韩三区在线观看| 日韩制服丝袜av| 8v天堂国产在线一区二区| 亚洲va国产va欧美va观看| 欧美草草影院在线视频| 婷婷夜色潮精品综合在线| 在线精品视频一区二区三四| 亚洲精品视频在线看| www.久久精品| 一区二区三区四区在线| 在线看国产一区| 日日夜夜免费精品| 精品少妇一区二区三区日产乱码 | 欧美日韩中文一区| 亚洲一二三区不卡| 在线综合视频播放| 麻豆免费精品视频| 久久精品一区四区| 成人性色生活片| 亚洲丝袜制服诱惑| 欧美日韩激情在线| 青草av.久久免费一区| 日韩精品中文字幕一区二区三区| 青青草97国产精品免费观看无弹窗版| 欧美一卡二卡在线观看| 麻豆精品久久精品色综合| 日韩欧美久久一区| 丁香激情综合五月| 亚洲精品视频一区| 日韩欧美高清一区| 成人精品视频一区| 午夜在线电影亚洲一区| 日韩午夜小视频| proumb性欧美在线观看| 亚洲国产精品一区二区久久| 日韩精品一区二区三区在线观看 | 国产精品福利在线播放| 在线观看亚洲专区| 免费av成人在线| 国产精品久久久久久久久免费樱桃| 一本一本大道香蕉久在线精品| 性做久久久久久免费观看| 精品久久久影院| 一本到高清视频免费精品| 日本一不卡视频| 国产精品久久久久久妇女6080| 欧美伊人久久大香线蕉综合69| 人人狠狠综合久久亚洲| 一色桃子久久精品亚洲| 91精品国产福利| 成人深夜在线观看| 免费不卡在线视频| 亚洲欧洲综合另类| 久久亚洲精品小早川怜子| 色婷婷av一区二区三区软件| 久久激情综合网| 一区二区三区国产豹纹内裤在线 | 日韩欧美色综合网站| av网站免费线看精品| 免费在线观看一区| 亚洲国产一区二区视频| 日韩在线观看一区二区| 亚洲欧洲日韩综合一区二区| 精品免费国产一区二区三区四区| 色综合久久天天| 欧美日韩一区二区三区免费看| 欧美不卡视频一区| 激情久久久久久久久久久久久久久久| 精品国产凹凸成av人网站| 三级欧美韩日大片在线看| 欧美伊人久久大香线蕉综合69| 欧美国产综合一区二区| 亚洲色图一区二区三区| 国产乱子伦一区二区三区国色天香| 国产欧美1区2区3区| www.在线成人| 看电视剧不卡顿的网站| 亚洲另类在线一区| 26uuu亚洲综合色| 制服丝袜亚洲网站| 在线这里只有精品| 91丨porny丨在线| 国产成人精品亚洲日本在线桃色 | 欧美一区日韩一区| 欧美性色黄大片| 欧美高清视频一二三区 | 欧美亚洲日本国产| 国产精品自拍av| 美脚の诱脚舐め脚责91| 亚洲欧美日韩精品久久久久| 久久久久国产免费免费 | 久久久久99精品一区| 久久综合色播五月| 日韩一区二区三区四区五区六区| 欧美乱妇20p| 欧美激情中文字幕一区二区| 久久99深爱久久99精品| 免费三级欧美电影| 久久99最新地址| 成人激情动漫在线观看| 成人污视频在线观看| 国产成人精品免费一区二区| 激情欧美一区二区| 97精品超碰一区二区三区| 91免费看视频| 欧美videos中文字幕| 国产欧美日韩中文久久| 国产精品久线观看视频| 中文字幕一区日韩精品欧美| 亚洲一区二区三区在线| 久久er精品视频| 成人永久看片免费视频天堂| 丁香婷婷综合色啪| 国产福利一区二区三区| 欧美视频完全免费看| 久久久综合视频| 日韩av一区二区三区| 国产99久久久国产精品潘金网站| 色欧美88888久久久久久影院| 欧美一区二区视频观看视频 | 精品视频色一区| 亚洲欧洲av一区二区三区久久| 国产偷国产偷精品高清尤物| 337p粉嫩大胆色噜噜噜噜亚洲| 中文字幕av一区二区三区免费看| 日韩精品亚洲一区| 欧洲一区在线电影| 午夜激情久久久| 欧美伊人久久久久久久久影院| 国产日韩欧美不卡| 国产精品综合二区| 精品福利在线导航| 粉嫩aⅴ一区二区三区四区五区| 色婷婷综合久久| 欧美日本一区二区三区| 国产精品第13页| 国产乱理伦片在线观看夜一区| 欧美亚洲国产一区在线观看网站| 国产精品视频观看| 99精品欧美一区| 日韩精品乱码免费| 日韩三级中文字幕| 不卡电影一区二区三区| 自拍偷自拍亚洲精品播放| 欧美在线播放高清精品| 一区二区三区高清不卡| 91精品黄色片免费大全| 国产毛片精品视频| 欧美国产欧美亚州国产日韩mv天天看完整| 日本精品一级二级| 亚洲国产欧美一区二区三区丁香婷| 国产高清不卡一区| 亚洲欧美日韩中文播放| 欧美色综合天天久久综合精品| 久久99精品国产.久久久久 | 97se亚洲国产综合在线| 亚洲不卡av一区二区三区| 成人三级伦理片| 一区二区中文字幕在线| 成人三级伦理片| 另类成人小视频在线| 国产精品毛片高清在线完整版| 91小视频免费看| 久久精品噜噜噜成人88aⅴ| 国产欧美日韩视频一区二区| 精品国产99国产精品| 精品美女一区二区| 精品国产91久久久久久久妲己| 欧美成人video| 国产精品久久久久aaaa樱花 | 国产片一区二区| 91日韩在线专区| 欧美乱妇一区二区三区不卡视频| 欧美日韩精品欧美日韩精品一综合| 欧美日韩大陆一区二区| 精品国产91乱码一区二区三区| 国产精品亲子乱子伦xxxx裸| 亚洲黄色尤物视频| 国内外成人在线视频| 99精品桃花视频在线观看| 欧美男同性恋视频网站|