⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mygamecanvas.java

📁 这是一个关于Java 2 Mobile Edition 手机游戏开发的部分源码,我觉得还不错,所以就上传了.
💻 JAVA
字号:
package untitled4;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;

public class MyGameCanvas extends GameCanvas implements Runnable {

  private Image backgd , house ;
  private LayerManager layers;
  private TiledLayer tiles;
  private Sprite sprite;
  private int xd,yd;
  private Thread thread;

  public MyGameCanvas() {
    super(true);
    layers = new LayerManager();
    setupTheme();
    xd = getWidth()/2;
    yd = getHeight();
  }

  private void setupTheme() {
    try {
      backgd = Image.createImage("/untitled4/desert_02.png");
      house = Image.createImage("/untitled4/Animal59.png");

      sprite = new Sprite(house,24,32);
      sprite.setFrame(1);     //显示第二针
      layers.append(sprite);
      sprite.move(getWidth()/2,getHeight()-32);   //把sprite放置到屏幕的最底层的中央
      tiles = new TiledLayer(50, 10, backgd, 80, 80);
      //填充一些背景图
      tiles.fillCells(0,0,9,7,3);
      //随机设置场景
      tiles.setCell(0,0,5);

      layers.append(tiles);
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }


  public void run() {
    Graphics g = getGraphics();
    while (true) {
      int keyState = getKeyStates();
      updateSprite(keyState);
      layers.paint(g,0,0);   //从坐标(0,0)开始显示各个图层
      flushGraphics();
      try {
        thread.sleep(20);
      }
      catch(Exception e) { e.printStackTrace(); }
    }
  }

  protected void showNotify() {
         thread = new Thread(this);   //创建指向自己的线程,常常建立一个单独的线层用于游戏过程的循环(马儿不断的跑)
         thread.start();              //启动线程
      }

  private void updateSprite(int keyState) {
    if ((keyState & UP_PRESSED) != 0) {
      sprite.setFrame(1);
      sprite.move(0,-5);
      yd-=5;
    }
    if ((keyState & DOWN_PRESSED) != 0) {
      sprite.setFrame(1);
      sprite.move(0,5);
      yd+=5;
    }
    if ((keyState & LEFT_PRESSED) != 0) {
      sprite.setFrame(10);
      sprite.move(-5,0);
      xd-=5;
    }
    if ((keyState & RIGHT_PRESSED) != 0) {
      sprite.setFrame(4);
      sprite.move(5,0);
      xd+=5;
    }

  }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -