📄 map.java
字号:
{
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 = 6;
}
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]--;
}
lrollcount = 1;
}
lrollcount++;
}
else
{
status = 0;
}
}
public void roll_right()
{
int[] grid = new int[2];
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
if(!TomAdventureCanvas.isBlock(x,y,15,15,1))
{
if(rrollcount>2)
{
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 = 7;
}
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]--;
}
rrollcount = 1;
}
rrollcount++;
}
else
{
status = 0;
}
}
public void down()
{
int[] grid = new int[2];
grid = TomAdventureCanvas.whichGrid(x,y,15,15);
if(!TomAdventureCanvas.onGround(grid[0],grid[1]))
{
if(downcount%3==0)
{
if((grid[1]+1)<TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][3])
{
canvas.map[(grid[1]+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;
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+2][grid[0]]=TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]];
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;
canvas.map[(grid[1]+1)*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][2]+grid[0]].status = 5;
downcount = 0;
y = TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][1]+grid[1]*TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][0][5];
}
else
{
TomAdventureCanvas.mapstage[TomAdventureCanvas.stage-1][grid[1]+1][grid[0]] = 0;
type = 0;
status = 0;
}
}
else
{
y = y + 5;
}
downcount++;
}
else
{
status = 0;
downcount = 1;
}
}
public void paint(Graphics g)
{
isdraw = false;
switch(status)
{
case 0: //正常
break;
case 1: //下落
fall();
break;
case 2: //碎裂
crack();
break;
case 3: //向左推动
push_left();
break;
case 4: //向右推动
push_right();
break;
case 5: //石头下落
down();
break;
case 6: //向左滚动
roll_left();
break;
case 7: //向右滚动
roll_right();
break;
}
if(type!=0)
{
if (TomAdventureCanvas.mapx <= x &&
x <= TomAdventureCanvas.mapx + TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy <= y &&
y <= TomAdventureCanvas.mapy + TomAdventureCanvas.viewh)
{
isdraw = true;
}
else if (TomAdventureCanvas.mapx <= x + mapdetail[type][2] &&
x + mapdetail[type][2] <=
TomAdventureCanvas.mapx + TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy <= y &&
y <= TomAdventureCanvas.mapy + TomAdventureCanvas.viewh)
{
isdraw = true;
}
else if (TomAdventureCanvas.mapx <= x &&
x <= TomAdventureCanvas.mapx + TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy <= y + mapdetail[type][3] &&
y + mapdetail[type][3] <=
TomAdventureCanvas.mapy + TomAdventureCanvas.viewh)
{
isdraw = true;
}
else if (TomAdventureCanvas.mapx <= x + mapdetail[type][2] &&
x + mapdetail[type][2] <=
TomAdventureCanvas.mapx + TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy <= y + mapdetail[type][3] &&
y + mapdetail[type][3] <=
TomAdventureCanvas.mapy + TomAdventureCanvas.viewh)
{
isdraw = true;
}
if (isdraw == true)
{
TomAdventureCanvas.drawClipImage(g, x - TomAdventureCanvas.mapx,
y - TomAdventureCanvas.mapy,
TomAdventureCanvas.imgitem[mapdetail[type][4]],
mapdetail[type][0],
mapdetail[type][1],
mapdetail[type][2],
mapdetail[type][3]);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -