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

📄 menuwindow.java

📁 国外人写的操作感挺好的一款滑雪游戏.结构也比较清楚
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		arrow = new Sprite(src, 5/*@ARROW_WIDTH*/, 7/*@ARROW_HEIGHT*/);
		arrow.setFrame(1);
		arrow.setAlignment( Drawable.ALIGNV_MIDDLE );

		src = null;
		
//#ifdef _IS_NokiaS60
//		src = TorinoCanvas.loadPackedPalPixels( RESFILE_COUNTRY, RES_FLAGSLARGE,
//												RESFILE_COUNTRY, RES_FLAGSLARGE+1 );
//		m_flagSprite = new Sprite( src, src[0], 36/*@FLAG_HEIGHT_LARGE*/ );
//#else
//#ifdef _NO_LARGE_FLAGS
		src = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, 0/*@RES_FLAGS*/ );
		m_flagSprite = new Sprite( src, src.getWidth(), 18/*@FLAG_HEIGHT*/ );
//#else
//		src = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, RES_FLAGSLARGE );
//		m_flagSprite = new Sprite( src, src.getWidth(), 36/*@FLAG_HEIGHT_LARGE*/ );
//#endif
//#endif

		m_flagSprite.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_MIDDLE );
		m_flagSprite.setFrame( m_data.aiCountry[m_data.iCurrentPlayer] );
		flagContainer.addToFront( m_flagSprite );
		flagContainer.sizeToChildren();
		shelf.addToBack( flagContainer );
		
		shelf.addToBack(arrow);
		
		shelf.sizeToChildren();			

		m_countryLabel = createMenuLabel( LABEL_HIGHLIGHT );
		m_countryLabel.setAlignment( Drawable.ALIGNH_CENTER );
		flagStack.addToBack( m_countryLabel );
		
		m_countryLabel.setText( STRING_NATION0 + m_data.aiCountry[m_data.iCurrentPlayer] );
		
		flagStack.sizeToChildren();
		
		
	
		Label label = createMenuLabel( LABEL_NORMAL );
		label.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_BOTTOM );
		m_menuContainer.addToFront( label );
//#ifndef _NO_ONLINE
//#ifdef _IS_SPRINT
//		label.setText( m_canvas.m_sGLName );
//#else
//		if (m_data.bOnline)
//		{
//			label.setText( m_data.sOnlineName );
//		}
//		else
//		{
//			label.setText( TorinoCanvas.getString( STRING_PLAYER ) + " " + 
//				Integer.toString( m_data.iCurrentPlayer+1 ) );
//		}			
//#endif
//#else
		label.setText( TorinoCanvas.getString( STRING_PLAYER ) + " " + 
			Integer.toString( m_data.iCurrentPlayer+1 ) );
//#endif

		m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
	}
		
	private void initMenu_SelectEvent()
	{
		m_menuContainer.m_iContainerType = CONTAINER_STACK;
		m_menuContainer.setPadding((-3)/*@FONT_PADDING*/);

		for ( int i=0; i<3/*@EVENT_COUNT*/; i++ )
		{
			appendMenuItem( TorinoCanvas.getString( STRING_EVENT0+i ));
		}

		//m_data.iGameMode = GAMEMODE_PRACTICE;
		m_data.bInitialized = false;

		m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
	}

//#ifdef _MULTI_LANG
//	private void initMenu_SelectLanguage()
//	{
//		m_menuContainer.m_iContainerType = CONTAINER_STACK;
//		m_menuContainer.setPadding((-3)/*@FONT_PADDING*/);
//		
//		for (int i = 0; i < 1/*@LANG_COUNT*/; i++)
//		{
//			appendMenuItem( TorinoCanvas.getString( STRING_LANG0+i ));
//		}		
//
//		if (m_data.bLanguageSet)
//		{
//			m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
//		}
//		else
//			m_canvas.setKeyLabels( STRING_OK, (-1)/*@NULL_STRING*/ );
//	}
//#endif
		
	private void initMenu_AboutInstructions() throws IOException
	{
		m_menuContainer.m_iContainerType = CONTAINER_NORMAL;
		
		if ( m_data.bEventLoading )
		{
			m_keyPrompt = createMenuLabel( LABEL_HIGHLIGHT );
			m_keyPrompt.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_BOTTOM );
			m_menuContainer.addToFront(m_keyPrompt);
			m_keyPrompt.setText( m_canvas.getString(STRING_PRESS_ANY_KEY) );
			if (m_keyPrompt.m_iWidth > m_menuContainer.m_iWidth-2)
				m_keyPrompt.setDimensions( m_menuContainer.m_iWidth-2, m_keyPrompt.m_iHeight );
		}		
		
		m_textControl = new TextControl( m_canvas );
		m_menuContainer.addToBack( m_textControl );
		if ( m_keyPrompt != null )
			m_textControl.setDimensions( m_menuContainer.m_iWidth, m_keyPrompt.m_iY - m_textControl.m_iY );
		else
			m_textControl.setDimensions( m_menuContainer.m_iWidth, m_menuContainer.m_iHeight - m_textControl.m_iY );
			
		String s;
		
		if (m_iMenuID == MENU_ABOUT)
		{
			s = TorinoCanvas.getString(STRING_GAME_TITLE) + ", " +
			TorinoCanvas.getString(STRING_VERSION) + " " +
			// this code is too big - have to hardcode
			//m_canvas.m_midlet.getAppProperty( "MIDlet-Version" ) +
			"1.0.6"/*@_GAME_VERSION*/ +
			TorinoCanvas.getString(STRING_COPYRIGHT_TEXT) +
			TorinoCanvas.getString(STRING_CREDITS);
		}		
		
		else if ( m_data.iGameMode == 0/*@GAMEMODE_NONE*/ )
			s = TorinoCanvas.getString( STRING_HELPTEXT_MAIN );
		else
			s = TorinoCanvas.getString( STRING_HELPTEXT_EVENT0 + m_data.iEvent );

		m_textControl.init( s, 
			TextControl.FULL_SCROLL, 0, 0x717AA7/*@COLOR_MENU_TEXT*/ );

		if ( m_data.bEventLoading )
		{
			m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
			return;
		}

		m_canvas.setKeyLabels( (-1)/*@NULL_STRING*/, STRING_BACK );	
	}

//#ifndef _IS_SPRINT
	private void initMenu_EnterName()
	{		
		m_menuContainer.m_iContainerType = CONTAINER_NORMAL;

//#ifndef _NO_ONLINE
//		boolean bOnline = (m_data.iGameMode == 0/*@GAMEMODE_NONE*/ 
//			|| (m_data.iGameMode == 2/*@GAMEMODE_COMPETITION*/ && m_data.bOnline)
//#ifndef _NO_GHOST
//			|| (m_data.iGameMode == 3/*@GAMEMODE_CHALLENGE*/ && m_data.bOnline) 
//#endif
//						  );
//		if (bOnline)
//		{
//			m_sName = new String();
//		}
//		else
//		{
//#endif
			m_sName = new String( m_data.asName[m_data.iCurrentPlayer] );
//#ifndef _NO_ONLINE
//		}
//#endif
		
		m_nameLabel = createMenuLabel( LABEL_NORMAL );
		m_nameLabel.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_MIDDLE );
		m_nameLabel.setText( m_sName );
		m_menuContainer.addToFront(m_nameLabel);
		
		m_statusLabel = createMenuLabel( LABEL_NORMAL );
		m_statusLabel.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_BOTTOM );
		m_statusLabel.m_iStyle |= Label.STYLE_SCROLLING;
		m_statusLabel.setDimensions( m_iWidth-4, m_statusLabel.m_iHeight );
		m_menuContainer.addToFront(m_statusLabel);

		m_iFlashTime = (-1)/*@TIME_INVALID*/;
		m_iLastKeyTime = (-1)/*@TIME_INVALID*/;
		m_iLastTextKeyPressed = (-1)/*@KEY_INVALID*/;
		m_iCursorOffset = 0;
		m_iCursorIndex = 0;
		m_iKeyCount = 0;

		m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
		
//#ifndef _NO_ONLINE
//#ifndef _NO_GHOST
//		if( m_data.iGameMode == 3/*@GAMEMODE_CHALLENGE*/ )
//		{
//			m_canvas.createOnlineService();
//		}
//#endif
//
//		if ( !bOnline 
//#ifndef _NO_GHOST
//			 || m_data.bGhostOnlineNameSearch 
//#endif
//		   )
//		{
//#endif

//#ifndef _NO_GHOST
//			if ( m_data.iGameMode != 3/*@GAMEMODE_CHALLENGE*/ || !m_data.bGhostOnlineNameSearch )
//#endif
				m_statusLabel.setTextNoResize( TorinoCanvas.getString( STRING_PLAYER ) + " " + 
					Integer.toString( m_data.iCurrentPlayer+1 ) );
//#ifndef _NO_ONLINE
//#ifndef _NO_GHOST
//			else
//				m_scoreLabel = createMenuLabel( LABEL_NORMAL );
//#endif
//			m_iState = STATE_IDLE;
//		}
//		else
//		{
//			m_canvas.createOnlineService();
//			getOnlineName();
//		}
//#endif
	}
//#endif
	
//#ifndef _NO_ONLINE
//	private void startJCIThread()
//	{
//		m_bOnlineWait = true;
//		m_jciThread = new Thread(this);
//		m_jciThread.start();
//	}
//	
//#ifndef _IS_SPRINT
//	private void getOnlineName()
//	{
//		m_iState = STATE_ENTERNAME_GETNAME;
//		m_bCursorFlash = false;
//		m_canvas.m_bNeedPaint = true;
//		m_bOnlineWait = true;
//		m_bOnlineError = false;
//		
//		m_statusLabel.setTextNoResize( STRING_GETTING_NAME );
//		// create a thread to get the nickname
//		startJCIThread();
//	}	
//
//	private void setOnlineName()
//	{
//		m_iState = STATE_ENTERNAME_SETNAME;
//		m_bCursorFlash = false;
//		m_statusLabel.m_bVisible = true;
//		m_statusLabel.setTextNoResize( STRING_SETTING_NAME );
//		m_canvas.m_bNeedPaint = true;
//	
//		// create a thread to set the nickname
//		startJCIThread();
//	}
//
//	private void getOnlineScore()
//	{
//		m_iState = STATE_GETTINGRANK;
//		m_statusLabel.setText( STRING_GETTING_SCORE );
//		//int iWidth = _min( m_canvas.getWidth()-4, m_statusLabel.getWidth() );
//		//m_statusLabel->setDimensions( iWidth, m_pStatusLabel->getHeight() );
//		m_canvas.m_bNeedPaint = true;
//	
//		// create a thread to get the score
//		startJCIThread();
//	}
//#endif
//#endif

	

	private	int m_aiRanks[] = new int[4/*@MAX_TOTAL_PLAYERS*/];
	private void initMenu_Standings() throws IOException
	{
		m_canvas.setKeyLabels( STRING_OK, STRING_MENU );
		
		m_menuContainer.m_iContainerType = CONTAINER_NORMAL;
		
//#ifndef _NO_SOUND
		// intermission music
//#if defined(_IS_NokiaS60) && !defined(_MMAPI)
//		m_canvas.loadSound( 1/*@SOUND_INTERMISSION*/, false );
//#else
		m_canvas.loadSound( 1/*@SOUND_INTERMISSION*/ );
//#endif
		if (m_canvas.m_iCurrentSoundID != 1/*@SOUND_INTERMISSION*/ || 
			m_canvas.m_iSoundState != TorinoCanvas.SOUNDSTATE_PLAYING)
		{
			m_canvas.playSound( 1/*@SOUND_INTERMISSION*/, (-1)/*@LOOP_INFINITE*/);
		}			
//#endif

		Window stack = new Window(m_canvas);
		stack.m_iContainerType = CONTAINER_STACK;
		m_menuContainer.addToFront(stack);
		stack.setAlignment( Drawable.ALIGNH_CENTER );
		stack.setPadding((-3)/*@FONT_PADDING*/);

		//show rank and score for each player
		for (int i=0; i<m_data.iMaxPlayers; i++)
			m_aiRanks[i] = i;
	
		// sort the scores
		int iNumResults;
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
//		if (m_data.bOnline)
//			iNumResults = 1;
//		else
//		{
//#endif
//#endif
			iNumResults = m_data.iMaxPlayers;
			for (int i=0; i<iNumResults-1; i++)
			{
				for (int j=i+1; j<iNumResults; j++)
				{
					if ( m_data.aiTotalScore[m_aiRanks[i]] <
						m_data.aiTotalScore[m_aiRanks[j]] )
					{
						 {m_aiRanks[i]^=m_aiRanks[j];m_aiRanks[j]^=m_aiRanks[i];m_aiRanks[i]^=m_aiRanks[j];} ;
					}
				}
			}
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
//		}
//#endif
//#endif
	
		Label label;
		
//#ifdef _IS_NokiaS60
//#ifdef _KEEP_SMALL_FLAGS_LOADED
//		if (m_smallFlagsImage == null)
//			m_smallFlagsImage = TorinoCanvas.loadPackedPalPixels( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/,
//																  RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/+1 );
//#else
//		short[] m_smallFlagsImage = TorinoCanvas.loadPackedPalPixels( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/,
//				RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/+1 );
//#endif
//#else
//#ifdef _KEEP_SMALL_FLAGS_LOADED
//		if (m_smallFlagsImage == null)
//			m_smallFlagsImage = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/ );
//#else
		Image m_smallFlagsImage = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/ );
//#endif
//#endif		
		for (int i=0; i<iNumResults; i++)
		{
			Window line = new Window(m_canvas);
			line.setDimensions(116/*@LIST_WIDTH*/,0);
			line.setAlignment( Drawable.ALIGNH_CENTER );
			stack.addToBack( line );
	
			Window shelf = new Window(m_canvas);
			shelf.m_iContainerType = CONTAINER_SHELF;
			shelf.setAlignment( Drawable.ALIGNH_LEFT | Drawable.ALIGNV_MIDDLE );
			shelf.setPadding(2);
			line.addToBack(shelf);

//#ifdef _IS_NokiaS60
//			Sprite flag = new Sprite( m_smallFlagsImage, m_smallFlagsImage[0], 9/*@FLAG_HEIGHT_SMALL*/ );
//#else
			Sprite flag = new Sprite( m_smallFlagsImage, m_smallFlagsImage.getWidth(), 9/*@FLAG_HEIGHT_SMALL*/ );
//#endif
			flag.setAlignment( Drawable.ALIGNV_MIDDLE );
			shelf.addToBack(flag);
			flag.setFrame( m_data.aiCountry[m_aiRanks[i]] );
	
			// create labels for initials and score
			if (m_aiRanks[i] < m_data.iNumPlayers )
				label = createMenuLabel( LABEL_HIGHLIGHT );
			else
				label = createMenuLabel( LABEL_NORMAL );

			label.setAlignment( Drawable.ALIGNV_MIDDLE );
			shelf.addToBack(label);
	
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
//			if (m_data.bOnline)
//			{
//				label.setText( m_data.sOnlineName );
//			}
//			else
//#endif
//#endif
				label.setText( m_data.asName[m_aiRanks[i]] );
	
			Label scoreLabel;
			if (m_aiRanks[i] < m_data.iNumPlayers )
				scoreLabel = createMenuLabel( LABEL_HIGHLIGHT );
			else
				scoreLabel = createMenuLabel( LABEL_NORMAL );
			scoreLabel.setAlignment( Drawable.ALIGNH_RIGHT | Drawable.ALIGNV_MIDDLE );
			line.addToBack( scoreLabel );
			scoreLabel.setText( Integer.toString(m_data.aiTotalScore[m_aiRanks[i]]) );
			line.sizeToChildren();
//#ifdef _LIMIT_NAME_DISPLAY
//			if (label.m_iWidth > 116/*@LIST_WIDTH*/ - scoreLabel.m_iWidth - 4)
//			{
//				label.m_iJustify = Label.JUSTIFY_LEFT;
//				label.setDimensions( 116/*@LIST_WIDTH*/ - scoreLabel.m_iWidth - 4, label.m_iHeight );
//			}			
//#endif
		}
	
		stack.sizeToChildren();
	
		if (m_data.iEvent < 3/*@EVENT_COMPETITION*/
//#ifndef _NO_MEDAL_CEREMONY
//			|| (
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
//			!m_data.bOnline && 
//#endif
//#endif
//			(m_aiRanks[3] != 0 || m_data.iNumPlayers>1))
//#endif
			)
		{
			m_eventStack = n

⌨️ 快捷键说明

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