📄 puyopuyo2.java
字号:
}
static int Game_Main()
{
boolean flag = false;
switch(stat_cnt)
{
case 0: // '\0'
if(kar_anime == 0)
{
GameImage1_Init();
if(nowLevel == 0)
{
rest = next[nowLevel];
add_exp = 0;
exp = 0;
kar_anime = 35;
stat_cnt = 1;
}
} else
if(kar_anime == 35)
stat_cnt = 1;
break;
case 1: // '\001'
if(Init_Select())
{
roulette_speed = 0;
stat_cnt = 2;
}
break;
case 2: // '\002'
flag = true;
if(roulette_speed++ > 10)
{
roulette_speed = 0;
stat_cnt = 3;
}
break;
case 3: // '\003'
if(start_cnt++ == 20)
{
Init_Game();
stat_cnt = 4;
start_cnt = 100;
intro_cnt = 0;
intro_page = 0;
}
break;
case 4: // '\004'
if(start_cnt == 99)
{
stat_cnt = 5;
start_cnt = 30;
}
break;
case 5: // '\005'
if(--start_cnt == 25)
Draw_flag = true;
if(start_cnt <= 0)
{
field[0].start();
field[1].start();
stopflag = false;
Draw_flag = true;
playBgm(1);
stat_cnt = 6;
}
break;
case 6: // '\006'
if(check_pause())
return -2;
if(!key_pause)
{
int i = 0;
do
{
if(i >= 2)
break;
int j = keyRepeat & 0x6050;
if((keyPush & 0x11c25) != 0)
j = keyData & 0x6050;
if(!field[i].run(keyPush & 0x11c25 | j | keyData & 0x8100))
{
winner = i ^ 0x1;
field[winner].set_win();
stopBgm();
stopflag = true;
if(winner == 0)
clear_enemy[enemyNo] = true;
select_cnt = 0;
start_cnt = 0;
stat_cnt = 7;
gc.setColor(0);
gc.fillRect(offsetX, offsetY + 151, 150, 16);
break;
}
i++;
} while(true);
}
break;
case 7: // '\007'
field[winner ^ 0x1].run(0);
if(winner == 0)
{
if(!field[winner].run(keyPush))
return winner;
} else
if(!field[winner].run(keyPush) || (keyPush & 0x10c20) != 0 && my_scoref)
return winner;
break;
}
if(stat_cnt < 4)
draw_select(flag);
else
draw_game();
return -1;
}
static boolean check_pause()
{
if(!key_pause)
{
if((keyPush & 0x20000) != 0)
{
pauseBgm();
key_pause = true;
SaveData(false, false);
field[0].pause_flag = true;
field[1].pause_flag = true;
Draw_flag = true;
}
} else
if((keyPush & 0x20000) != 0)
try
{
key_pause = false;
resumeBgm();
field[0].pause_flag = false;
field[1].pause_flag = false;
Draw_flag = true;
System.gc();
}
catch(Throwable throwable) { }
else
if((keyPush & 0x40000) != 0)
{
try
{
key_pause = false;
gc.setColor(0);
gc.fillRect(offsetX, offsetY + 151, 150, 16);
field[0].pause_flag = false;
field[1].pause_flag = false;
Draw_flag = true;
SaveData(false, true);
Init_Over();
}
catch(Throwable throwable1) { }
return true;
}
return false;
}
static void Init_Over()
{
nowLevel = 0;
enemyNo = 0;
for(int i = 0; i < 17; i++)
clear_enemy[i] = false;
class_clear = 0;
exp = 0;
rest = next[nowLevel];
add_exp = 0;
my_score = 0;
}
private static void Init_Game()
{
int ai[] = new int[11];
GameImage2_Init(1);
GameImage2_Init(2);
ai = enemy_argo[enemyNo];
for(int i = 0; i < 128; i++)
next_flag[i] = false;
b_my_score = my_score;
field[0].init(enemy_level[enemyNo], my_score, null);
field[1].init(enemy_level[enemyNo], 0, ai);
Draw_flag = true;
select_cnt = 0;
}
public static int get_next(int i, int ai[])
{
if(next_flag[i])
{
next_flag[i] = false;
} else
{
next_buf[i][0] = (byte)rnd(5);
next_buf[i][1] = (byte)rnd(5);
next_flag[i] = true;
}
ai[0] = next_buf[i][0];
ai[1] = next_buf[i][1];
return i + 1 & 0x7f;
}
public static void totalScore(int i, boolean flag)
{
if(i > 0x3b9ac9ff)
i = 0x3b9ac9ff;
if(!my_scoref)
{
class_clear = 0;
my_scoref = true;
my_score = i;
st_score = i - b_my_score;
if(flag && nowLevel == 4)
{
nowLevel++;
} else
{
if(rest <= st_score)
if(flag)
{
if(nowLevel < 3)
{
rest += (next[nowLevel + 1] - next[nowLevel]) + (add_exp != 0 ? add_exp - 1 : 0);
add_exp = 0;
}
nowLevel++;
kar_anime = 0;
kar_jump = 0;
} else
{
st_score = rest - 1;
}
if(nowLevel < 4)
{
if((rest -= st_score) < 0)
{
add_exp = rest;
rest = 1;
}
exp += st_score;
for(int j = 0; j < enemy_class[nowLevel].length; j++)
if(!clear_enemy[enemy_class[nowLevel][j]])
class_clear++;
if(class_clear == 0 && ++nowLevel < 4)
{
rest = next[nowLevel] - next[nowLevel - 1];
exp = next[nowLevel - 1];
kar_anime = 0;
kar_jump = 0;
}
}
}
}
}
private static boolean Init_Select()
{
boolean flag = false;
if(((keyPush & 0x10c20) != 0 || rnd(10) == 0 && roulette_speed > 80 || class_clear == 1 || nowLevel == 4) && !clear_enemy[enemyNo])
{
my_scoref = false;
return true;
}
if(roulette_speed < enemy_class[nowLevel].length * 2)
flag = true;
else
if(roulette_speed < enemy_class[nowLevel].length * 6)
{
if(roulette_speed % 2 == 0)
flag = true;
} else
if(roulette_speed < enemy_class[nowLevel].length * 12)
{
if(roulette_speed % 3 == 0)
flag = true;
} else
if(roulette_speed % 4 == 0)
flag = true;
roulette_speed++;
if(flag)
{
do
{
enemyNo = enemy_class[nowLevel][select_cnt];
if(select_cnt == enemy_class[nowLevel].length - 1)
select_cnt = 0;
else
select_cnt++;
} while(clear_enemy[enemyNo]);
boolean flag1 = false;
}
if(class_clear == 1)
{
my_scoref = false;
return true;
} else
{
return false;
}
}
boolean Title_Main()
{
if(Draw_flag)
{
Draw_flag = false;
c_Screen();
if(!once)
{
playBgm(0);
once = true;
}
if(title_mode >= 1)
Draw_BackGraund();
switch(title_mode)
{
default:
break;
case 0: // '\0'
gc.drawImage(img_title[0], offsetX, offsetY, 20);
drawCenter(0xffff00, "Press 5 Key To Start", 120 - font.getHeight());
break;
case 1: // '\001'
drawCenter(0xffff80, "BEST RECORD", 12);
switch(select_mode)
{
default:
break;
case 0: // '\0'
drawCenter(0xc0c040, "SCORE", 32);
drawString(0xe0e080, "1st", 16, 50);
drawString(0xe0e080, "2nd", 16, 68);
drawString(0xe0e080, "3rd", 16, 86);
drawString(0xe0e080, "4th", 16, 104);
drawString(0xe0e080, "5th", 16, 122);
for(int i = 0; i < 5; i++)
drawString(0xe0ffe0, "" + hi_score[i], 130, 50 + i * 18, 24);
break;
}
break;
case 2: // '\002'
drawCenter(0xffff00, "HISTORY", 12);
drawCenter(0xffffff, "\"Puyo Puyo 2\"", 35);
drawCenter(0xffffff, "originally debuted", 52);
drawCenter(0xffffff, "in 1994. All the", 69);
drawCenter(0xffffff, "fun you remember", 86);
drawCenter(0xffffff, "with new power-up", 103);
drawCenter(0xffffff, "features.", 120);
break;
case 3: // '\003'
drawCenter(0xffff00, "How To Play", 12);
drawCenter(0xffffff, "Enter,*,#,5", 35);
drawCenter(0xffffff, " .......Rotate Right", 52);
drawCenter(0xffffff, "Up,2,0 ..Rotate Left", 69);
drawCenter(0xffffff, "Down,8 ..Drop", 86);
drawCenter(0xffffff, "Left,4,Right,6 ..Move", 103);
drawCenter(0xffffff, "1 .. Sound ON/OFF", 120);
break;
}
gc.setColor(0);
gc.fillRect(offsetX, 151 + offsetY, 150, 16);
gc.setColor(0xffffff);
gc.drawString("EXIT", 145 + offsetX, offsetY + 151, 24);
System.gc();
}
if((commonCounter & 0x10) == 0)
{
drawSprite(img_cur_arrow, 0, 75, 10, 10, 0);
drawSprite(img_cur_arrow, 140, 75, 10, 10, 1);
} else
{
if(title_mode == 0)
{
gc.setClip(offsetX, offsetY + 75, 10, 10);
gc.drawImage(img_title[0], offsetX, offsetY, 20);
gc.setClip(140 + offsetX, offsetY + 75, 10, 10);
gc.drawImage(img_title[0], offsetX, offsetY, 20);
gc.setClip(offsetX, offsetY, 150, 170);
} else
{
gc.setColor(0xff8040);
gc.fillRect(offsetX, offsetY + 75, 1, 10);
gc.setColor(0x804020);
gc.fillRect(1 + offsetX, offsetY + 75, 1, 10);
gc.setColor(0x40a040);
gc.fillRect(2 + offsetX, offsetY + 75, 8, 10);
gc.setColor(0x40a040);
gc.fillRect(140 + offsetX, offsetY + 75, 8, 10);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -