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

📄 canvasflowers.java

📁 吃人花的小游戏源代码。。做的还不够好。。多多指教
💻 JAVA
字号:
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.TiledLayer;


public class CanvasFlowers extends GameCanvas implements Runnable{

	private Graphics g;
	public TiledLayer layer_back, layer_hua, layer_mogu;
	private LayerManager layermanager;
	public int columns, rows, d;
	
	private Player player;
	private Apple apple;
	private Flowers chirenflowers;
	
	protected CanvasFlowers(boolean arg0) {
		super(arg0);

		player = new Player();
		apple = new Apple();
		chirenflowers = new Flowers();
		g = this.getGraphics();
		columns = 17;
		rows = 12;
		d = 16;
		
		layer_back = new TiledLayer(columns, rows, ImageAll.img_back, d, d);
		for(int i = 0; i < rows; i++){
			for(int j = 0; j < columns; j++){
				layer_back.setCell(j, i, Map.map_back[i][j]);
			}
		}
		
		layer_hua = new TiledLayer(columns, rows, ImageAll.img_huachao, d, d);
		for(int i = 0; i < rows; i++){
			for(int j = 0; j < columns; j++){
				layer_hua.setCell(j, i, Map.map_hua[i][j]);
			}
		}
		
		layer_mogu = new TiledLayer(columns, rows, ImageAll.img_huachao, d, d);
		for(int i = 0; i < rows; i++){
			for(int j = 0; j < columns; j++){
				layer_mogu.setCell(j, i, Map.map_mogu[i][j]);
			}
		}
		
		layermanager = new LayerManager();
		layermanager.append(layer_back);
		layermanager.append(layer_hua);
		layermanager.append(layer_mogu);
		
		player.setPosition(32, 80);
		layermanager.append(player);
		
		apple.setPosition(172, 112);
		layermanager.append(apple);
		
		chirenflowers.setPosition(128, 96);
		layermanager.append(chirenflowers);
		
		new Thread(this).start();
	}
	
	public void goP()
	{
		int k = this.getKeyStates();
		if((k&this.UP_PRESSED) != 0){
			player.moveP(0);
			player.stopPlayer(layer_back, chirenflowers);
			if(player.collidesWith(layer_hua, false))
				eatUpHua();
			tuiApple(0);
		}
		if((k&this.DOWN_PRESSED) != 0){
			player.moveP(1);
			player.stopPlayer(layer_back, chirenflowers);
			if(player.collidesWith(layer_hua, false))
				eatDownHua();
			tuiApple(1);
		}
		if((k&this.LEFT_PRESSED) != 0){
			player.moveP(2);
			player.stopPlayer(layer_back, chirenflowers);
			if(player.collidesWith(layer_hua, false))
				eatLiftHua();
			tuiApple(2);
		}
		if((k&this.RIGHT_PRESSED) != 0){
			player.moveP(3);
			player.stopPlayer(layer_back, chirenflowers);
			if(player.collidesWith(layer_hua, false))
				eatRightHua();
			tuiApple(3);
		}
		chirenflowers.kaiHuaZhenTing(player);
		chirenflowers.chiRenZhenTing(player);
	}

	
	public void clearThis()//清屏幕
	{
		g.setColor(0xffffff);
		g.fillRect(0, 0, this.getWidth(), this.getHeight());
	}

	public void run() {//线程
		while(true)
		{
			clearThis();
			goP();
			chirenflowers.kaiHua();
			chirenflowers.chiRen();
			chiRen();
			layermanager.paint(g, 0, 0);
			this.flushGraphics();
			try {
				Thread.sleep(50);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	public void chiRen()
	{
		if(chirenflowers.getIsChiRen() == true)
			player.setPosition(-50, -50);
	}
	
	
	//推苹果
	public void tuiApple(int i)
	{
		if(player.collidesWith(apple, false))
			apple.moveApple(i);
		if(apple.collidesWith(layer_back, false) || apple.collidesWith(layer_hua, false) || apple.collidesWith(chirenflowers, false)){
			apple.stopApple(i);
			player.moveStop();
		}
	}
	
	//向上吃花
	public void eatUpHua()
	{
		int px = player.getX();
		int py = player.getY();
		int hx = px/16;
		int hy = py/16;
		layer_hua.setCell(hx, hy, 0);
	}
	
//	向下吃花
	public void eatDownHua()
	{
		int px = player.getX();
		int py = player.getY();
		int hx = px/16;
		int hy = py/16 + 1;
		layer_hua.setCell(hx, hy, 0);
	}
	
//	向左吃花
	public void eatLiftHua()
	{
		int px = player.getX();
		int py = player.getY();
		int hx = px/16;
		int hy = py/16;
		layer_hua.setCell(hx, hy, 0);
	}
	
//	向右吃花
	public void eatRightHua()
	{
		int px = player.getX();
		int py = player.getY();
		int hx = px/16 + 1;
		int hy = py/16;
		layer_hua.setCell(hx, hy, 0);
	}
}

⌨️ 快捷键说明

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