📄 ictankcanvas.java.bak
字号:
g.drawString("" + password[2], width/2, height/2, g.TOP|g.HCENTER);
if ( passPos == 4)
g.setColor(0xfe, 0x3f, 0x00);
else
g.setColor(0xff, 0xff, 0xfe);
g.drawString("" + password[3], width/2+10, height/2, g.TOP|g.HCENTER);
if ( passPos == 5)
g.setColor(0xfe, 0x3f, 0x00);
else
g.setColor(0xff, 0xff, 0xfe);
g.drawString("OK", width/2+20, height/2, g.TOP|g.HCENTER);
break;
case 7:
level = 1;
for ( lev = 0; lev < 20; lev ++ ) {
samePas = true;
for (i = 0; i < 4; i ++){
if ( password[i] != levelPas [(lev*4+i)]){
samePas = false;
}
}
if ( samePas ){
pasLevel = lev + 1;
break;
}
}
if ( samePas )
gameSubStatus = 8;
else
gameSubStatus = 10;
break;
case 8:
g.setColor(0x0);
g.fillRect(0, 0, width, height);
for ( i = 0; i < 5; i ++ ){
g.setColor(0x7f+i*10, 0x7f+i*10, 0x7f+i*10);
g.drawRect( 50+i, 6+height/3+i, width-100-i*2, height-height/3*2-i*2);
}
g.setColor(0xffffff);
g.setFont(Font.getFont(Font. FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM));
g.drawString("选关", width/2, height/4, g.TOP|g.HCENTER);
level = 1;
passPos = 1;
gameSubStatus ++;
break;
case 9:
g.setColor(0x0);
g.fillRect(56, height/2, width-100-10, fontHeight );
g.setColor(0xffffff);
g.setFont(Font.getFont(Font. FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_SMALL));
g.drawString("关数", width/2-30, height/2, g.TOP|g.LEFT);
if ( passPos == 1)
g.setColor(0xfe, 0x3f, 0x00);
else
g.setColor(0xff, 0xff, 0xfe);
g.drawString("" + level, width/2+2, height/2, g.TOP|g.LEFT);
if ( passPos == 2)
g.setColor(0xfe, 0x3f, 0x00);
else
g.setColor(0xff, 0xff, 0xfe);
g.drawString("OK", width/2+30, height/2, g.TOP|g.RIGHT);
break;
case 10:
g.setColor(0x0);
g.fillRect(0, 0, width, height);
life = 3;
initLevel();
setLevel(level);
gameStatus = 3;
gameSubStatus = 1;
showLevel = true;
break;
default:
break;
}
}
private void gamePaint(Graphics g) {
if(pauseStart){
g.setColor(0xffffff);
g.fillRect(0,0,width,height);
g.drawImage(helpImage,0,0,20);
}else{
boolean lifePos;
int i, j;
boolean victorFlag;
grassPaint = false;
g.setColor(0x3f, 0x3f, 0x3f);
g.fillRect(0, 0, width, mapOffsetY);
g.fillRect(0, 0, mapOffsetX, mapOffsetY+mapHeight);
g.fillRect(mapOffsetX + mapWidth, 0, width - mapOffsetX - mapWidth, mapOffsetY+mapHeight);
// g.fillRect(0, mapOffsetY + mapHeight, width, mapOffsetY);
if ( showLevel ){
g.setColor(0);
g.fillRect(0, 0, width, height);
g.setColor(fadeCol, fadeCol, fadeCol);
g.setFont(Font.getFont(Font. FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM));
g.drawString("第 "+ level + " 关", width/2, height/2, 17);
if ( fadein ) {
if ( fadeCol < 0xfc ){
//fadeCol += 4;
fadeCol += 16;
if(fadeCol>0xfc){
fadeCol -= 16;
fadein = false;
}
}else
fadein = false;
} else {
if ( fadeCol > 0 ){
// fadeCol -= 4;
fadeCol -= 16;
if (fadeCol < 0) {
showLevel = false;
}
}else {
showLevel = false;
}
}
return;
}
lifePos = ( width > height )? true : false ;
if ( firstTime || pauseBack){
if(firstTime){
s = new Sound(beginlist,1);
s.play(1);
}
victorFlag = false;
g.setColor(0x3f, 0x3f, 0x3f);
g.fillRect(0, 0, width, height);
// draw the map
for ( i = 0; i < mapHeight/tileW; i += 2 ){
for ( j = 0; j < mapWidth/tileW; j += 2 ){
switch( mapInfo[(i*mapWidth/tileW)+j] ) {
case 0:
g.drawImage(tile1, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
break;
case 1:
g.drawImage(tile2, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
break;
case 2:
g.drawImage(tile3, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
break;
case 3:
g.drawImage(tile4, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
break;
case 4:
case 5:
case 6:
case 7:
if ( !victorFlag ){
g.drawImage(victor, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
victorFlag = true;
}
default:
break;
}
}
}
// g.drawImage(onTimer, 150, 150, g.TOP|g.LEFT);
g.setColor(0x0);
if ( lifePos ){
g.drawImage(logo, mapOffsetX+mapWidth+2, mapOffsetY+2 , g.TOP|g.LEFT);
g.drawImage(ic, mapOffsetX+mapWidth+2, mapOffsetY+mapHeight/2, g.TOP|g.LEFT);
}else {
g.drawImage(logo, mapOffsetX+2, mapOffsetY+mapHeight+2 , g.TOP|g.LEFT);
g.drawImage(ic, mapOffsetX+mapWidth/2, mapOffsetY+mapHeight+2, g.TOP|g.LEFT);
}
firstTime = false;
pauseBack = false;
}
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_ITALIC, Font.SIZE_SMALL));
if ( lifePos ){ //horizontal
g.setColor(0x3f, 0x3f, 0x3f);
g.fillRect(mapOffsetX+mapWidth+1, mapOffsetY+hero.frameHeight+3, 20, fontHeight);
g.fillRect(mapOffsetX+mapWidth+1, mapOffsetY+mapHeight/2+hero.frameHeight+2, 20, fontHeight);
g.setColor(0xff, 0xff, 0xfe);
g.drawString(" "+ life, mapOffsetX+mapWidth+2, mapOffsetY+hero.frameHeight+1, g.TOP|g.LEFT);
g.drawString(" "+ numEnemy, mapOffsetX+mapWidth+2, mapOffsetY+mapHeight/2+hero.frameHeight+0, g.TOP|g.LEFT);
}else { //vertical
g.setColor(0x3f, 0x3f, 0x3f);
g.fillRect(mapOffsetX+hero.frameWidth+3, mapOffsetY+mapHeight+1, 20, fontHeight);
g.fillRect(mapOffsetX+mapWidth/2+hero.frameWidth+1, mapOffsetY+mapHeight+1, 20, fontHeight);
g.setColor(0xff, 0xff, 0xfe);
g.drawString(" "+ life, mapOffsetX+hero.frameWidth+2, mapOffsetY+mapHeight+1, g.TOP|g.LEFT);
g.drawString(" "+ numEnemy, mapOffsetX+mapWidth/2+hero.frameWidth, mapOffsetY+mapHeight+1, g.TOP|g.LEFT);
}
g.setColor(0xffffff);
g.setFont(Font.getFont(Font. FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
g.drawString("帮助", width-fontWidth, height-fontHeight, 20);
g.drawString("退出", 10, height-fontHeight, 20);
//add by johnson
if(reDraw ){
//repaint the special area
if (symboll.formerSymbolX != -1) {
int fromX = symboll.formerSymbolX - mapOffsetX - tileW*2;
int fromY = symboll.formerSymbolY - mapOffsetY - tileW*2;
int toX = symboll.formerSymbolX - mapOffsetX + symboll.symbolWidth + tileW*2;
int toY = symboll.formerSymbolY - mapOffsetY + symboll.symbolHeight + tileW*2;
//adjust the repaint area
if(fromX<0){
fromX = 0;
}else if((fromX%(tileW*2))!=0){
fromX = fromX - (fromX%(tileW*2));
}
if(fromY<0){
fromY = 0;
}else if((fromY%(tileW*2))!=0){
fromY = fromY - (fromY%(tileW*2));
}
if(toX>mapWidth){
toX = mapWidth;
}
if(toY>mapHeight){
toY = mapHeight;
}
for (i = fromY / tileW;
i < toY / tileW;
i += 2) {
for (j = fromX / tileW;
j < toX / tileW;
j += 2) {
switch (mapInfo[ (i * mapWidth / tileW) + j]) {
case 0:
g.drawImage(tile1, mapOffsetX + j * tileW,
mapOffsetY + i * tileW,
g.TOP | g.LEFT);
break;
case 1:
g.drawImage(tile2, mapOffsetX + j * tileW,
mapOffsetY + i * tileW,
g.TOP | g.LEFT);
break;
case 2:
g.drawImage(tile3, mapOffsetX + j * tileW,
mapOffsetY + i * tileW,
g.TOP | g.LEFT);
break;
case 3:
g.drawImage(tile4, mapOffsetX + j * tileW,
mapOffsetY + i * tileW,
g.TOP | g.LEFT);
break;
case 4:
case 5:
case 6:
case 7:
/* if (!victorFlag) {
g.drawImage(victor, mapOffsetX + j * 3,
mapOffsetY + i * 3,
g.TOP | g.LEFT);
victorFlag = true;
}*/
default:
break;
}
}
}
}
//repaint end
reDraw = false;
hero.paint(g);
}
if(symboll.symbolState!=0){
symboll.paint(g);
}
// hero.paint(g);
//add by johnson to realize the symbol collision judgement
if(symboll.symbolState != 0){
if (hero.isobjCollide(symboll.symbolX, symboll.symbolY,
symboll.symbolWidth, symboll.symbolHeight)) {
bonusMark = bonusMark + 500;
switch(symboll.symbolState){
case 1: //timer
for ( i = 0; i < maxEnemy; i ++ ){
if (enemyAlive[i]) {
enemy[i].ifTimer = true;
}
ifTimer = true;
ictimer.timeCounter = 0;
}
break;
case 2: //star
if(bullet[0].starNum<3){
bullet[0].starNum = bullet[0].starNum + 1;
}
break;
case 3: //bomber
// System.out.println("maxEnemy="+maxEnemy);
for ( i = 0; i < maxEnemy; i ++ ){
enemy[i].alive = false;
if ( enemyAlive[i] ){
enemyAlive[i] = false;
numEnemy--;
g.drawImage(bombImage, enemy[i].posX, enemy[i].posY, g.TOP|g.LEFT);
Point p = new Point(enemy[i].posX,enemy[i].posY);
tempPos.addElement(p);
enemy[i].posX = -1000;
enemy[i].posY = -1000;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -