📄 jcgamewindow.java
字号:
public void levelChanged( int newLevel ) { m_LabelLevelCount.setText( Integer.toString( newLevel ) ); } public void highScoreChanged( int highLevel ) { m_LabelHighScorePoints.setText( Integer.toString( highLevel ) ); } public void highLevelChanged( int highLevel ) { m_LabelHighLevelCount.setText( Integer.toString( highLevel ) ); } }); //JCComponent //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_JCComponent = new JCComponent(); m_JCComponent.setMinimumSize( new Dimension( 160, 192 ) ); m_JCComponent.setPreferredSize( new Dimension( 300, 360 ) ); //JCComponent Listener m_JCComponent.addJCollapseComponentListener( new JCComponentListener() { public void gamePaused( boolean paused ) { if( paused ) { m_JCComponent.drawEffect( m_PauseEffect ); m_SoundControl.doEvent( "music01", SoundEvent.PAUSE ); } else { m_JCComponent.terminateEffect(); m_SoundControl.doEvent( "music01", SoundEvent.RESUME ); } } public void gameStarted() { m_ButtonPause.setEnabled( true ); m_LevelStartedEffect.setText( "Level " + m_GameControl.getLevel() ); m_JCComponent.drawEffect( m_LevelStartedEffect ); } public void levelLoaded( Level level ) { m_LabelLevelName.setText( level.getName() ); m_TextAreaNotes.setText( level.getNotes() ); } public void levelEnd( Level level ) { //play congratulations m_SoundControl.doEvent( "congratulations", SoundEvent.PLAY ); //next level m_GameControl.addLevel(); //if game find last level, go to the first if( m_LevelList.size() == m_GameControl.getLevel() ) m_GameControl.setLevel( 0 ); //load next level m_JCComponent.loadLevel( m_LevelList.getLevel( m_GameControl.getLevel() ) ); m_JCComponent.start(); } public void gameStoped() { m_ButtonPause.setEnabled( false ); } public void blockRolled( int remainder, boolean isBaseBoardFull ) { //play roll sound if( isBaseBoardFull ) m_SoundControl.doEvent( "roll", SoundEvent.PLAY ); //play siren when 2 or less rows remains if( m_JCComponent.getJCollapseModel().getGameBoard().hasBlockOnRow( m_JCComponent.getJCollapseModel().getGameBoard().getBoardHeight() - 2 ) && m_JCComponent.getJCollapseModel().getGameBoard().getBaseBoard().isNullBlock( 1 ) ) { m_SoundControl.doEvent( "siren", SoundEvent.PLAY ); } //lines remains m_LabelLinesRemains.setText( Integer.toString( ( remainder / m_JCComponent.getJCollapseModel().getGameBoard().getBoardWidth() ) ) ); } } ); //CollapseModel Listener m_JCComponent.getJCollapseModel().addJCollapseListener( new JCListener() { public void blockRolled( int remainder, boolean isBaseBoardFull ) {} public void gameOver() { m_SoundControl.doEvent( "music01", SoundEvent.STOP ); m_SoundControl.doEvent( "gameover", SoundEvent.PLAY ); m_JCComponent.drawEffect( m_GameOverEffect ); } public void boardTouched( int removedBlocks, int blocksInStack, Block block ) { if( removedBlocks > 0 ) if( block instanceof SimpleBlock ) { m_SoundControl.doEvent( "destroyed", SoundEvent.PLAY ); m_GameControl.addScore( (int) Math.pow( removedBlocks, 2 ) + 1 ); } else if( block instanceof BombBlock ) { m_SoundControl.doEvent( "bomb", SoundEvent.PLAY ); m_GameControl.addScore( removedBlocks * 2 + 1 ); } } }); //SoundControl //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_SoundControl = new SoundControl(); m_SoundControl.addSoundControlListener( new SoundControlListener() { public void soundStateChanged( int newState ) { if( ( newState | SoundControlListener.ENABLED + SoundControlListener.ALLREADY ) == SoundControlListener.ENABLED + SoundControlListener.ALLREADY ) { if( m_SoundControl.isEnabled() && !m_JCComponent.isPaused() && m_JCComponent.isRunning() ) m_SoundControl.doEvent( "music01", SoundEvent.PLAY ); else if( m_SoundControl.isEnabled() && !m_JCComponent.isRunning() ) m_SoundControl.doEvent( "intro", SoundEvent.PLAY ); } } }); m_SoundControl.add( "bomb", new Wave( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/bomb.wav" ), false ) ); m_SoundControl.add( "roll", new Wave( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/roll.wav" ), false ) ); m_SoundControl.add( "siren", new Wave( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/siren.wav" ), false ) ); m_SoundControl.add( "destroyed", new Wave( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/destroyed.wav" ), false ) ); m_SoundControl.add( "congratulations", new Wave( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/congratulations.wav" ), false ) ); m_SoundControl.add( "gameover", new Midi( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/gameover.mid" ), false ) ); m_SoundControl.add( "music01", new Midi( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/music01.mid" ), true ) ); m_SoundControl.add( "intro", new Midi( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/sounds/intro.mid" ), true ) ); //check for command line parameter. If sound is not disabled, //initialize the sound engine if( checkForCommandLineParameter( CMDLINE_SOUND_DISABLED ) == null ) { if( m_SoundControl.initialize() ) { m_SoundControl.setEnabled( true ); System.out.println( "Sound system is initialized!" ); } else { System.out.println( "Error initializing sound system!" ); JOptionPane.showMessageDialog( null, "Error initializing sound engine!", "Error", JOptionPane.ERROR_MESSAGE ); } } //LabelGameStatus //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelGameStatus = new JLabel( "Game Status" ); m_LabelGameStatus.setForeground( Color.WHITE ); m_LabelGameStatus.setHorizontalAlignment( JLabel.CENTER ); m_LabelGameStatus.setVerticalAlignment( JLabel.TOP ); m_LabelGameStatus.setFont( m_BoldFont ); //LabelLevelName //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelLevelName = new JLabel( APPLICATION_NAME ); m_LabelLevelName.setHorizontalAlignment( JLabel.CENTER ); m_LabelLevelName.setVerticalAlignment( JLabel.TOP ); m_LabelLevelName.setFont( m_BoldFont ); //SeparatorGameStatus //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_SeparatorGameStatus = new JSeparator(); //LabelScore //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelScore = new JLabel( "Score" ); m_LabelScore.setHorizontalAlignment( JLabel.LEFT ); m_LabelScore.setVerticalAlignment( JLabel.TOP ); m_LabelScore.setFont( m_NormalFont ); //LabelScorePoints //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelScorePoints = new JLabel( "0" ); m_LabelScorePoints.setHorizontalAlignment( JLabel.RIGHT ); m_LabelScorePoints.setVerticalAlignment( JLabel.TOP ); m_LabelScorePoints.setFont( m_BoldFont ); //LabelLevel //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelLevel = new JLabel( "Level" ); m_LabelLevel.setHorizontalAlignment( JLabel.LEFT ); m_LabelLevel.setVerticalAlignment( JLabel.TOP ); m_LabelLevel.setFont( m_NormalFont ); //LabelLevelCount //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelLevelCount = new JLabel( "0" ); m_LabelLevelCount.setHorizontalAlignment( JLabel.RIGHT ); m_LabelLevelCount.setVerticalAlignment( JLabel.TOP ); m_LabelLevelCount.setFont( m_BoldFont ); //LabelLines //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelLines = new JLabel( "Lines" ); m_LabelLines.setHorizontalAlignment( JLabel.LEFT ); m_LabelLines.setVerticalAlignment( JLabel.TOP ); m_LabelLines.setFont( m_NormalFont ); //LabelLinesRemains //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelLinesRemains = new JLabel( "0" ); m_LabelLinesRemains.setHorizontalAlignment( JLabel.RIGHT ); m_LabelLinesRemains.setVerticalAlignment( JLabel.TOP ); m_LabelLinesRemains.setFont( m_BoldFont ); //LabelRecord //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelRecord = new JLabel( "Record" ); m_LabelRecord.setHorizontalAlignment( JLabel.LEFT ); m_LabelRecord.setVerticalAlignment( JLabel.TOP ); m_LabelRecord.setFont( m_BoldFont ); //SeparatorRecord //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_SeparatorRecord = new JSeparator(); //LabelHighScore //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelHighScore = new JLabel( "Score " ); m_LabelHighScore.setHorizontalAlignment( JLabel.LEFT ); m_LabelHighScore.setVerticalAlignment( JLabel.TOP ); m_LabelHighScore.setFont( m_NormalFont ); //LabelHighScorePoints //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelHighScorePoints = new JLabel( "0" ); m_LabelHighScorePoints.setHorizontalAlignment( JLabel.RIGHT ); m_LabelHighScorePoints.setVerticalAlignment( JLabel.TOP ); m_LabelHighScorePoints.setFont( m_BoldFont ); //LabelHighLevel //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelHighLevel = new JLabel( "Level" ); m_LabelHighLevel.setHorizontalAlignment( JLabel.LEFT ); m_LabelHighLevel.setVerticalAlignment( JLabel.TOP ); m_LabelHighLevel.setFont( m_NormalFont ); //LabelHighLevelCount //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_LabelHighLevelCount = new JLabel( "0" ); m_LabelHighLevelCount.setHorizontalAlignment( JLabel.RIGHT ); m_LabelHighLevelCount.setVerticalAlignment( JLabel.TOP ); m_LabelHighLevelCount.setFont( m_BoldFont ); //TextAreaDescription //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- m_TextAreaNotes = new JEditorPane();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -