?? applet1.java
字號:
java.awt.Choice effectsList = new java.awt.Choice();
java.awt.Choice musicList = new java.awt.Choice();
java.awt.Choice destroyItemsList = new java.awt.Choice();
java.awt.Button resetKnop = new java.awt.Button();
java.awt.Choice resetList = new java.awt.Choice();
java.awt.Checkbox fieldRadioButton = new java.awt.Checkbox();
java.awt.CheckboxGroup mapBuilder = new java.awt.CheckboxGroup();
java.awt.Checkbox wallRadioButton = new java.awt.Checkbox();
java.awt.Checkbox player1RadioButton = new java.awt.Checkbox();
java.awt.Checkbox blockRadioButton = new java.awt.Checkbox();
java.awt.Checkbox player2RadioButton = new java.awt.Checkbox();
java.awt.Checkbox player3RadioButton = new java.awt.Checkbox();
java.awt.Checkbox player4RadioButton = new java.awt.Checkbox();
java.awt.Label mapBuilderTekst = new java.awt.Label();
java.awt.Button saveKnop = new java.awt.Button();
java.awt.Button stopBuildKnop = new java.awt.Button();
java.awt.Button buildResetKnop = new java.awt.Button();
java.awt.Choice modeList = new java.awt.Choice();
java.awt.Button modeInfoKnop = new java.awt.Button();
java.awt.Button backKnop2 = new java.awt.Button();
java.awt.Button nextSongKnop = new java.awt.Button();
java.awt.Button stopSongKnop = new java.awt.Button();
//}}
public void paint(Graphics g) {
if (loadAll) {
loadAll();
if (!menu) {
createMap(lvl); //create the map
bufferImages(); //pre-draw images
b.drawImage(p1[4],getWidth(),getHeight(),this); //and draw it
animation(0);
}
else if (menu) {
b.drawImage(menuBackground,0,0,this);
b.setColor(new Color(155,188,255));
b.setFont(new Font("SansSerif",Font.BOLD,13));
b.drawString("Made by Matthijs",textX,textY);
}
}
/*if (firstTime && !menu) { //Buffer everything
firstCounter++; //and
createMap(lvl); //create the map and
bufferImages(); //put it in an image, called background
if (firstCounter == 3) { //and set the stand animation
firstTime = false; //as the start animation
b.drawImage(p1[4],getWidth(),getHeight(),this); //and draw it
//timer.start(); //and start the timer
}
animation(0);
}*/
if (requestedPaint || menu) {
b.setColor(Color.blue);
b.setFont(new Font("SansSerif",Font.BOLD,12));
requestedPaint = false;
g.drawImage(offscreen,0,0,this);
}
}
public void run() {
while (running) {
if (player[0].getMoving() || player[1].getMoving() || player[2].getMoving() || player[3].getMoving())
animation(0);
for (int i = 0; i < bombs.length; i++) {
try {
if (bombs[i].getBombTimer() > 0)
bombs[i].delBombTimer();
if (bombs[i].getBombTimer() == 0 && bombs[i].isBomb()) {
explosions[i] = new Explosion();
explosions[i].setExplosionTimer((explosionDuration*1000)/cycleTime);
explodeBomb(i);
}
}
catch (NullPointerException e) { break; }
}
for (int i = 0; i < player.length; i++) {
if (player[i].isImmortal()) {
player[i].delImmortalTimer();
//if (((immortalTime*1000)/cycleTime) - player[i].getImmortalTimer() < ((immortalTime*500)/cycleTime))
if (player[i].getAnimation() == 1 && player[i].getImmortalTimer() < ((immortalTime*1000)/cycleTime)*immortalTime/6) {
player[i].setAnimation(6);
player[i].setCanMove(true);
}
if (player[i].getImmortalTimer() <= 0) {
player[i].setImmortal(false);
}
}
}
playTimeLeft--;
int playTime2 = playTimeLeft*cycleTime/1000;
String minutes = String.valueOf(playTime2/60);
String seconds = String.valueOf(playTime2%60);
if (playTime2%60 < 10)
seconds = "0" + seconds;
if (playTime2/60 < 10)
minutes = "0" + minutes;
showTime = minutes+":"+seconds;
if (playTimeLeft <= 0)
endGame();
if (menuCounter > -2)
menuCounter--;
if (menuCounter == 0 && menu) {
timer = null;
running = false;
//menu = false;
playTimeLeft += 2;
showTime = Integer.parseInt(timeField.getText())+":00";
animation(0);
}
if (menuCounter == -2 && menu) {
b.drawImage(background,0,space,this);
repaint();
menu = false;
//animation(0);
}
try {
timer.sleep(cycleTime);
}
catch (InterruptedException e) { }
}
}
public void animation(int ID) {
b.drawImage(background,0,space,this);
drawItems();
b.setColor(Color.lightGray);
b.fillRect(0,0,getWidth(),space);
b.fillRect(0,getHeight()-space,getWidth(),space);
drawText();
int i;
for (i = 0; i < bombs.length; i++) {
try {
if (bombs[i].isBomb()) {
b.drawImage(items[0],bombs[i].getX(),bombs[i].getY(),bombS,bombS,this);
//bombs[i].setOldAbsPos(bombs[i].getAbsX(), bombs[i].getAbsY());
bombs[i].move();
try {
int direction = bombs[i].getDirection();
int bY = bombs[i].getY();
int bX = bombs[i].getX();
int bAX = bombs[i].getAbsX();
int bAY = bombs[i].getAbsY();
if (((bX <= 0 || bX >= getWidth() - bombS) && (direction == 1 || direction == 3 || pMap[bAX][bombs[i].toAbsY(bY+bombS)] > 3)) || bY < space || bY + bombS > getHeight() - space || (pMap[bAX][bAY] > 3 && (direction == 1 || direction == 2)) || (pMap[bombs[i].toAbsX(bX+bombS)][bAY] > 3 && direction == 3) || (pMap[bAX][bombs[i].toAbsY(bY+bombS)] > 3 && direction == 4)) {
if (pMap[bAX][bAY] > 3) {
if (direction == 1)
bombs[i].setAbsX(bAX+1);
if (direction == 2)
bombs[i].setAbsY(bAY+1);
if (direction == 3)
bombs[i].setAbsX(bAX-1);
if (direction == 4)
bombs[i].setAbsY(bAY-1);
}
bombs[i].setDirection(0);
pMap[bAX][bAY] = 31;
}
else if (direction == 4 && pMap[bAX][bombs[i].toAbsY(bY+bombS)] > 3) {
if (pMap[bAX][bAY] > 3)
bombs[i].setAbsY(bAY-1);
bombs[i].setDirection(0);
pMap[bAX][bAY] = 31;
}
}
catch (ArrayIndexOutOfBoundsException e) { }
}
}
catch (NullPointerException e) { break; }
}
for (i = 0; i < explosions.length; i++) {
try {
if (explosions[i].getExplosionTimer() > 0) {
addExplosion(i);
explosions[i].delExplosionTimer();
}
}
catch (NullPointerException e) { break; }
}
int playerID;
int playerX;
int playerY;
int playerAX;
int playerAY;
int flashSpeed = 10;
double playerSpeed;
for (i = 0; i < 4; i++) {
playerID = player[i].getPlayerID();
if ((player[i].getMoving() || player[i].isImmortal()) && isPlayer[i]) {
ID = player[i].getAnimation();
playerX = player[i].getX();
playerY = player[i].getY();
playerAX = player[i].getAbsX();
playerAY = player[i].getAbsY();
playerSpeed = player[i].getMoveSpeed();
if (player[i].getImmortalTimer() > ((immortalTime*1000)/cycleTime)*immortalTime/6)
ID = 1;
else if (player[i].getLives() <= 0 && !player[i].isDead()) {
player[i].setLives(0);
player[i].setDead(true);
player[i].setPos(getWidth(), getHeight());
playerLoses[i]++;
checkPlayers();
}
if (player[i].isImmortal()) {
if (player[i].getImmortalCounter() <= flashSpeed)
player[i].addImmortalCounter();
if (player[i].getImmortalCounter() == flashSpeed)
player[i].setImmortalCounter(0);
}
else
player[i].setImmortalCounter(0);
switch (ID) {
case 1: //P gets hit
b.drawImage(hit,playerX,playerY,this);
//player[i].setMoving(true);
break;
case 2: //P walks left
if (player[i].getImmortalCounter() < flashSpeed/2)
b.drawImage(p1[3],playerX,playerY,this);
try {
playerAX = player[i].toAbsX(playerX+pW/2);
if (((pMap[player[i].toAbsX(playerX-(int)(playerSpeed+0.5))][playerAY] <= 3 &&
pMap[player[i].toAbsX(playerX-(int)(playerSpeed+0.5))][player[i].toAbsY(playerY+pW+7+(int)(playerSpeed+0.5)-1)] <= 3) ||
(pMap[playerAX-1][playerAY] <= 3 &&
pMap[player[i].toAbsX(playerX+(int)(playerSpeed+0.5))-1][player[i].toAbsY(playerY+pW+7+(int)(playerSpeed+0.5)-1)] <= 3)) &&
pMap[playerAX][playerAY] >= 0 &&
playerX >= 0) {
player[i].move();
checkItem(i);
}
else if (player[i].canKickBombs() && pMap[player[i].toAbsX(playerX-(int)(playerSpeed+0.5))][playerAY] >= 30 && pMap[playerAX-2][playerAY] <= 3) {
pMap[playerAX-1][playerAY] = oldPMap[playerAX-1][playerAY];
moveBomb(playerAX-1,playerAY,1);
}
}
catch (ArrayIndexOutOfBoundsException e) { }
break;
case 3: //P walks right
if (player[i].getImmortalCounter() < flashSpeed/2)
b.drawImage(p1[2],playerX,playerY,this);
try {
playerAX = player[i].toAbsX(playerX+pW/2);
if (((pMap[player[i].toAbsX(playerX+pW+(int)(playerSpeed+0.5))][playerAY] <= 3 &&
pMap[player[i].toAbsX(playerX+pW+(int)(playerSpeed+0.5))][player[i].toAbsY(playerY+pW+7+(int)(playerSpeed+0.5)-1)] <= 3) ||
(pMap[playerAX+1][playerAY] <= 3 &&
pMap[player[i].toAbsX(playerX+pW-(int)(playerSpeed+0.5))+1][player[i].toAbsY(playerY+pW+7+(int)(playerSpeed+0.5)-1)] <= 3)) &&
pMap[playerAX][playerAY] >= 0 &&
playerX+pW <= getWidth()) {
player[i].move();
checkItem(i);
}
else if (player[i].canKickBombs() && pMap[player[i].toAbsX(playerX+pW+(int)(playerSpeed+0.5))][playerAY] >= 30 && pMap[playerAX+2][playerAY] <= 3) {
pMap[playerAX+1][playerAY] = oldPMap[playerAX+1][playerAY];
moveBomb(playerAX+1,playerAY,3);
}
}
catch (ArrayIndexOutOfBoundsException e) { }
break;
case 4: //P walks up
if (player[i].getImmortalCounter() < flashSpeed/2)
b.drawImage(p1[1],playerX,playerY,this);
try {
playerAY = player[i].toAbsY(playerY+pH/2);
if (((pMap[playerAX][player[i].toAbsY(playerY-(int)(playerSpeed+0.5))] <= 3 &&
pMap[player[i].toAbsX(playerX+pW+1)][player[i].toAbsY(playerY-(int)(playerSpeed+0.5))] <= 3) ||
(pMap[playerAX][player[i].toAbsY(playerY+(int)(playerSpeed+0.5))-1] <= 3 &&
pMap[player[i].toAbsX(playerX+pW+1)][player[i].toAbsY(playerY+(int)(playerSpeed+0.5))-1] <= 3)) &&
pMap[playerAX][playerAY] >= 0 &&
playerY >= space) {
player[i].move();
checkItem(i);
}
else if (player[i].canKickBombs() && pMap[playerAX][player[i].toAbsY(playerY-(int)(playerSpeed+0.5))] >= 30 && pMap[playerAX][playerAY-2] <= 3) {
pMap[playerAX][playerAY-1] = oldPMap[playerAX][playerAY-1];
moveBomb(playerAX,playerAY-1,2);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -