⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menuwindow.java

📁 国外人写的操作感挺好的一款滑雪游戏.结构也比较清楚
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
private static final int STRING_RATE_GAME = 130;
private static final int STRING_LEADERBOARD = 131;
private static final int STRING_REGISTER_ON = 132;
private static final int STRING_GAME_LOBBY_Q = 133;
private static final int STRING_TO_GAME_LOBBY = 134;
private static final int STRING_WELCOME = 135;
private static final int RESFILE_COMMON = 136;
private static final int RESFILE_COUNTRY = 137;
private static final int RESFILE_GFX = 138;
private static final int RESFILE_AUDIO = 139;



// defines from GameData
// we never have more than a few gates on the screen at once
// we're only going to store animation data for a few gates
// we'll pad it a bit to take into account the fact that the
// skier still moves while the gates animate.

//#ifdef _HIRES_GRAPHICS
////#define HURDLE_XOFF					12
////#define HURDLE_HEIGHT				31		// in pixels
////#define SHOOTINGREF_HEIGHT			54
////#define PIXEL_PER_M					24
////#define M_PER_PIXEL					2731
//#else
//#endif


//#define MAX_PLAYERS					4

//#ifndef _MAX_HUMAN_PLAYERS
//#endif



// Virtual key codes


// COLORS (RGB)







//#ifdef _LOW_DETAIL
//#else
////#define COLOR_SKY				0xc1ccf5
//#endif






//#ifdef _MULTI_LANG
////#define LANG_COUNT					5
//#else
//#endif


//#ifndef _LIMITED_EVENTS
//
////#define EVENT_SKI_JUMP				1
////#define EVENT_BIATHLON				2
////#define EVENT_SKIING				3
////#define EVENT_COUNT					4
////#define EVENT_COMPETITION			4
//
//#else


//#endif





//#ifdef _IS_NokiaS40
////	#define SOUND_COUNT				5
//#elif defined(_IS_NokiaS60) && !defined(_MMAPI)
////	#define SOUND_CROWD				5
////	#define SOUND_CRASH				6
////	#define SOUND_COUNT				7
//#elif defined(_LIMITED_SOUNDS)
////	#define SOUND_CRASH				5
////	#define SOUND_COUNT				6
//#else
//#endif


//#endif
//#ifdef _DEBUG
////#define DUMP_EXCEPTION(e)			{ //System.out.println( e.getMessage()); e.printStackTrace(); }
////#define DUMP_EXCEPTION_MSG(e,msg)	{ //System.out.println( msg + "\n" + e.getMessage()); e.printStackTrace(); }
////#define DEBUG_MSG(msg)				//System.out.println(msg)
//#else
//#endif

//#ifdef _PROFILE
////#define START_TIMER(a)				a = System.currentTimeMillis();
////#define STOP_TIMER(a)				a = System.currentTimeMillis() - a;
//#else
//#endif




	private final static int	LABEL_TITLE = 0;
	private final static int	LABEL_NORMAL = 1;
	private final static int	LABEL_HIGHLIGHT = 2;

	public final static int	MENU_NONE = -1;
	public final static int	MENU_MAIN = 0;
	public final static int	MENU_SELECTPLAYERS = 1;
	public final static int	MENU_SELECTCOUNTRY = 2;
	public final static int	MENU_SELECTEVENT = 3;
	public final static int	MENU_EVENTRESULTS = 4;
	public final static int	MENU_STANDINGS = 5;
	public final static int	MENU_ENTERNAME = 6;
	public final static int	MENU_INSTRUCTIONS = 7;
	public final static int	MENU_ABOUT = 8;
	public final static int	MENU_SETTINGS = 9;
	public final static int	MENU_RESUMEGAME = 10;
	public final static int	MENU_LOCALRECORDS = 11;
	public final static int	MENU_EVENTMENU = 12;
	public final static int	MENU_ONLINE = 13;
	public final static int	MENU_RECORDS = 14;
	public final static int	MENU_ONLINERECORDS = 15;
	public final static int MENU_SELECTLANGUAGE = 16;
	public final static int MENU_SPLASH = 17;
	public final static int MENU_GAMELOBBYPROMPT = 18;
	public final static int MENU_PLAY = 19;
//#ifndef _IS_SPRINT
//#ifndef _NO_ONLINE
//#ifndef _NO_GHOST
//	public final static int MENU_CHALLENGE = 20;
//#endif
//#endif
//#endif
	public final static int MENU_COUNT = 21;
	

	private final static int ITEM_MAIN_PLAY = 0;
	private final static int ITEM_MAIN_SETTINGS = 1;
	private final static int ITEM_MAIN_HELP = 2;
	private final static int ITEM_MAIN_RECORDS = 3;
	private final static int ITEM_MAIN_ABOUT = 4;
	private final static int ITEM_MAIN_EXIT = 5;
	
	private final static int ITEM_PLAY_COMPETITION = 0;
	private final static int ITEM_PLAY_PRACTICE = 1;
//#ifndef _NO_GHOST
//	private final static int ITEM_PLAY_CHALLENGE = 2;
//#endif
	
//#ifndef _IS_SPRINT
//#ifndef _NO_ONLINE
//#ifndef _NO_GHOST
//	private final static int ITEM_CHALLENGE_LOCAL_TEN = 0;
//	private final static int ITEM_CHALLENGE_ONLINE_TEN = 1;
//	private final static int ITEM_CHALLENGE_NAME_SEARCH = 2;
//#endif
//#endif
//#endif
	
	private final static int ITEM_EVENT_PLAY = 0;
	private final static int ITEM_EVENT_HELP = 1;
	private final static int ITEM_EVENT_SETTINGS_MC = 1;
	private final static int ITEM_EVENT_SETTINGS = 2;
	private final static int ITEM_EVENT_EXIT_MC = 2;
	private final static int ITEM_EVENT_EXIT = 3;
	private final static int ITEM_NEW_TIME = 4;
	
	private final static int ITEM_ONLINE_LOCAL = 0;
	private final static int ITEM_ONLINE_ONLINE = 1;
	
	private final static int ITEM_RECORDS_LOCAL = 0;
//#ifdef _IS_SPRINT
//	private final static int ITEM_RECORDS_GAMELOBBY = 1;
//	private final static int ITEM_RECORDS_RATEGAME = 2;
//	private final static int ITEM_RECORDS_LEADERBOARD = 3;
//#else
	private final static int ITEM_RECORDS_ONLINE = 1;
//#endif
	
	private final static int ITEM_RESUME_RESUME = 0;
	private final static int ITEM_RESUME_QUIT = 1;
	
	private final static int ITEM_SETTINGS_DIFFICULTY = 0;
//#ifdef _NO_SOUND
//	private final static int ITEM_SETTINGS_TIPS = 1;
//#ifdef _MULTI_LANG
//	private final static int ITEM_SETTINGS_SELECTLANG = 2;
//	private final static int ITEM_SETTINGS_RESETRECORDS = 3;
//#ifdef _SPRINT_MRC
//	private final static int ITEM_SETTING_CANCEL_MRC = 4;
//	private final static int ITEM_SETTINGS_NAME = 5;
//	private final static int ITEM_SETTINGS_COUNT = 6;
//#else
//	private final static int ITEM_SETTINGS_NAME = 4;
//	private final static int ITEM_SETTINGS_COUNT = 5;
//#endif
//
//#else
//#ifdef _SPRINT_MRC
//	private final static int ITEM_SETTINGS_RESETRECORDS = 2;
//	private final static int ITEM_SETTING_CANCEL_MRC = 3;
//	private final static int ITEM_SETTINGS_NAME = 4;
//	private final static int ITEM_SETTINGS_COUNT = 5;
//#else
//	private final static int ITEM_SETTINGS_RESETRECORDS = 2;
//	private final static int ITEM_SETTINGS_NAME = 3;
//	private final static int ITEM_SETTINGS_COUNT = 4;
//#endif
//#endif
////	private final static int MAX_MENU_ITEMS = 5;
//#else // _NO_SOUND
	private final static int ITEM_SETTINGS_SOUND = 1;
	private final static int ITEM_SETTINGS_TIPS = 2;
//#ifdef _MULTI_LANG
//
//#ifdef _SPRINT_MRC
//	private final static int ITEM_SETTINGS_SELECTLANG = 3;
//	private final static int ITEM_SETTINGS_RESETRECORDS = 4;
//	private final static int ITEM_SETTING_CANCEL_MRC = 5;
//	private final static int ITEM_SETTINGS_NAME = 6;
//	private final static int ITEM_SETTINGS_COUNT = 7;
//#else
//	private final static int ITEM_SETTINGS_SELECTLANG = 3;
//	private final static int ITEM_SETTINGS_RESETRECORDS = 4;
//	private final static int ITEM_SETTINGS_NAME = 5;
//	private final static int ITEM_SETTINGS_COUNT = 6;
//#endif
//	
//#else

//#ifdef _SPRINT_MRC
//	private final static int ITEM_SETTINGS_RESETRECORDS = 3;
//	private final static int ITEM_SETTING_CANCEL_MRC = 4;
//	private final static int ITEM_SETTINGS_NAME = 5;
//	private final static int ITEM_SETTINGS_COUNT = 6;
//#else
	private final static int ITEM_SETTINGS_RESETRECORDS = 3;
	private final static int ITEM_SETTINGS_NAME = 4;
	private final static int ITEM_SETTINGS_COUNT = 5;
//#endif
	
//#endif
//	private final static int MAX_MENU_ITEMS = 6;
//#endif
	private final static int MAX_MENU_ITEMS = 6;

	// map menu ids to title strings
	private final static int	s_aiMenuTitles[] = 
	{
		STRING_MAIN_MENU,
//#ifndef _IS_SPRINT
		STRING_SELECT_PLAYERS,
//#else
//		0,
//#endif
		STRING_SELECT_COUNTRY,
		STRING_SELECT_EVENT,
		STRING_EVENT_RESULTS,
		STRING_STANDINGS,
//#ifndef _IS_SPRINT
		STRING_ENTER_NAME,
//#else
//		0,
//#endif
		STRING_INSTRUCTIONS,
		STRING_ABOUT,
		STRING_SETTINGS,
		STRING_GAME_IN_PROGRESS,
		0,	// local records
		0,  // event menu
//#if !defined(_NO_ONLINE) && !defined(_IS_SPRINT)
//		STRING_GAME_TYPE,
//#else
		0,
//#endif
		STRING_RECORDS,
//#if !defined(_NO_ONLINE) && !defined(_IS_SPRINT)
//		STRING_ONLINE_TOP_TEN,
//#else
		0,
//#endif
//#ifdef _MULTI_LANG
//		STRING_SELECT_LANGUAGE,
//#else
		0,
//#endif
		0,	// splash
		0,
		STRING_GAME_TYPE
//#ifndef _NO_GHOST
//		,
//		STRING_CHALLENGE
//#endif
	};

	private GameData			m_data;
	public int					m_iMenuID = MENU_NONE;
	private int					m_iSelection = 0;
	private int					m_iNextEvent;
	
	private int					m_iFillHeight;
	private int					m_iFillY;
	private int					m_iTextY;
	
	private int					m_iDispNumScores;
	private int					m_iCurrentScoreNum;
	private int					m_iTotalRecords;
	private int					m_iCurrentGhostRecord;
	
	private TextControl			m_textControl;
	private Window				m_menuContainer;
	private Label				m_title;
	private	Label				m_aMenuItems[];
	private int					m_iMenuItemCount;
	private Label				m_countryLabel;
	private Label				m_keyPrompt;
	private Label				m_noLocalRecords;
	
	private	Sprite				m_arrowUp;
	private	Sprite				m_arrowDown;
	
//#ifdef _IS_SPRINT
//	private Label				m_welcomePrompt;
//#endif
	private Sprite				m_flagSprite;
	
//#ifdef _IS_SPRINT
//	private boolean					m_bLoggingIn;
//#endif

//#ifdef _KEEP_SMALL_FLAGS_LOADED
//#ifdef _IS_NokiaS60
//	private static short[]		m_smallFlagsImage;
//#else
//	private static Image		m_smallFlagsImage;
//#endif
//#endif

//#ifndef _NO_ONLINE
//	private final static int	STATE_IDLE = 0;
//	private final static int	STATE_ENTERNAME_GETNAME = 1;
//	private final static int	STATE_ENTERNAME_SETNAME = 2;
//	private final static int	STATE_SENDINGSCORE = 3;
//	private final static int	STATE_GETTINGRANK = 4;
//	private final static int	STATE_GETTINGSCORES = 5;
//	private final static int	STATE_WAITING = 6;
//#endif

	private Label				m_eventLabel;
	private Label				m_aNames[];
	private Label				m_aScores[];
	private Window				m_scoreList;
	private String				m_asHighScoreNames[];
	private int					m_aiHighScores[];

	private String		m_sName;
	private Label		m_nameLabel;
//#ifndef _NO_ONLINE
//	private Label		m_scoreLabel;
//#endif
	private int			m_iFlashTime;
	private int			m_iLastKeyTime;
	private int			m_iLastTextKeyPressed;
	private int			m_iCursorOffset;
	private int			m_iCursorIndex;
	private int			m_iKeyCount;
	private boolean		m_bCursorFlash = false;

	private Label		m_statusLabel;
//#ifdef _IS_SPRINT
//	private Label		m_statusLabel2;
//#endif
	private Window		m_eventStack;
//#ifndef _NO_ONLINE
//	private int			m_iState = STATE_IDLE;
//	private boolean		m_bOnlineWait = false;
//	private boolean		m_bOnlineError = false;
//	private Thread		m_jciThread;
//#endif	
	
	public MenuWindow( TorinoCanvas canvas ) throws IOException
	{
		super( canvas );
		setDimensions( m_canvas.m_iScreenWidth, m_canvas.getCanvasHeight() );
		m_data = m_canvas.m_gameData;
		
//#ifndef _NO_MENU_GRAPHICS
//		// create top and bottom sprites
//#ifdef _IS_NokiaS60
//		short[] src = TorinoCanvas.loadPackedPalPixels( RESFILE_MENU, RES_MENUBOTTOM,
//														RESFILE_MENU, RES_MENUBOTTOM+1 );
//#else
//		Image src = TorinoCanvas.loadPackedImage( RESFILE_COMMON, RES_MENUBOTTOM );
//#endif
//		Sprite bottom = new Sprite( src );
//		addToFront( bottom );
//
//#ifdef _IS_NokiaS60
//		src = TorinoCanvas.loadPackedPalPixels( RESFILE_MENU, RES_MENUTOP,
//												RESFILE_MENU, RES_MENUTOP+1 );
//#else
//		src = TorinoCanvas.loadPackedImage( RESFILE_COMMON, RES_MENUTOP );
//#endif
//		Sprite top = new Sprite( src );
//		addToFront( top );
//
//		// determine layout based on display size
//		m_iFillHeight = m_iHeight - bottom.m_iHeight - top.m_iHeight;
//		if (m_iFillHeight < 110/*@MIN_FILL_HEIGHT*/)
//			m_iFillHeight = 110/*@MIN_FILL_HEIGHT*/;
//		if (m_iFillHeight > m_iHeight - 1/*@MIN_TOP_HEIGHT*/ - 1/*@MIN_BOTTOM_HEIGHT*/)
//			m_iFillHeight = m_iHeight - 1/*@MIN_TOP_HEIGHT*/ - 1/*@MIN_BOTTOM_HEIGHT*/;
//	
//		int iBottom = m_iFillHeight + 1/*@MIN_TOP_HEIGHT*/;
//		if (iBottom + bottom.m_iHeight < m_iHeight)
//			iBottom = m_iHeight - bottom.m_iHeight;
//	
//		int iTop = iBottom - m_iFillHeight - top.m_iHeight;
//		m_iFillY = iTop + top.m_iHeight;
//	
//		top.setPosition( 0, iTop );
//		bottom.setPosition( 0, iBottom );
//		top.setAlignment( Drawable.ALIGNH_CENTER );
//		bottom.setAlignment( Drawable.ALIGNH_CENTER );
//#else
		m_iFillHeight = m_iHeight;
		m_iFillY = 0;
//#endif		
		m_iTextY = m_iFillY + 3/*@TEXT_OFFSET*/;
		
		m_title = createMenuLabel( LABEL_TITLE );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -