【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-Bullet.java,希望本篇文章对您学习有所帮助。
import javax.microedition.lcdui.*;
class Bullet
{
private static Graphics g = null;
public boolean alive;
public int posX, posY;
public int BposX, BposY;
private int mapBlock;
public int direction;
private int speed;
public int bombCount;
private Image bulletImage;
private Image bulletLeft;
private Image bulletRight;
private Image bulletUp;
private Image bulletDown;
private Image bombImage;
private Image drawBullet;
public boolean bombFlag = false;
private boolean ironPaint = false;
private boolean grassPaint = false;
private boolean homeover = false;
public boolean isbomb = false;
public int frameWidth, frameHeight;
public int starNum = 0;
TankCanvas canvas;
private int tileW;
private int fillposX;
private int fillposY;
private int fillwidth;
private int fillheigh;
private int blockX = 0;
private int blockY = 0;
private boolean collFlag = false;
private boolean isContinue = true;
private int collX, collY;
Bullet(TankCanvas canvas)
{
this.canvas = canvas;
tileW = canvas.tileW;
// Load the object images
bulletImage = canvas.createImage("/bullet.png");
frameWidth = bulletImage.getWidth() / 4;
frameHeight = bulletImage.getHeight();
bulletLeft = Image.createImage(frameWidth, frameHeight);
g = bulletLeft.getGraphics();
g.drawImage(bulletImage, 0, 0, 20);
bulletRight = Image.createImage(frameWidth, frameHeight);
g = bulletRight.getGraphics();
g.drawImage(bulletImage, - frameWidth * 1, 0, 20);
bulletUp = Image.createImage(frameWidth, frameHeight);
g = bulletUp.getGraphics();
g.drawImage(bulletImage, - frameWidth * 2, 0, 20);
bulletDown = Image.createImage(frameWidth, frameHeight);
g = bulletDown.getGraphics();
g.drawImage(bulletImage, - frameWidth * 3, 0, 20);
g = null;
drawBullet = bulletUp;
bombImage = canvas.createImage("/explode.png");
}
synchronized void paint(Graphics g)
{
fillposX = posX;
fillposY = posY;
fillwidth = frameWidth;
fillheigh = frameHeight;
blockX = 0;
blockY = 0;
int i;
switch (starNum)
{
case 0:
speed = canvas.tileW;
break;
case 1:
speed = canvas.tileW + 1;
break;
case 2:
speed = canvas.tileW + 2;
break;
case 3:
speed = canvas.tileW + 3;
break;
default:
break;
}
if (!bombFlag)
{
ironPaint = false;
grassPaint = false;
if (isMapCollide())
{
g.fillRect(posX, posY, frameWidth, frameHeight);
if (mapBlock < 0x0ffff)
{
// Destroy the blocks
switch (direction)
{
case 1:
//left
for (i = 0; i < 4; i++)
{
if ((canvas.mapInfo[mapBlock] > 0) && (canvas.mapInfo[mapBlock] < 4))
{
if (canvas.mapInfo[mapBlock] == 2 && starNum != 3)
{
ironPaint = true;
}
if (canvas.mapInfo[mapBlock] != 2)
{
blockY = mapBlock / (canvas.mapWidth / tileW);
blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
g.setColor(0x0);
g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
canvas.mapInfo[mapBlock] = 0;
}
else
{
if (starNum == 3)
{
blockY = mapBlock / (canvas.mapWidth / tileW);
blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
g.setColor(0x0);
g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
canvas.mapInfo[mapBlock] = 0;
}
}
}
else if (canvas.mapInfo[mapBlock] >= 4)
{
canvas.isLose = true;
g.setColor(0x0);
homeover = true;
g.fillRect(canvas.mapOffsetX + canvas.mapWidth / 2-tileW * 2, canvas.mapOffsetY + canvas.mapHeight - tileW * 4, tileW * 4, tileW * 4);
}
mapBlock += (canvas.mapWidth / tileW);
if (mapBlock >= ((canvas.mapWidth / tileW) * (canvas.mapHeight / tileW)))
break;
}
break;
case 2:
for (i = 0; i < 4; i++)
{
if ((canvas.mapInfo[mapBlock] > 0) && (canvas.mapInfo[mapBlock] < 4))
{
if (canvas.mapInfo[mapBlock] == 2 && starNum != 3)
{
ironPaint = true;
}
if (canvas.mapInfo[mapBlock] != 2)
{
blockY = mapBlock / (canvas.mapWidth / tileW);
blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
g.setColor(0x0);
g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
canvas.mapInfo[mapBlock] = 0;
}
else
{
//rid the iron layer
if (starNum == 3)
{
blockY = mapBlock / (canvas.mapWidth / tileW);
blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
g.setColor(0x0);
g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
canvas.mapInfo[mapBlock] = 0;
}
}
}
else if (canvas.mapInfo[mapBlock] >= 4)
{
canvas.isLose = true;
// canvas.overtimer.timeCounter = 0;
g.setColor(0x0);
homeover = true;
g.fillRect(canvas.mapOffsetX + canvas.mapWidth / 2-tileW * 2, canvas.mapOffsetY + canvas.mapHeight - tileW * 4, tileW * 4, tileW * 4);
}
mapBlock += (canvas.mapWidth / tileW);
上一篇:
BulkOperationCleanupAction.java
下一篇:
法律专业开题报告范文