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

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

?? wcanvas.java

?? 塞迪網(wǎng)校J2ME移動應用開發(fā)教程的所有源代碼.
?? JAVA
字號:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
import java.io.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;

public class WCanvas extends GameCanvas implements Runnable {
  private Display      display;
  private boolean      sleeping;
  private long         frameDelay;
  private int          inputDelay;
  private LayerManager layers;
  private int          xView, yView;
  private TiledLayer   backgroundLayer;
  private TiledLayer   barrierLayer;
  private int          waterDelay, waterTile;
  private Sprite       personSprite;
  private Player       musicPlayer;

  public WCanvas(Display d) {
    super(true);
    display = d;

    // Set the frame rate (30 fps)
    frameDelay = 33;

    // Clear the input delay
    inputDelay = 0;
  }
  
  public void start() {
    // Set the canvas as the current screen
    display.setCurrent(this);

    // Create the background and barrier tiled layers
    try {
      backgroundLayer = new TiledLayer(16, 16, Image.createImage("/Background.png"), 48, 48);
      barrierLayer = new TiledLayer(16, 16, Image.createImage("/Barrier.png"), 48, 48);
    }
    catch (IOException e) {
      System.err.println("Failed loading images!");
    }

    // Setup the background tiled layer map
    int[] backgroundMap = {
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
      0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
      0,  2,  2,  2,  2,  5, 15, 15, 15, 15, 15, 15,  6,  2,  2,  0,
      0,  2,  2,  2,  2,  7, 10,  1,  1,  1,  1,  1, 16,  2,  2,  0,
      0,  2,  2,  2,  2,  2, 14,  1,  1,  1,  1,  1, 16,  2,  2,  0,
      0,  2,  2,  2,  2,  2,  7, 10,  1,  1,  1,  1, 16,  2,  2,  0,
      0,  2,  2,  2,  2,  2,  2, 14,  1,  1,  1,  1, 16,  2,  2,  0,
      0,  2,  2,  2,  2,  2,  2, 14,  1,  9, 10,  1, 16,  2,  2,  0,
      0,  2,  2,  5, 15,  6,  2, 14,  1, 11, 12,  1, 16,  2,  2,  0,
      0,  2,  2, 14,  1, 16,  2,  7, 13, 13, 13, 13,  8,  2,  2,  0,
      0,  2,  2,  7, 13,  8,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
      0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
      0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    };
    for (int i = 0; i < backgroundMap.length; i++) {
      int column = i % 16;
      int row = (i - column) / 16;
      backgroundLayer.setCell(column, row, backgroundMap[i]);
    }

    // Setup the barrier tiled layer map
    barrierLayer.createAnimatedTile(1);
    int[] barrierMap = {
     -1, -1,  1, -1, -1,  1, -1,  1, -1, -1,  1,  1, -1,  1, -1,  1,
     -1, -1, -1,  1,  1, -1,  1, -1,  1,  1, -1,  1, -1, -1,  1, -1,
      1, 21, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 22,  1,
      1, 18,  0,  5,  5,  5,  5,  8,  0,  0,  8,  0,  0,  0, 20, -1,
      1, 18,  0,  0,  0,  0,  0,  0,  0, 16,  8,  0,  0,  0, 20,  1,
     -1, 18,  7,  7,  7, 11,  7,  8,  0,  0, 10,  5,  0,  0, 20, -1,
      1, 18,  0, 11,  0,  0, 11,  7,  7, 12,  0,  0,  0,  0, 20, -1,
     -1, 18,  0,  7,  7,  7,  0, 11, 12,  8,  0,  0,  0,  0, 20,  1,
      1, 18,  0, 11, 12,  0, 15, 10,  0,  8,  0,  0,  0,  0, 20,  1,
      1, 18,  0,  0, 13,  0, 10,  5,  5,  9,  0,  0,  0,  0, 20, -1,
     -1, 18,  7, 10,  5,  9,  0,  0,  0,  0,  0,  0,  0,  0, 20,  1,
     -1, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20, -1,
      1, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20,  1,
      1, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20,  1,
     -1, 23, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 24, -1,
     -1, -1,  1, -1,  1, -1,  1,  1,  1, -1,  1, -1, -1,  1,  1, -1
    };
    for (int i = 0; i < barrierMap.length; i++) {
      int column = i % 16;
      int row = (i - column) / 16;
      barrierLayer.setCell(column, row, barrierMap[i]);
    }

    // Initialize the animated water delay and tile
    waterDelay = 0;
    waterTile = 1;

    // Initialize the person sprite
    try {
      personSprite = new Sprite(Image.createImage("/Person.png"), 20, 24);
    }
    catch (IOException e) {
      System.err.println("Failed loading images!");
    }

    // Create the layer manager
    layers = new LayerManager();
    layers.append(personSprite);
    layers.append(barrierLayer);
    layers.append(backgroundLayer);
    xView = (backgroundLayer.getWidth() - getWidth()) / 2;
    yView = (backgroundLayer.getHeight() - getHeight()) / 2;
    layers.setViewWindow(xView, yView, getWidth(), getHeight());
    personSprite.setPosition(xView + (getWidth() - personSprite.getWidth()) / 2,
      yView + (getHeight() - personSprite.getHeight()) / 2);

    // Initialize and start the music player
    try {
      InputStream is = getClass().getResourceAsStream("Music.mid");
      musicPlayer = Manager.createPlayer(is, "audio/midi");
      musicPlayer.prefetch();
      musicPlayer.setLoopCount(-1);
      musicPlayer.start();
    }
    catch (IOException ioe) {
    }
    catch (MediaException me) {
    }

    // Start the animation thread
    sleeping = false;
    Thread t = new Thread(this);
    t.start();
  }
  
  public void stop() {
    // Close the music player
    musicPlayer.close();

    // Stop the animation
    sleeping = true;
  }
  
  public void run() {
    Graphics g = getGraphics();
    
    // The main game loop
    while (!sleeping) {
      update();
      draw(g);
      try {
        Thread.sleep(frameDelay);
      }
      catch (InterruptedException ie) {}
    }
  }

  private void update() {
    // Process user input to move the background layer and animate the person
    if (++inputDelay > 2) {
      int keyState = getKeyStates();
      int xMove = 0, yMove = 0;
      if ((keyState & LEFT_PRESSED) != 0)
        xMove = -12;
      else if ((keyState & RIGHT_PRESSED) != 0)
        xMove = 12;
      if ((keyState & UP_PRESSED) != 0)
        yMove = -12;
      else if ((keyState & DOWN_PRESSED) != 0)
        yMove = 12;
      if (xMove != 0 || yMove != 0) {
        layers.setViewWindow(xView + xMove, yView + yMove, getWidth(), getHeight());
        personSprite.move(xMove, yMove);
        personSprite.nextFrame();
      }

      // Check for a collision with the person and the barrier tiled layer
      if (personSprite.collidesWith(barrierLayer, true)) {
        // Play a collision sound
        try {
          Manager.playTone(ToneControl.C4 + 12, 100, 100);
        }
        catch (Exception e) {
        }

        // Restore the original view window and person sprite positions
        layers.setViewWindow(xView, yView, getWidth(), getHeight());
        personSprite.move(-xMove, -yMove);
      }
      else {
        // If there is no collision, commit the changes to the view window position
        xView += xMove;
        yView += yMove;
      }

      // Update the animated water tiles
      if (++waterDelay > 2) {
        if (++waterTile > 4)
          waterTile = 1;
        barrierLayer.setAnimatedTile(-1, waterTile);
        waterDelay = 0;
      }

      // Reset the input delay
      inputDelay = 0;
    }
  }

  private void draw(Graphics g) {
    // Draw the layers
    layers.paint(g, 0, 0);
    
    // Flush the offscreen graphics buffer
    flushGraphics();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内不卡的二区三区中文字幕| 亚洲精品水蜜桃| 4438x亚洲最大成人网| 在线观看国产精品网站| 色综合久久九月婷婷色综合| k8久久久一区二区三区| 成人黄页毛片网站| 91在线视频播放地址| 国产成人亚洲综合a∨婷婷图片| 激情六月婷婷久久| 国产.精品.日韩.另类.中文.在线.播放| 久久成人麻豆午夜电影| 国产一区二区视频在线| 福利一区福利二区| 91视频国产观看| 欧美亚洲一区二区在线| 欧美一级搡bbbb搡bbbb| 久久久影院官网| 亚洲少妇中出一区| 亚洲高清视频的网址| 精品一区二区三区在线视频| 国产精品小仙女| 91久久精品国产91性色tv| 7777精品伊人久久久大香线蕉完整版| 日韩欧美国产高清| 久久久久久久综合狠狠综合| 中文字幕一区二区三区在线不卡 | 一卡二卡三卡日韩欧美| 亚洲一区二区av在线| 国内外精品视频| 一本大道久久a久久精品综合| 欧美精选在线播放| 欧美激情一区二区三区蜜桃视频| 一区二区三区资源| 老鸭窝一区二区久久精品| 91在线你懂得| 欧美mv和日韩mv国产网站| 亚洲精品国产精品乱码不99| 免费高清在线一区| 色婷婷久久综合| 日韩欧美一区二区视频| 亚洲美女精品一区| 国产精品影视天天线| 欧美日韩不卡一区二区| 国产精品久久久久久久久免费樱桃 | 欧美色视频在线观看| 久久综合色鬼综合色| 亚洲国产一区二区三区青草影视| 国产一区二区三区免费| 欧美日韩精品免费观看视频| 国产欧美日产一区| 免费av成人在线| 在线观看av一区| 国产精品亲子伦对白| 久久99最新地址| 欧美一区二区三区视频免费| 亚洲影院理伦片| 99久久er热在这里只有精品66| 亚洲精品在线网站| 免费成人在线观看| 欧美肥妇毛茸茸| 亚洲va韩国va欧美va| 91丝袜高跟美女视频| 国产午夜精品一区二区三区嫩草| 美女视频一区在线观看| 欧美乱熟臀69xxxxxx| 亚洲综合久久av| 色噜噜狠狠成人网p站| 亚洲丝袜另类动漫二区| 成人性视频免费网站| 中文字幕av不卡| 国产成人在线免费观看| 久久看人人爽人人| 福利一区在线观看| 亚洲国产精品成人久久综合一区 | 亚洲色欲色欲www| youjizz久久| 国产精品乱码一区二区三区软件 | 欧美年轻男男videosbes| 亚洲一区在线观看免费| 在线观看免费一区| 亚洲国产欧美在线人成| 欧美人狂配大交3d怪物一区| 日韩高清不卡一区二区三区| 日韩一区二区三区三四区视频在线观看| 亚洲成人av一区| 欧美精三区欧美精三区| 裸体歌舞表演一区二区| 久久久噜噜噜久久人人看| 成人三级在线视频| 一区二区视频在线| 欧美一二三四区在线| 国产乱子轮精品视频| 国产精品国产三级国产普通话三级| www..com久久爱| 亚洲成人av免费| 欧美成人三级在线| 成人午夜电影网站| 亚洲欧美韩国综合色| 欧美日韩夫妻久久| 国产精品911| 一区二区三区在线免费| 91精品国产福利| 国产激情精品久久久第一区二区| 国产精品―色哟哟| 在线电影欧美成精品| 国产一区二区视频在线| 一区二区三区欧美日| 精品不卡在线视频| 91丝袜美腿高跟国产极品老师| 日韩激情一区二区| 欧美国产成人精品| 欧美一区二区三区在线看| 粉嫩嫩av羞羞动漫久久久| 亚洲国产日韩av| 国产精品无码永久免费888| 6080日韩午夜伦伦午夜伦| 国产亚洲1区2区3区| 亚洲自拍偷拍九九九| 欧美日韩1区2区| 成人小视频免费在线观看| 午夜不卡av在线| 国产欧美日韩麻豆91| 欧美精品三级日韩久久| 成人性生交大片免费看中文| 天天色综合成人网| 亚洲色欲色欲www| 国产亚洲福利社区一区| 91精品中文字幕一区二区三区| 99久久精品情趣| 国产一区二区调教| 日本午夜精品一区二区三区电影 | 91麻豆精品国产91久久久更新时间| 成人精品在线视频观看| 麻豆成人久久精品二区三区红| 一区二区三区美女视频| 国产精品二区一区二区aⅴ污介绍| 正在播放亚洲一区| 欧美视频一区在线| 一本久道中文字幕精品亚洲嫩| 懂色av中文字幕一区二区三区| 久久99热这里只有精品| 蜜臀久久99精品久久久画质超高清| 亚洲精品精品亚洲| 亚洲乱码国产乱码精品精小说| 国产精品网站在线观看| 国产日韩视频一区二区三区| 日韩一级高清毛片| 欧美电视剧免费观看| 91精品国产色综合久久| 欧美一级黄色录像| 欧美一区二区在线观看| 日韩视频一区二区三区| 91麻豆精品国产91| 欧美电影免费观看高清完整版在线观看 | 国产精品另类一区| 国产精品久久夜| **网站欧美大片在线观看| 亚洲色图丝袜美腿| 一区二区三区国产豹纹内裤在线| 一区二区三区日韩精品视频| 亚洲国产成人高清精品| 日韩精品五月天| 国产综合色精品一区二区三区| 国产精品亚洲第一| 成人av电影免费观看| 91美女片黄在线观看| 欧美日韩精品专区| 精品国产乱码久久| 国产女人18毛片水真多成人如厕 | 欧美专区亚洲专区| 欧美一级在线视频| 久久这里只精品最新地址| 国产女同互慰高潮91漫画| 亚洲欧美日韩久久| 天涯成人国产亚洲精品一区av| 天天综合色天天综合| 狠狠色丁香久久婷婷综合_中| 国产成人高清视频| 色婷婷av一区二区三区之一色屋| 欧美亚洲尤物久久| 欧美精品一区二区三区蜜臀 | 亚洲一区二区成人在线观看| 奇米影视在线99精品| 国产成人精品免费网站| 欧美曰成人黄网| 26uuu精品一区二区在线观看| 1024成人网色www| 免费亚洲电影在线| 91视频免费播放| 欧美v日韩v国产v| 亚洲美女视频在线观看| 韩国毛片一区二区三区| 色老汉一区二区三区| 国产亚洲视频系列| 亚洲国产日韩av| 99精品久久免费看蜜臀剧情介绍 | 国内精品在线播放| 91传媒视频在线播放| 久久蜜臀精品av|