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

📄 mytiledlayer.java

📁 J2ME的源码!我以前学习J2ME的源码哈!非常适合初学者
💻 JAVA
字号:
package tiledLayer;

import java.io.IOException;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;

public class MyTiledLayer extends GameCanvas implements Runnable {

	// private int[][] map = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 11
	// }, { -1, -1, -1, -1 } };

	private Graphics g;

	private Sprite sprite;

	private TiledLayer background;

	private final static int column = 10;

	private final static int row = 10;

	private int y;

	private int x;

	private int screenWidth;

	private static final int SPRITE_WIDTH = 130;

	private static final int SPRITE_HEIGHT = 203;

	private static final int TILE_CELL_WIDTH = 24;

	private static final int TILE_CELL_HEIGHT = 32;

	protected MyTiledLayer(boolean suppressKeyEvents) {
		super(suppressKeyEvents);
		init();
		initSprite();
		initBackground();
		startThread();
	}

	private void startThread() {
		Thread thread = new Thread(this);
		thread.start();
	}

	private void initBackground() {
		Image img = null;
		try {
			img = Image.createImage("/sprite/bg.png");
		} catch (IOException e) {
			e.printStackTrace();
		}
		background = new TiledLayer(column, row, img, TILE_CELL_WIDTH, TILE_CELL_HEIGHT);
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < column; j++) {
				background.setCell(j, i, 1);
			}
		}
	}

	private void initSprite() {
		Image image = null;
		try {
			image = Image.createImage("/sprite/kid.png");
		} catch (IOException e) {
			e.printStackTrace();
		}
		sprite = new Sprite(image, SPRITE_WIDTH, SPRITE_HEIGHT);
		sprite.setPosition(x, y);
	}

	private void init() {
		g = getGraphics();
		x = screenWidth;
		y = getHeight() - SPRITE_HEIGHT - 10;
		screenWidth = getWidth();
	}

	public void run() {
		while (true) {
			draw();
			sleep();
			move();
		}
	}

	private void draw() {
		background.paint(g);
		sprite.paint(g);
		flushGraphics();
	}

	private void move() {
		if (x > -1 * SPRITE_WIDTH) {
			x -= screenWidth / 5;
		} else {
			x = screenWidth;
		}
		sprite.setPosition(x, y);
		sprite.nextFrame();
	}

	private void sleep() {
		try {
			Thread.sleep(500);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

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