📄 ictankcanvas.java
字号:
case 8:
g.setColor(fadeCol, fadeCol, fadeCol);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,
Font.SIZE_MEDIUM));
g.drawString("敌人来了......", width / 2,
(height - ic.getHeight() - fontHeight) / 2 - 3,
g.TOP | g.HCENTER);
if (fadeCol < 0xfc) {
fadeCol += 4;
}
else {
ictimer.timeCounter = 0;
gameSubStatus++;
ictimer.timeCounter = 0;
title_y = ic.getHeight() / 2;
title_h = 0;
}
break;
case 9:
g.setColor(0xffffff);
g.fillRect(0, (height + fontHeight) / 2 - title_h, width, title_h * 2);
if (title_h < (ic.getHeight() / 2)) {
title_h += 2;
}
else {
gameSubStatus++;
title_x = -ic.getWidth();
}
break;
case 10:
g.setColor(0xffffff);
g.fillRect(0, ( (height - ic.getHeight() + fontHeight) / 2), width,
ic.getHeight());
g.drawImage(ic, title_x, ( (height - ic.getHeight() + fontHeight) / 2),
g.TOP | g.LEFT);
if (title_x < 0) {
title_x += 1;
}
else {
// title = null;
gameSubStatus++;
ictimer.timeCounter = 0;
// Load the title image
try {
title = Image.createImage("/tank_a.png");
}
catch (Exception exception) {
System.out.println(exception);
}
title_x = width + title.getWidth();
}
break;
case 11:
g.setColor(0xffffff);
g.fillRect(0, ( (height - ic.getHeight() + fontHeight) / 2), width,
title.getHeight());
g.drawImage(ic, 0, ( (height - ic.getHeight() + fontHeight) / 2),
g.TOP | g.LEFT);
g.drawImage(title, title_x,
( (height - title.getHeight() + fontHeight) / 2),
g.TOP | g.LEFT);
if (title_x >= (width - title.getWidth())) {
title_x -= 2;
}
else {
gameSubStatus++;
ictimer.timeCounter = 0;
g.setColor(0x00);
g.fillRect(0, 0, width,
( (height - title.getHeight() + fontHeight) / 2 - 1));
}
break;
case 12:
g.setColor(0xff, 0xff, 0xfe);
g.setColor(fadeCol, fadeCol, fadeCol);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,
Font.SIZE_MEDIUM));
g.drawString("我们迎战吧!", width / 2,
(height - title.getHeight() - fontHeight) / 2 - 3,
g.TOP | g.HCENTER);
if (ictimer.timeCounter >= 2) {
if (fadeCol > 0) {
fadeCol -= 4;
}
else {
title_h = 0;
ictimer.timeCounter = 0;
gameSubStatus += 2;
ictimer.timeCounter = 0;
}
}
break;
case 13:
/* case 14:
if ( ictimer.timeCounter >= 2 ){
g.setColor(0x0);
g.fillRect(0, (height-title.getHeight())/2, width, title_h);
g.fillRect(0, ((height+title.getHeight())/2+fontHeight-title_h), width, title_h);
if ( title_h <= (title.getHeight()/2) ){
title_h += 5;
}
else {
title = null;
gameSubStatus ++;
}
}
break;*/
case 14:
if (ictimer.timeCounter >= 1) {
logo = null;
ic = null;
ictimer.timeCounter = 0;
gameStatus = 2;
gameSubStatus = 1;
}
default:
break;
}
}
private void introPaint(Graphics g) {
int i, j, lev;
boolean samePas = false;
switch (gameSubStatus) {
case 1:
// Load the title image
try {
title = Image.createImage("/title.png");
}
catch (Exception exception) {
System.out.println(exception);
}
gameSubStatus++;
//Test
g.setColor(0x0);
g.fillRect(0, 0, width, height);
//Test
title_y = title.getHeight() / 2;
title_h = 0;
break;
case 2:
g.setColor(0xffffff);
g.fillRect(0, (height - title.getHeight()) / 6 + title_y,
(width - title.getWidth()) / 2, title_h);
g.fillRect( (width + title.getWidth()) / 2,
(height - title.getHeight()) / 6 + title_y,
(width - title.getWidth()) / 2, title_h);
g.translate( (width - title.getWidth()) / 2,
(height - title.getHeight()) / 6);
g.setClip(0, title_y, title.getWidth(), title_h);
g.drawImage(title, 0, 0, g.TOP | g.LEFT);
if (title_h < title.getHeight()) {
title_y -= 2;
title_h += 4;
}
else {
gameSubStatus++;
ictimer.timeCounter = 0;
}
break;
case 3:
g.drawImage(title, (width - title.getWidth()) / 2,
(height - title.getHeight()) / 6, g.TOP | g.LEFT);
g.setColor(0x00, 0x00, 0x00);
g.fillRect(width / 2 - 50,
(height - title.getHeight()) / 3 + title.getHeight(), 100,
fontHeight * 3);
switch (gameSelect) {
case 1:
g.setColor(0xfe, 0x3f, 0x00);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,
Font.SIZE_MEDIUM));
g.drawString("游戏开始", width / 2,
(height - title.getHeight()) / 3 + title.getHeight(),
g.TOP | g.HCENTER);
g.setColor(0x00, 0xfe, 0xfe);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,
Font.SIZE_MEDIUM));
g.drawString("继续游戏", width / 2,
(height - title.getHeight()) / 3 + title.getHeight() +
fontHeight, g.TOP | g.HCENTER);
break;
case 2:
g.setColor(0x00, 0xfe, 0xfe);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,
Font.SIZE_MEDIUM));
g.drawString("游戏开始", width / 2,
(height - title.getHeight()) / 3 + title.getHeight(),
g.TOP | g.HCENTER);
g.setColor(0xfe, 0x3f, 0x00);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,
Font.SIZE_MEDIUM));
g.drawString("继续游戏", width / 2,
(height - title.getHeight()) / 3 + title.getHeight() +
fontHeight, g.TOP | g.HCENTER);
default:
break;
}
break;
case 4: // New game
g.setColor(0x0);
g.fillRect(0, 0, width, height);
level = 1;
life = 3;
initLevel();
setLevel(level);
gameStatus = 3;
gameSubStatus = 1;
break;
case 5: // password
g.setColor(0x0);
g.fillRect(0, 0, width, height);
// Load the title image
try {
title = null;
logo = Image.createImage("/bg_t.png");
ic = Image.createImage(160, 140);
G = ic.getGraphics();
for (i = 0; i < (160 / logo.getWidth()); i++) {
for (j = 0; j < (140 / logo.getHeight()); j++) {
G.drawImage(logo, i * logo.getWidth(), j * logo.getHeight(), 20);
}
}
logo = null;
G = null;
}
catch (Exception exception) {
System.out.println(exception);
}
g.drawImage(ic, (width - ic.getWidth()) / 2,
(height - ic.getHeight()) / 2, g.TOP | g.LEFT);
for (i = 0; i < 3; i++) {
g.setColor(0x7f + i * 0x40, 0x7f + i * 0x40, 0x7f + i * 0x40);
// g.drawRect( 15+i, 12+height/3+i, width-20-i*2, height/4-i*2);
g.drawRect(45 + i, 15 + height / 3 + i, width - 90 - i * 2,
height / 4 - 3 - i * 2);
}
g.setColor(0);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,
Font.SIZE_MEDIUM));
g.drawString("输入你的过关密码", width / 2, height / 4, g.TOP | g.HCENTER);
password[0] = 'A';
password[1] = 'A';
password[2] = 'A';
password[3] = 'A';
passPos = 1;
gameSubStatus++;
break;
case 6:
g.setClip(width / 2 - 40, height / 2, 80, fontHeight);
g.drawImage(ic, (width - ic.getWidth()) / 2,
(height - ic.getHeight()) / 2, g.TOP | g.LEFT);
g.setColor(0x00, 0x00, 0xff);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,
Font.SIZE_SMALL));
if (passPos == 1) {
g.setColor(0xfe, 0x3f, 0x00);
}
else {
g.setColor(0xff, 0xff, 0xfe);
}
g.drawString("" + password[0], width / 2 - 20, height / 2,
g.TOP | g.HCENTER);
if (passPos == 2) {
g.setColor(0xfe, 0x3f, 0x00);
}
else {
g.setColor(0xff, 0xff, 0xfe);
}
g.drawString("" + password[1], width / 2 - 10, height / 2,
g.TOP | g.HCENTER);
if (passPos == 3) {
g.setColor(0xfe, 0x3f, 0x00);
}
else {
g.setColor(0xff, 0xff, 0xfe);
}
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -