📄 bullet.java
字号:
homeover = false;
}
}
if (ironPaint)
{
canvas.reDraw(2, g);
}
if (grassPaint)
{
canvas.grassPaint = true;
}
return ;
}
switch (direction)
{
case 1:
posX -= speed;
fillposX = posX + frameWidth;
fillposY = posY;
fillwidth = frameWidth + speed;
fillheigh = frameHeight;
break;
case 2:
posX += speed;
fillposX = posX - speed;
fillposY = posY;
fillwidth = frameWidth;
fillheigh = frameHeight;
break;
case 3:
posY -= speed;
fillposX = posX;
fillposY = posY + speed;
fillwidth = frameWidth;
fillheigh = frameHeight;
break;
case 4:
posY += speed;
fillposX = posX;
fillposY = posY - speed;
fillwidth = frameWidth;
fillheigh = frameHeight;
default:
break;
}
g.fillRect(fillposX, fillposY, fillwidth, fillheigh);
switch (direction & 0x0f)
{
case 1:
g.drawImage(bulletLeft, posX, posY, g.TOP | g.LEFT);
break;
case 2:
g.drawImage(bulletRight, posX, posY, g.TOP | g.LEFT);
break;
case 3:
g.drawImage(bulletUp, posX, posY, g.TOP | g.LEFT);
break;
case 4:
g.drawImage(bulletDown, posX, posY, g.TOP | g.LEFT);
default:
break;
}
if (grassPaint)
{
canvas.grassPaint = true;
}
}
boolean isMapCollide()
{
collFlag = false;
isContinue = true;
int i;
collX = posX - canvas.mapOffsetX;
collY = posY - canvas.mapOffsetY;
switch (direction & 0x0f)
{
case 1:
collX = collX - tileW;
BposX = posX - bombImage.getWidth() / 2;
BposY = posY - bombImage.getHeight() / 2;
if (collX + tileW <= speed)
{
collFlag = true;
mapBlock = 0x0ffff;
BposX = canvas.mapOffsetX;
posX = canvas.mapOffsetX;
break;
}
else
{
collFlag = false;
mapBlock = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW;
for (i = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW; i <= ((collY + frameHeight - 1) / tileW * (canvas.mapWidth / tileW) + collX / tileW + 1); i += (canvas.mapWidth / tileW))
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
isContinue = false;
break;
}
}
if (starNum != 0 && speed > tileW && isContinue)
{
collX = collX - tileW;
mapBlock = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW;
for (i = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW; i <= ((collY + frameHeight - 1) / tileW * (canvas.mapWidth / tileW) + collX / tileW + 1); i += (canvas.mapWidth / tileW))
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
break;
}
}
}
}
break;
case 2:
collX = collX + frameWidth + tileW;
BposX = posX - bombImage.getWidth() / 2;
BposY = posY - bombImage.getHeight() / 2;
if (collX - tileW + speed >= (canvas.mapWidth))
{
collFlag = true;
mapBlock = 0x0ffff;
BposX = canvas.mapOffsetX + canvas.mapWidth - bombImage.getWidth();
posX = canvas.mapOffsetX + canvas.mapWidth - frameWidth;
break;
}
else
{
collFlag = false;
mapBlock = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW;
for (i = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW; i <= ((collY + frameHeight - 1) / tileW * (canvas.mapWidth / tileW) + collX / tileW + 1); i += (canvas.mapWidth / tileW))
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
isContinue = false;
break;
}
}
if (starNum != 0 && speed > tileW && isContinue)
{
collX = collX + tileW;
mapBlock = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW;
for (i = (collY / tileW - 1) * (canvas.mapWidth / tileW) + collX / tileW; i <= ((collY + frameHeight - 1) / tileW * (canvas.mapWidth / tileW) + collX / tileW + 1); i += (canvas.mapWidth / tileW))
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
break;
}
}
}
}
break;
case 3:
collY = collY - tileW;
BposX = posX - bombImage.getWidth() / 2;
BposY = posY - bombImage.getHeight() / 2;
if (collY + tileW <= speed)
{
collFlag = true;
mapBlock = 0x0ffff;
BposY = canvas.mapOffsetY;
posY = canvas.mapOffsetY;
break;
}
else
{
collFlag = false;
mapBlock = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1;
for (i = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1; i <= collY / tileW * (canvas.mapWidth / tileW) + (collX + frameWidth - 1) / tileW; i++)
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
isContinue = false;
break;
}
}
if (starNum != 0 && speed > tileW && isContinue)
{
collY = collY - tileW;
mapBlock = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1;
for (i = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1; i <= collY / tileW * (canvas.mapWidth / tileW) + (collX + frameWidth - 1) / tileW; i++)
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
break;
}
}
}
}
break;
case 4:
collY = collY + frameHeight;
BposX = posX - bombImage.getWidth() / 2;
BposY = posY - bombImage.getHeight() / 2;
if (collY >= (canvas.mapHeight - speed))
{
collFlag = true;
mapBlock = 0x0ffff;
BposY = canvas.mapOffsetY + canvas.mapHeight - bombImage.getHeight();
posY = canvas.mapOffsetY + canvas.mapHeight - frameHeight;
break;
}
else
{
collFlag = false;
mapBlock = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1;
for (i = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1; i <= collY / tileW * (canvas.mapWidth / tileW) + (collX + frameWidth - 1) / tileW; i++)
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
isContinue = false;
break;
}
}
if (starNum != 0 && speed > tileW && isContinue)
{
collY = collY + tileW;
mapBlock = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1;
for (i = collY / tileW * (canvas.mapWidth / tileW) + collX / tileW - 1; i <= collY / tileW * (canvas.mapWidth / tileW) + (collX + frameWidth - 1) / tileW; i++)
{
if (canvas.mapInfo[i] == 3)
{
grassPaint = true;
}
if (canvas.mapInfo[i] != 0 && canvas.mapInfo[i] != 3)
{
collFlag = true;
break;
}
}
}
}
break;
default:
break;
}
return collFlag;
}
boolean isObjCollide(int objX, int objY, int width, int height)
{
collFlag = false;
if (posX < (objX + width) && (posX + frameWidth) > objX && posY < (objY + width) && (posY + frameHeight) > objY)
collFlag = true;
return collFlag;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -