📄 map.java
字号:
import javax.microedition.lcdui.*;
public class Map
{
private int x,y;
private int count = 1;
public int downcount = 1;
public int lrollcount = 1;
public int rrollcount = 1;
private boolean isdraw;
private TomAdventureCanvas canvas;
public int type,status;
//元素坐标,序号:0,1,2,3,4,5,6,7,8,9,10,11,12,68,69,70,71,72,18,19
private int[][] mapdetail={
{0,0,0,0},
{0,0,15,15,2},{15,0,15,15,2},{30,0,15,15,2},{45,0,15,15,2},
{60,0,15,15,2},{0,0,15,15,3},{15,0,15,15,3},{30,0,15,15,3},
{45,0,15,15,3},{0,0,15,9,4},{17,0,15,9,4},{0,0,15,14,15},
{0,0,16,15,6},{16,0,16,15,6},{32,0,16,15,6},{48,0,16,15,6},
{64,0,16,15,6},{0,0,15,15,5},{15,0,15,15,5}
};
public Map(TomAdventureCanvas cs,int startx,int starty,int maptype)
{
canvas = cs;
x = startx;
y = starty;
type = maptype;
status = 0;
}
public void fall()
{
int[] grid = new int[2];
if(count<8)
{
count++;
}
else if(count<10)
{
count++;
grid = TomAdventureCanvas.whichGrid(x, y, 15, 15);
if (TomAdventureCanvas.mapstage[TomAdventureCanvas.stage -
1][grid[1]+1][grid[0]] == 10 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage -
1][grid[1]+1][grid[0]] == 11)
{
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage -
1][grid[1] + 1][grid[0]] = 0;
}
}
else
{
y = y + 5;
if(canvas.tom.status == Tom.LEFT)
{
canvas.tom.status = Tom.FALL_LEFT;
}
else if(canvas.tom.status == Tom.RIGHT)
{
canvas.tom.status = Tom.FALL_RIGHT;
}
if(y>TomAdventureCanvas.maph)
{
count = 1;
status = 0;
type= 0;
}
}
}
public void crack()
{
int[] grid = new int[2];
if(count<3)
{
count++;
if(type == 8) {type = 13;}
else if(type == 7) {type = 14;}
else if(type == 6) {type = 15;}
else if(type == 9) {type = 16;}
else if(type == 3||type == 4||type == 5) {type = 17;}
}
else
{
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
while(grid[1]!=0)
{
if(TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==3 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==4 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==5 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==6 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==7 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==8 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==9 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==18 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==19)
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type =
canvas.map[(grid[1]-1)*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]]=TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]];
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
break;
}
grid[1]--;
}
count = 1;
status = 0;
}
}
public void push_left()
{
int[] grid = new int[2];
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
if(!TomAdventureCanvas.isBlock(x,y,15,15,-1))
{
if(grid[0]==0)
{
canvas.map[(grid[1]+1)*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]-1].type
= canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]-1]
= TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]];
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
grid[0] = TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]-1;
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]-1].type
= canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]-1]
= TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]];
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
grid[0] = grid[0]-1;
}
if(TomAdventureCanvas.onGround(grid[0],grid[1]))
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].status = 0;
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].status = 5;
}
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
while(grid[1]!=0)
{
if(TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==3 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==4 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==5 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==6 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==7 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==8 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==9 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==18 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==19)
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type =
canvas.map[(grid[1]-1)*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]]=TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]];
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
break;
}
grid[1]--;
}
}
else
{
status = 0;
}
}
public void push_right()
{
int[] grid = new int[2];
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
if(!TomAdventureCanvas.isBlock(x,y,15,15,1))
{
if(grid[0]==TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]-1)
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]].type
= canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][0]
= TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]];
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
grid[0] = 0;
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]+1].type
= canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]+1]
= TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]];
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
grid[0] = grid[0]+1;
}
if(TomAdventureCanvas.onGround(grid[0],grid[1]))
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].status = 0;
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].status = 5;
}
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
while(grid[1]!=0)
{
if(TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==3 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==4 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==5 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==6 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==7 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==8 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==9 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==18 ||
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]]==19)
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type =
canvas.map[(grid[1]-1)*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]]=TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]][grid[0]];
}
else
{
canvas.map[grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].type = 0;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
break;
}
grid[1]--;
}
}
else
{
status = 0;
}
}
public void roll_left()
{
int[] grid = new int[2];
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
if(!TomAdventureCanvas.isBlock(x,y,15,15,-1))
{
if(lrollcount>2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -