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

📄 gamemap.java

📁 最近弄的一个跨栏小游戏
💻 JAVA
字号:
import java.io.IOException;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;


public class GameMap {

	static final int runwayWidth = 22;   //跑道宽
	
	private static final int posmsg[][] = {
		// 栏
		{47,0,35,43},   //立
		{0,5,47,38},    //倒
		// 跑道
		{42,66,38,8},   //边
		{83,31,25,22},  //中
		{83,9,25,22},   //边线 
		// 助跑器
		{83,0,27,9},
		// 观众
		{110,29,18,17},
		// 围栏
		{83,68,24,8},
		// 云
		{83,58,23,9}
	};
	
	private int map[][] = {
			{3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3},
			{3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3},
			{3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3},
			{3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3}
	};
	
	private int block[][] = {
			{-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1},
			{-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1},
			{-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1},
			{-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1}
	};
	
	public GameMap(){
		try {
			if(img==null)
			    img = Image.createImage("/map.png");
			if(back==null)
				back = Image.createImage("/back.png");
			if(bar==null)
				bar = Image.createImage("/UiBg.png");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void draw(Graphics g,int start){
		drawRunWay(g,start);
		drawBlock(g,start);
	}
	
	// 绘制远景
	public void drawBackground(Graphics g) {
		int t = 0;
		// 天
		for(int i=0; i<3; i++){
			t = i*84;
			g.setClip(t, 0, 84, 50);
			g.drawImage(back, t, 0, 20);
		}
	    // 云
		counter++;
		t = (counter%180);
		g.setClip(t, 35, posmsg[8][2], posmsg[8][3]);
		g.drawImage(img, t-posmsg[8][0], 35-posmsg[8][1], 20);
		// 观众1
		for(int i=0; i<16; i++){
			t = i*18;
			g.setClip(t, 50, posmsg[6][2], posmsg[6][3]);
			g.drawImage(img, t-posmsg[6][0], 50-posmsg[6][1], 20);
		}
		// 观众2
		for(int i=0; i<16; i++){
			t = i*18;
			g.setClip(t, 67, posmsg[6][2], posmsg[6][3]);
			g.drawImage(img, t-posmsg[6][0], 67-posmsg[6][1], 20);
		}
		// 草
		for(int i=0; i<8; i++){
			t = i*27;
			g.setClip(t, 84, 27, 25);
			g.drawImage(back, t-84, 84, 20);
		}
		
		// 围栏
		for(int i=0; i<9; i++){
			t = i*24;
			g.setClip(t, 80, posmsg[7][2], posmsg[7][3]);
			g.drawImage(img, t-posmsg[7][0], 80-posmsg[7][1], 20);
		}
	    
		// 边线
		for(int i=0; i<6; i++){
			t = i*38;
			g.setClip(t, 105, posmsg[2][2], posmsg[2][3]);
			g.drawImage(img, t-posmsg[2][0], 105-posmsg[2][1], 20);	
		}
		
		// 信息栏
		g.setClip(0, 82, 14, 22);
		g.drawImage(bar, 0, 82, 20);
		for(int i=0; i<5; i++){
			g.setClip(14+4*i, 82, 4, 30);
			g.drawImage(bar, 4*(i+1), 82, 20);
		}
		g.setClip(34, 82, 70, 30);
		g.drawImage(bar, 24, 82, 20);
	}

	//绘制跑道
	private void drawRunWay(Graphics g,int start){
		int tx = 0,ty = 0;
		for(int i=0; i<map.length; i++){
			ty = y+i*runwayWidth;
			for(int j=map[0].length-1; j>=start; j--){
				tx = x+j*runwayWidth;
				g.setClip(tx, ty, posmsg[map[i][j]][2], posmsg[map[i][j]][3]);
				g.drawImage(img, tx-posmsg[map[i][j]][0], ty-posmsg[map[i][j]][1], 20);
			}
		}
	}
	
	//绘制障碍(栏)
	private void drawBlock(Graphics g,int start){
		int tx = 0,ty = 0;
		for(int i=0; i<block.length; i++){
			for(int j=start; j<block[0].length; j++){
				tx = x+j*runwayWidth;
				ty = y+i*runwayWidth;
				if(block[i][j]>-1){
					if(block[i][j]==5)
						ty += 4;
					if(block[i][j]==0)
						ty -= 24;
					if(block[i][j]==1){
						ty -= 18;
						tx += 14;
					}
					g.setClip(tx, ty, posmsg[block[i][j]][2], posmsg[block[i][j]][3]);
					g.drawImage(img, tx-posmsg[block[i][j]][0], ty-posmsg[block[i][j]][1], 20);
				}
			}
		}
	}
	
	public void move(int speed){
		x -= speed;
	}
	
	public void setPosition(int x,int y){
		this.x = x;
		this.y = y;
	}
	
	public int getX(){
		return x;
	}
	
	public int getY(){
		return y;
	}
	
	public int getBlock(int row,int col){
		return block[row%block.length][col%block[0].length];
	}
	
	public void setBlock(int row,int col,int curr){
		block[row%block.length][col%block[0].length] = curr;
	}
	
    public void releaseRes(){
	    img = null;	
	}
	
	private Image img;
	private Image bar;
	private Image back;
	private int x;
	private int y;
	private int counter;
}

⌨️ 快捷键说明

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