📄 engine.java
字号:
//# Level.FOOD_BAR_HEIGHT = (short)(74);
//# Level.FOOD_BAR_MULTIPLYER = 1;
//# Level.GROUND = (short)(Engine.SCREEN_HEIGHT - 9);
//#ifndef NO_BOARD_BUMPS
//# Level.BUMP_OFFSET = (byte)2;
//# Level.MAX_BUMP_OFFSET = (byte)2;
//#endif
//# Critter.TIME_COIN_DIVISOR = (COORDS[Coords.COIN_IDLE_1][HEIGHT] << FP_SHIFT) / Critter.TIME_COIN_DURATION;
//# Critter.S_BOX = new byte [] { (byte)-6, (byte)-4, (byte)12, (byte)8, };
//# Avatar.TONGUE_X = (byte)(-2);
//# Avatar.TONGUE_Y = (byte)(-2);
//# Avatar.TONGUE_W = (byte)(3);
//# Avatar.BIGGS_BOARD_Y = (short)(Engine.SCREEN_HEIGHT - 40);
//# Avatar.BIGGS_GROUND_Y = (short)(Engine.SCREEN_HEIGHT - 14);
//# Avatar.BIGGS_SKY_Y = (byte)(30);
//# Avatar.S_BOX = new byte [] { (byte)-5, (byte)-10, (byte)10, (byte)22 };
//# Avatar.BIGGS_TONGUE_Y = (byte)(2);
//# Menus.MENU_MAIN_Y_MID = SCREEN_HALF_HEIGHT + 20;
//# Menus.MENU_STATS_Y_MID = SCREEN_HALF_HEIGHT + 10;
//# Menus.MENU_WIDTH = SCREEN_WIDTH - 16;
//# Menus.MENU_ITEM_TOGGLE_WIDTH = SCREEN_WIDTH - 40;
//# Menus.MENU_ITEM_STAT_WIDTH = SCREEN_WIDTH - 30;
//# Menus.MENU_ITEM_TEXT_WIDTH = SCREEN_WIDTH - 30;
//# Menus.MENU_ITEM_TEXT_HEIGHT = (CUSTOM_FONT_NEWLINE_HEIGHT * Menus.NUM_TEXT_LINES)+1;
//# Menus.MENU_ITEM_TEXT_FULL_WIDTH = SCREEN_WIDTH - 10;
//# Menus.MENU_ITEM_TEXT_FULL_HEIGHT = SCREEN_HEIGHT - 20;
//# Menus.MENU_ITEM_TEXT_END_WIDTH = Menus.MENU_ITEM_TEXT_FULL_WIDTH;
//# Menus.MENU_ITEM_TEXT_END_HEIGHT = Menus.MENU_ITEM_TEXT_HEIGHT + Menus.MENU_ITEM_TEXT_HEIGHT/2;
//#endif
LOADING_BAR_DIVISOR = LOADING_BAR_WIDTH / ASSETS_TOTAL;
LOADING_BAR_TEXT_ANCHOR = 3;
TEXT_EFFECT_CUTOUT_LENGTH = SCREEN_WIDTH;
Level.s_board_bumps = new int[2][Level.GAME_BOARD_W];
Level.DESCENT_OFFSET = (short)(Level.GAME_SQUARE_H / 5);
//Level.DESCENT_OFFSET = (short)(SCREEN_HEIGHT / 65);
//Level.DESCENT_OFFSET = (short)1;
Level.ONION_ASCENT_OFFSET = (short)(SCREEN_HEIGHT / 69);
Level.BOARD_TOP_PADDING = (short)(SCREEN_HEIGHT / 35);
//Level.GAME_BOARD_ANCHOR = (short)((SCREEN_WIDTH - Level.GAME_BOARD_W * Level.GAME_SQUARE_W) / 2 + Level.FOOD_BAR_X + Level.FOOD_BAR_WIDTH + Level.PADDING);
Level.GAME_BOARD_ANCHOR = (short)(BOARD_MARGIN_LEFT+1); // quick fix for now
Level.FOOD_BAR_SQUARE_SIZE = Level.FOOD_BAR_HEIGHT / Level.FOOD_BAR_MAX_SQUARES;
Level.MIN_JEWEL_OFFSET = (short)(SCREEN_HEIGHT / 3);
Level.MAX_JEWEL_OFFSET = (short)(SCREEN_HEIGHT / 2);
Critter.MIN_SPEED_DROP = (byte)(SCREEN_HEIGHT / 17);
Critter.MAX_SPEED_DROP = (byte)(SCREEN_HEIGHT / 11);
Critter.SPEED_BLOCKER_DIE = (byte)(SCREEN_HEIGHT / 11);
Critter.SPEED_CLIMB = (byte)(SCREEN_HEIGHT / 22);
Critter.SPEED_SPAWN_ASCEND = (byte)(SCREEN_HEIGHT / 31);
Critter.SPEED_SPAWN_DROP = (byte)(SCREEN_HEIGHT / 12);
//Critter.SPEED_MIN_JEWEL_DROP = (byte)(SCREEN_HEIGHT / 24);
Critter.SPEED_MIN_JEWEL_DROP = (byte)(SCREEN_HEIGHT / 19);
Critter.SPEED_MAX_JEWEL_DROP = (byte)(SCREEN_HEIGHT / 17);
Avatar.SPEED_DROP = (byte)(SCREEN_HEIGHT / 6);
Avatar.SPEED_SIDEWAYS = (byte)(SCREEN_WIDTH / 12);
Avatar.SPEED_TONGUE = (byte)(SCREEN_HEIGHT / 3);
Avatar.SPEED_BOARD_JUMP = (byte)(SCREEN_HEIGHT / 16);
// Each background you see is a "set". Each "set" is built using a number of "components" that are of various
// types and with various properties.
//#ifndef NO_SCREEN_SHAKING
int shake_offset = MAX_SHAKE;
//#else
//# int shake_offset = 0;
//#endif
//#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Razr
short bg_top_height = COORDS[Coords.JUNGLE_BGTOP_1][HEIGHT];
short bg_mid_height = COORDS[Coords.JUNGLE_BGMID_1][HEIGHT];
short bg_bot_height = COORDS[Coords.JUNGLE_BGBTM_1][HEIGHT];
short bg_fill_height = (short)(SCREEN_HEIGHT - bg_top_height - bg_mid_height - bg_bot_height);
short bg_top_y = 0;
short bg_fill_y = bg_top_height;
short bg_mid_y = (short)(SCREEN_HEIGHT - bg_mid_height - bg_bot_height);
short bg_bot_y = (short)(SCREEN_HEIGHT - bg_bot_height);
Level.s_backgrounds = new short [][][] {
// title.
{
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 226, 237, 170},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, 23, SCREEN_HEIGHT, 207, 224, 183},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 159, 0, 17, SCREEN_HEIGHT, 207, 224, 183},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 6, 0, 1, SCREEN_HEIGHT, 141, 156, 69},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 25, 0, 1, SCREEN_HEIGHT, 141, 156, 69},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_BACK, 0, 0, 1, Coords.TITLE_TOP},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_BACK, 0, (short)(SCREEN_HEIGHT-COORDS[Coords.TITLE_BTM][HEIGHT]), 1, Coords.TITLE_BTM},
},
// tutorial.
{
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 245, 220, 154},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 40, bg_fill_y, 18, bg_fill_height, 227, 188, 113},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 110, bg_fill_y, 19, bg_fill_height, 227, 188, 113},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 0, bg_fill_y, 15, bg_fill_height, 234, 206, 149},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 73, bg_fill_y, 19, bg_fill_height, 234, 206, 149},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 151, bg_fill_y, 12, bg_fill_height, 234, 206, 149},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.TUTORIAL_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 1, Coords.TUTORIAL_BGBTM_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, (short)(-2), (short)(SCREEN_HEIGHT - bg_mid_height - bg_bot_height +12), 7, Coords.ELDERBIGGS_IDLE_1, Coords.ELDERBIGGS_IDLE_2, Coords.ELDERBIGGS_IDLE_3, Coords.ELDERBIGGS_IDLE_4, Coords.ELDERBIGGS_IDLE_4, Coords.ELDERBIGGS_IDLE_3, Coords.ELDERBIGGS_IDLE_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.TUTORIAL_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, (short)(bg_fill_y-MAX_SHAKE), Level.GAME_SQUARE_W, (short)(bg_fill_height+MAX_SHAKE), 194, 50, 135},
},
// puzzle.
{
{Level.BG_TYPE_GRADIENT_V, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, bg_bot_y, 255,228,159, 255,236,184},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.PUZZLE_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 4, Coords.PUZZLE_BGBTM_1, Coords.PUZZLE_BGBTM_2, Coords.PUZZLE_BGBTM_3, Coords.PUZZLE_BGBTM_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.PUZZLE_BGPIECE_2][HEIGHT]), 1, Coords.PUZZLE_BGPIECE_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.PUZZLE_BGPIECE_2][HEIGHT] - COORDS[Coords.PUZZLE_BGPIECE_1][HEIGHT]), 1, Coords.PUZZLE_BGPIECE_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.PUZZLE_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, (short)(bg_fill_y-MAX_SHAKE), Level.GAME_SQUARE_W, (short)(bg_fill_height+MAX_SHAKE), 118,95,193},
},
// time trial.
{
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, bg_bot_y, 196,204,157},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 16, bg_fill_y, 18, (short)(SCREEN_HEIGHT), 164, 178, 128},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 81, bg_fill_y, 21, (short)(SCREEN_HEIGHT), 164, 178, 128},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 160, bg_fill_y, 16, (short)(SCREEN_HEIGHT), 164, 178, 128},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 115, bg_fill_y, 17, (short)(SCREEN_HEIGHT), 178, 186, 140},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 53, bg_fill_y, 11, bg_fill_height, 186, 194, 148},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 142, bg_fill_y, 8, bg_fill_height, 186, 194, 148},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 0, bg_fill_y, 7, bg_fill_height, 114, 64, 60},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 7, bg_fill_y, 4, bg_fill_height, 127, 78, 73},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 11, bg_fill_y, 5, bg_fill_height, 137, 86, 78},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.TIMETRAIL_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 4, Coords.TIMETRAIL_BGBTM_1, Coords.TIMETRAIL_BGBTM_2, Coords.TIMETRAIL_BGBTM_3, Coords.TIMETRAIL_BGBTM_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.TIMETRAIL_PIECE_1][HEIGHT]), 1, Coords.TIMETRAIL_PIECE_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.TIMETRAIL_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, (short)(bg_fill_y-MAX_SHAKE), Level.GAME_SQUARE_W, (short)(bg_fill_height+MAX_SHAKE), 194, 83, 149},
},
// survival mode.
{
{Level.BG_TYPE_GRADIENT_V, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 245,181,164, 255,201,184},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 4, Coords.SURVIVAL_BGMID_1, Coords.SURVIVAL_BGMID_2, Coords.SURVIVAL_BGMID_3, Coords.SURVIVAL_BGMID_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 1, Coords.SURVIVAL_BGBTM_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.SURVIVAL_BGPIECE_1][HEIGHT]), 1, Coords.SURVIVAL_BGPIECE_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.SURVIVAL_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, (short)(bg_fill_y-MAX_SHAKE), Level.GAME_SQUARE_W, (short)(bg_fill_height+MAX_SHAKE), 194,50,135},
},
// extra mode #1.
{
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 255, 255, 255},
},
// adventure #1, jungle.
{
//{Level.BG_TYPE_GRADIENT_V, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 208, 200, 126, 232, 220, 151},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 208, 200, 126},
{Level.BG_TYPE_SUNBEAM, Level.BG_LAYER_BACK, 50, 0, 16, 13, 232, 220, 151, 1, 4},
{Level.BG_TYPE_SUNBEAM, Level.BG_LAYER_BACK, 70, 0, 12, -7, 232, 220, 151, 2, 2},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 46, bg_fill_y, 20, bg_fill_height, 175, 183, 120},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 94, bg_fill_y, 10, bg_fill_height, 175, 183, 120},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 123, bg_fill_y, 20, bg_fill_height, 175, 183, 120},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 162, bg_fill_y, 14, bg_fill_height, 187, 192, 124},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 0, bg_fill_y, 6, bg_fill_height, 137, 106, 78},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 6, bg_fill_y, 3, bg_fill_height, 154, 115, 85},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 9, bg_fill_y, 4, bg_fill_height, 185, 133, 94},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.JUNGLE_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 4, Coords.JUNGLE_BGBTM_1, Coords.JUNGLE_BGBTM_2, Coords.JUNGLE_BGBTM_3, Coords.JUNGLE_BGBTM_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.JUNGLE_BGPIECE_1][HEIGHT]), 1, Coords.JUNGLE_BGPIECE_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.JUNGLE_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, (short)(bg_fill_y-MAX_SHAKE), Level.GAME_SQUARE_W, (short)(bg_fill_height+MAX_SHAKE), 65, 112, 51},
},
// adventure #2, jungle 2.
{
{Level.BG_TYPE_SOLID, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 245, 220, 154},
{Level.BG_TYPE_SUNBEAM, Level.BG_LAYER_BACK, 50, 0, 16, 13, 247,230,184, 1, 4},
{Level.BG_TYPE_SUNBEAM, Level.BG_LAYER_BACK, 70, 0, 12, -7, 247,230,184, 2, 2},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 0, bg_fill_y, 47, bg_fill_height, 234,206,149},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 75, bg_fill_y, 7, bg_fill_height, 234,206,149},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 109, bg_fill_y, 8, bg_fill_height, 234,206,149},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 137, bg_fill_y, 39, bg_fill_height, 234,206,149},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 15, bg_fill_y, 14, bg_fill_height, 227,193,124},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 154, bg_fill_y, 8, bg_fill_height, 227,193,124},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 0, bg_fill_y, 5, bg_fill_height, 126, 62, 53},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 5, bg_fill_y, 4, bg_fill_height, 134, 67, 56},
{Level.BG_TYPE_SOLID, Level.BG_LAYER_MID, 9, bg_fill_y, 3, bg_fill_height, 154, 83, 63},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 4, Coords.JUNGLE2_BGBTM_1, Coords.JUNGLE2_BGBTM_2, Coords.JUNGLE2_BGBTM_3, Coords.JUNGLE2_BGBTM_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.JUNGLE2_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.JUNGLE2_PIECE_1][HEIGHT]), 1, Coords.JUNGLE2_PIECE_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.JUNGLE2_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, bg_fill_y, Level.GAME_SQUARE_W, bg_fill_height, 152,114,163},
},
// adventure #3, beach
{
{Level.BG_TYPE_GRADIENT_V, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 125,204,224, 158,229,249},
{Level.BG_TYPE_CLOUD, Level.BG_LAYER_BACK, 60, 120, 4, Coords.CLOUD_2},
{Level.BG_TYPE_CLOUD, Level.BG_LAYER_BACK, 15, 124, 3, Coords.CLOUD_3},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 4, Coords.BEACH_BGBTM_1, Coords.BEACH_BGBTM_2, Coords.BEACH_BGBTM_3, Coords.BEACH_BGBTM_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.BEACH_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.BEACH_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, bg_fill_y, Level.GAME_SQUARE_W, bg_fill_height, 75,123,61},
},
// adventure #4, mountain.
{
{Level.BG_TYPE_GRADIENT_V, Level.BG_LAYER_BACK, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 251,201,197, 248,219,217},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_mid_y, 1, Coords.MT_BGMID_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, bg_bot_y, 4, Coords.MT_BGBTM_1, Coords.MT_BGBTM_2, Coords.MT_BGBTM_3, Coords.MT_BGBTM_2},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, (short)(bg_mid_y - COORDS[Coords.MT_BGPIECE_1][HEIGHT]), 1, Coords.MT_BGPIECE_1},
{Level.BG_TYPE_IMAGE, Level.BG_LAYER_MID, 0, 0, 1, Coords.MT_BGTOP_1},
{Level.BG_TYPE_VINES, Level.BG_LAYER_MID, BOARD_MARGIN_LEFT, (short)(bg_fill_y-MAX_SHAKE), Level.GAME_SQUARE_W, (short)(bg_fill_height+MAX_SHAKE), 51,134,109},
},
// adventure #5, cave.
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -