📄 level.java
字号:
chances_size = LEVELS[i];
while(index_1 < index_2 + chances_size) {
s_chance_creatures[index_1] = (byte)(i - start);
index_1++;
}
index_2 = index_1;
}
chances_size = 0;
start = end;
end += Critter.ALL_ITEMS;
for(int i = start; i < end; i++) {
chances_size += LEVELS[i];
}
s_chance_items = new byte [chances_size];
index_1 = 0;
index_2 = 0;
for(int i = start; i < end; i++) {
chances_size = LEVELS[i];
while(index_1 < index_2 + chances_size) {
s_chance_items[index_1] = (byte)(i - start);
index_1++;
}
index_2 = index_1;
}
//Engine.printArray(s_chance_creatures);
//Engine.printArray(s_chance_items);
}
else if(s_type == TYPE_SURVIVAL) {
byte [] tmp_critters_1 = new byte[SURVIVAL_BASICS];
byte [] tmp_critters_2 = new byte[SURVIVAL_REST];
byte [] tmp_items = new byte[SURVIVAL_ITEMS];
int critter_counter = 0, items_counter = 0;
for(critter_counter = critter_counter; critter_counter < SURVIVAL_GREENS; critter_counter++) tmp_critters_1[critter_counter] = Critter.CREATURE_GREEN;
for(critter_counter = critter_counter; critter_counter < SURVIVAL_REDS; critter_counter++) tmp_critters_1[critter_counter] = Critter.CREATURE_RED;
for(critter_counter = critter_counter; critter_counter < SURVIVAL_BLUES; critter_counter++) tmp_critters_1[critter_counter] = Critter.CREATURE_BLUE;
critter_counter = 0;
if(s_number > SURVIVAL_INTERVAL_1) {
tmp_critters_2[critter_counter++] = Critter.CREATURE_TNT;
tmp_critters_2[critter_counter++] = Critter.CREATURE_TOXIC;
}
if(s_number > SURVIVAL_INTERVAL_2) {
tmp_items[items_counter++] = Critter.ITEM_WATERMELON;
s_board_timer_bonus_original = s_board_timer_bonus = SURVIVAL_BONUS_1;
tmp_critters_2[critter_counter++] = Critter.CREATURE_BLOCKER;
}
if(s_number > SURVIVAL_INTERVAL_3) {
tmp_items[items_counter++] = Critter.ITEM_ONION;
s_board_timer_bonus_original = SURVIVAL_BONUS_2;
s_oranges = SURVIVAL_ORANGES;
}
if(s_number > SURVIVAL_INTERVAL_4) {
tmp_items[items_counter++] = Critter.ITEM_PEPPER;
s_board_timer_bonus_original = SURVIVAL_BONUS_3;
s_purples = SURVIVAL_PURPLES;
}
if(s_number > SURVIVAL_INTERVAL_5) {
tmp_critters_2[critter_counter++] = Critter.CREATURE_WILDCARD;
}
s_chance_creatures = new byte[SURVIVAL_BASICS + critter_counter];
s_chance_items = new byte[items_counter];
System.arraycopy(tmp_critters_1, 0, s_chance_creatures, 0, tmp_critters_1.length);
System.arraycopy(tmp_critters_2, 0, s_chance_creatures, SURVIVAL_BASICS, critter_counter);
System.arraycopy(tmp_items, 0, s_chance_items, 0, items_counter);
Engine.printArray(s_chance_creatures);
Engine.printArray(s_chance_items);
}
else {
s_chance_creatures = null;
s_chance_items = null;
}
}
// create the game board.
public static void initBoard() {
/*
s_board = new Critter[MENU_BOARD_H][MENU_BOARD_W];
SQUARE_W = MENU_SQUARE_W;
SQUARE_H = MENU_SQUARE_H;
s_board_x = MENU_BOARD_ANCHOR;
*/
s_board = new Critter[GAME_BOARD_H][GAME_BOARD_W];
SQUARE_W = GAME_SQUARE_W;
SQUARE_H = GAME_SQUARE_H;
s_board_x = GAME_BOARD_ANCHOR;
SQUARE_HALF_W = (short)(SQUARE_W >> 1);
SQUARE_HALF_H = (short)(SQUARE_H >> 1);
if(s_type == TYPE_ADVENTURE || s_type == TYPE_SURVIVAL) s_board_y = (short)-SQUARE_H; // + BOARD_TOP_PADDING;
else if(s_type == TYPE_MAINMENU) s_board_y = 0; //s_board_y = MAIN_MENU_OFFSET;
else s_board_y = 0;
s_board_state &= ~(BOARD_ALL_STATES);
seedBoard();
}
// init the extras array.
public static void initExtras() {
s_extras = new Critter[MAX_EXTRAS];
for(int i = MAX_EXTRAS - 1; i >= 0; i--) {
s_extras[i] = null;
}
}
// initialize and load -- if necessary -- the appropriate background.
public static void initBackground() {
//#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
int bg = (s_type != TYPE_ADVENTURE ? s_type - BG_TYPE_OFFSET : s_type + s_number / BG_ADVENTURE_DIVISOR - BG_TYPE_OFFSET);
if (s_type == TYPE_TUTORIAL) bg = s_type - BG_TYPE_OFFSET;
int index = s_background + BG_TYPE_OFFSET;
if(bg != s_original_background) {
if(index >= 0 && index < Engine.S_IMAGES.length) Engine.S_IMAGES[index] = null;
if(Engine.S_IMAGES[Engine.IMAGE_SPLASHES] != null) {
Engine.S_IMAGES[Engine.IMAGE_SPLASHES] = null;
Engine.gc();
}
Engine.S_IMAGES[bg + BG_TYPE_OFFSET] = Engine.loadImage(bg + BG_TYPE_OFFSET);
Engine.gc();
}
s_original_background = s_background = (byte)bg;
//#else
//# s_original_background = s_background = (byte)(s_type - BG_TYPE_OFFSET);
//# if(s_type == TYPE_MAINMENU) {
//# Engine.S_IMAGES[Engine.IMAGE_BG_ADVENTURE_1] = null;
//# if(Engine.S_IMAGES[Engine.IMAGE_BG_TITLE] == null) {
//# Engine.gc();
//# Engine.S_IMAGES[Engine.IMAGE_BG_TITLE] = Engine.loadImage(Engine.IMAGE_BG_TITLE);
//# }
//# }
//# else {
//# Engine.S_IMAGES[Engine.IMAGE_BG_TITLE] = null;
//# if(Engine.S_IMAGES[Engine.IMAGE_BG_ADVENTURE_1] == null) {
//# Engine.gc();
//# Engine.S_IMAGES[Engine.IMAGE_BG_ADVENTURE_1] = Engine.loadImage(Engine.IMAGE_BG_ADVENTURE_1);
//# }
//# }
//#endif
}
/****************************************************************************
** Miscellaneous Methods
***************************************************************************/
// process the level's functionality.
public static void process() {
if(s_paused) return;
s_clock++;
// process particles
Particles.process();
switch(s_type) {
//#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
case TYPE_MAINMENU:
if(Engine.getRandom(20)==0) Particles.create(Particles.TYPE_FALLING_LEAF, Particles.LAYER_FOREGROUND, (Engine.getRandom(Engine.SCREEN_WIDTH))<<Engine.FP_SHIFT, (Engine.getRandom(Engine.SCREEN_HALF_HEIGHT>>1))<<Engine.FP_SHIFT);
break;
//#endif
case TYPE_ADVENTURE:
switch(s_state) {
case STATE_INTRO:
s_state = STATE_BIGGS_FALL;
break;
case STATE_BIGGS_FALL:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -