📄 globals.java
字号:
package com.centerscore.game;
import javax.microedition.lcdui.*;
/* Start Modified 23-04-2003 for chinese support */
public class Globals {
/* End Modified 23-04-2003 */
static final int GFX_TOPLEFT = Graphics.TOP | Graphics.LEFT;
/* Start Modified 31-03-2003 for first time selector slow */
static int SCREEN_W = 128;
static int SCREEN_H = 127;
/* End Modified 31-03-2003 */
/* Start Addition 23-04-2003 for chinese support */
static Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
/* End Addition 23-04-2003 */
/* Start Addition 23-04-2003 for chinese support */
static String[] chineseString;
/* End Addition 23-04-2003 */
/* Start Addition 23-04-2003 for chinese support */
static final byte MENU_TXT_OFFSET = 0;
static final byte HIS_TXT_OFFSET = 7;
static final byte HELP_TXT_OFFSET = 25;
static final byte CREDITS_TXT_OFFSET = 33;
static final byte MISC_TXT_OFFSET = 42;
static final byte COMS_TXT_OFFSET = 50;
static final byte TOT_CHIN_STRINGS = 54;
/* End Addition 23-04-2003 */
static final short GAME_WIDTH = 120;
static final short GAME_HEIGHT = 100;
static int KEY_1_LL = Canvas.KEY_NUM7;
static int KEY_1_LR = Canvas.KEY_NUM9;
static int KEY_1_UL = Canvas.KEY_NUM1;
static int KEY_1_UR = Canvas.KEY_NUM3;
static int KEY_CHEAT_KEY = Canvas.KEY_STAR;
/* Start Addition 14-05-2003 for key 4,6 */
static int KEY_1_DDL = Canvas.KEY_NUM4;
static int KEY_1_DDR = Canvas.KEY_NUM6;
static Font engF = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL);
/* End Addition 14-05-2003 */
static final byte QBERT_DIMENSIONS = 7;
static final byte MAX_CUBES = 28;
static final int[] CHEAT_KEY_ARRAY = {Canvas.KEY_NUM7,
Canvas.KEY_STAR,
Canvas.KEY_NUM2,
Canvas.KEY_NUM3,
Canvas.KEY_NUM7,
Canvas.KEY_NUM8};
// main menu
static final byte MAIN_SELECT_START = 1;
/* Start Modified 25-04-2003 for chinese support */
// game menu
static final int GAMEMENU_ELEMENT_HEIGHT = 15;
static final int GAMEMENU_PAUSE_X = 30;
static final int GAMEMENU_PAUSE_Y = 32;
static final int GAMEMENU_QUIT_X = 30;
static final int GAMEMENU_QUIT_Y = 48;
static final int GAMEMENU_SAVE_X = 30;
static final int GAMEMENU_SAVE_Y = 64;
static final int GAMEMENU_BOX_X = 15;
static final int GAMEMENU_BOX_Y = 30;
static final int GAMEMENU_BOX_WIDTH = 90;
static final int GAMEMENU_BOX_HEIGHT = 52;
/* End Modified 25-04-2003 */
static final byte OPTIONS_SELECT_INSTRUCTIONS = 0;
static final byte OPTIONS_SELECT_HI_SCORE = 1;
static final byte OPTIONS_SELECT_SOUND = 2;
static final byte CUBE_WIDTH = 16;
static final byte CUBE_HEIGHT = 16;
static final byte QBERT_WIDTH = 11;
static final byte QBERT_HEIGHT = 11;
static final byte BASE_ENEMIES_PER_STAGE = 4;
static final byte MAX_ENEMIES_ON_A_STAGE = 8;
static final byte SCORE_X = 120;
/* Start Modified 07-05-2003 for chinese support */
static final byte SCORE_Y = 2;
//static final byte SCORE_Y = 5;
/* End Modified 07-05-2003 */
static final byte SCORE_WIDTH = 40;
static final byte SCORE_HEIGHT = 5;
static final byte CHANGE_TO_X = 0;
static final byte CHANGE_TO_Y = 13;
static final byte LEVEL_X = 100;
/* Start Modified 07-05-2003 for chinese support */
static final byte LEVEL_Y = 10;
/* End Modified 07-05-2003 */
static final byte LEVEL_WIDTH = 7;
static final byte LEVEL_HEIGHT = 5;
/* Start Modified 07-05-2003 for chinese support */
static final byte INTRO_LEVEL_X = 40;
static final byte INTRO_LEVEL_Y = 60+5+2;
//static final byte INTRO_LEVEL_X = 37;
//static final byte INTRO_LEVEL_Y = 60+5+5;
/* End Modified 07-05-2003 */
static final byte INTRO_CIRCLE_X = 53;
/* Start Modified 07-05-2003 for chinese support */
static final byte INTRO_CIRCLE_Y = 80+5+2;
//static final byte INTRO_CIRCLE_Y = 80+5+4;
static final byte ROUND_X = 118;
static final byte ROUND_Y = LEVEL_Y+16;
/* End Modified 07-05-2003 */
static final byte ROUND_WIDTH = 7;
static final byte ROUND_HEIGHT = 5;
static final byte INTRO_ROUND_X = 30;
static final byte INTRO_ROUND_Y = 85;
static final byte TIMESTOP_X = 15;
static final byte TIMESTOP_Y = 20;
static final byte UPRIGHT = 0;
static final byte UPLEFT = 1;
static final byte DOWNRIGHT = 2;
static final byte DOWNLEFT = 3;
static final byte QBERT = 0;
static final byte RED = 1;
static final byte COILY = 2;
static final byte GREEN = 3;
static final byte SLICK = 4;
static final byte SAM = 5;
static final byte UGG = 6;
static final byte WRONGWAY = 7;
static final byte PURPLE = 8;
static final byte DISC = 9;
static final int MAX_DISCS = 7;
static final byte PT_CUBE_TO_FINAL_COLOR = 25;
static final byte PT_CUBE_TO_INTERIM_COLOR = 15;
static final short PT_LEVEL_BASE = 1000;
static final byte PT_GREEN_BALL = 100;
static final short PT_SAM_SLICK = 300;
static final short PT_COILY_FALLING = 500;
static final byte QBERT_COLROW_DELAY = 127;
static final byte ENEMY_COLROW_DELAY = 2;
static final int QBERT_START_X = GAME_WIDTH/2 - QBERT_WIDTH/2 -1;
static final int QBERT_START_Y = 18;
static final int ENEMY_START_XL = 46;
static final int ENEMY_START_XR = 62;
static final int ENEMY_START_Y = 30;
static final int ENEMY_BOTTOM_RIGHT_X = 94 + 12;
static final int ENEMY_BOTTOM_RIGHT_Y = 78 + 16;
static final int ENEMY_BOTTOM_LEFT_X = -3;
// Game modes
static final byte MODE_NORMAL = 0;
static final byte MODE_DEATH = 1;
static final byte MODE_BOARDRESET = 2;
static final byte MODE_GAMEOVER = 3;
static final byte MODE_LVLCOMPLETE = 4;
static final byte MODE_PAUSE = 5;
static final byte MODE_INTRO = 7;
static final byte MODE_COLLISION = 8;
static final byte MODE_BLANK_BOARD = 9;
static final byte MODE_LVL_COMPLETE_FLASHING = 10;
static final byte MODE_LVL_COMPLETE_BONUS = 11;
private static final int CUBE_BLACK = 0x000000;
private static final int CUBE_BLUE = 0x0067EF;
private static final int CUBE_BROWN = 0x673100;
private static final int CUBE_DARK_BLUE = 0x101098;
private static final int CUBE_DARK_GRAY = 0x212121;
private static final int CUBE_GRAY = 0x464646;
private static final int CUBE_GREEN = 0x21B931;
private static final int CUBE_LIGHT_BLUE = 0x5646EF;
private static final int CUBE_LIGHT_GRAY = 0x999999;
private static final int CUBE_LIGHT_YELLOW = 0xEFDE77;
private static final int CUBE_LIME = 0xA9B910;
private static final int CUBE_ORANGE = 0xFF7721;
private static final int CUBE_PINK = 0xFF6767;
private static final int CUBE_PURPLE = 0x980067;
private static final int CUBE_RED = 0xB93131;
private static final int CUBE_STEEL = 0x314646;
private static final int CUBE_TURQOISE = 0x56A998;
private static final int CUBE_WHITE = 0xB9CECE;
private static final int CUBE_YELLOW = 0xDEDE00;
/*
Level & Round Data
[Level][Round][
for index 0 = nothing
for index 1 = red ball
for index 2 = coily
for index 3 = green ball
for index 4 = slick
for index 5 = sam
for index 6 = ugg
for index 7 = wrong way
for index 8 = purple ball
for index 9 = cubeTurnBackType
for index 10 = left cube color
for index 11 = right cube color
for index 12 = start cube color
.. colors ..
for index X ... finish color
]
*/
static final private byte[] gArr_RandEnemies = {
RED, PURPLE, GREEN, SLICK, SAM, UGG, WRONGWAY
};
static final byte getEnemyTypeFromRandomNumber(int rand) {
return gArr_RandEnemies[rand % gArr_RandEnemies.length];
}
// index values
static final byte QBERT_DELAY_PER_HOP = 3;
static final byte LVL_INDEX_SPAWN_TIMER = 9;
static final byte LVL_INDEX_MONSTER_SPEED = 10;
// cube stuff
static final byte LVL_INDEX_CUBE_TURN_BACK_TYPE = 11;
static final byte LVL_INDEX_LEFT_CLR = LVL_INDEX_CUBE_TURN_BACK_TYPE+1;
static final byte LVL_INDEX_RIGHT_CLR = LVL_INDEX_CUBE_TURN_BACK_TYPE+2;
static final byte LVL_INDEX_START_CLR = LVL_INDEX_CUBE_TURN_BACK_TYPE+3;
// turn back types (TBT)
static final byte LVL_CUBE_TBT_ONE_WAY = 0;
static final byte LVL_CUBE_TBT_TOGGLE_TOP = 1;
static final byte LVL_CUBE_TBT_CYCLE_TO_BEGINNING= 2;
static final int[][][] LEVEL_DATA = {
{
/*
// for testing
// Level 1
{ // ROUND 1
// enemy arguments
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick,
0, 0, 0, 1, 0,
// 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
0, 0, 0, 1,
// spawn timer duration
15,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_TURQOISE, CUBE_STEEL, // left/right
CUBE_LIGHT_BLUE, // start
// CUBE_RED, // start
// insert inter color here if needed
CUBE_YELLOW // mid
},
*/
// Level 1
{ // ROUND 1
// enemy arguments
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick,
0, 1, 0, 0, 0,
// 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
0, 0, 0, 1,
// spawn timer duration
36,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_TURQOISE, CUBE_STEEL, // left/right
CUBE_LIGHT_BLUE, // start
// CUBE_RED, // start
// insert inter color here if needed
CUBE_YELLOW // mid
},
//0 1 2 3 4 5 6 7 8 9...
{
// enemy arguments
0, 1, 0, 0, 0, 0, 0, 0, 1,
// spawn timer duration
32,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_BROWN, CUBE_ORANGE, // left/right
// insert inter color here if needed
CUBE_LIGHT_YELLOW, // end
CUBE_BLUE // start
},
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick, 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
{ 0, 1, 0, 1, 0, 0, 1, 1, 1,
32,
5, // cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_LIGHT_GRAY, CUBE_DARK_GRAY,
CUBE_WHITE, // start
// insert inter color here if needed
CUBE_GRAY //
},
{ 0, 1, 0, 1, 1, 1, 1, 1, 1,
28,
5,
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_TURQOISE, CUBE_DARK_BLUE,
CUBE_BLUE, // start
// insert inter color here if needed
CUBE_LIME
}
},
{
// Level 2
{ // ROUND 1
// enemy arguments
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick,
0, 1, 0, 1, 0,
// 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
1, 1, 1, 1,
// spawn timer duration
36,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_BROWN, CUBE_ORANGE,
CUBE_BLUE, // start
CUBE_LIGHT_YELLOW,
// insert inter color here if needed
CUBE_GREEN // mid
},
//0 1 2 3 4 5 6 7 8 9...
{
// enemy arguments
0, 0, 0, 1, 1, 1, 1, 1, 1,
// spawn timer duration
32,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_TURQOISE, CUBE_DARK_BLUE,
CUBE_PURPLE,
CUBE_LIGHT_BLUE,
CUBE_LIME
// insert inter color here if needed
},
{
// enemy arguments
0, 0, 0, 1, 1, 1, 0, 0, 1,
// spawn timer duration
32,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_TURQOISE, CUBE_STEEL,
CUBE_PINK,
CUBE_LIGHT_BLUE,
CUBE_STEEL
// insert inter color here if needed
},
{
// enemy arguments
0, 0, 0, 1, 1, 1, 1, 1, 1,
// spawn timer duration
28,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_ONE_WAY, // cube turning style
CUBE_BLACK, CUBE_BLACK,
CUBE_YELLOW,
CUBE_BLUE,
CUBE_PINK
// insert inter color here if needed
}
},
{
// Level 3
//0 1 2 3 4 5 6 7 8 9...
{ // ROUND 1
// enemy arguments
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick,
0, 1, 0, 1, 1,
// 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
1, 0, 0, 1,
// spawn timer duration
36,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_TOGGLE_TOP, // cube turning style
CUBE_LIME, CUBE_RED,
CUBE_TURQOISE,
CUBE_DARK_BLUE
},
{
// enemy arguments
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick,
0, 1, 0, 1, 1,
// 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
1, 1, 1, 1,
// spawn timer duration
32,
// monster speed (frames it delay before moving)
5,
// cube arguments ----------------------------------------
LVL_CUBE_TBT_TOGGLE_TOP,
CUBE_LIGHT_GRAY,
CUBE_DARK_GRAY,
CUBE_WHITE,
// insert inter color here if needed
CUBE_GRAY
},
{ // ROUND 3
// enemy arguments
// 0-N/A, 1-red, 2-N/A, 3-green, 4-slick,
0, 1, 0, 1, 1,
// 5-sam, 6-ugg, 7-wrongway, 8-purple/coily
1, 1, 0, 1,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -