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

📄 jcgamewindow.java

📁 非常好的java collapse游戏代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * JCollapse - Java Collapse Game * Copyright (C) 2005 Erico Gon鏰lves Rimoli *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. *  * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. */package sourceforge.net.projects.jcollapse.game;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JApplet;import javax.swing.JEditorPane;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JSeparator;import javax.swing.WindowConstants;import sourceforge.net.projects.jcollapse.engine.block.Block;import sourceforge.net.projects.jcollapse.engine.block.BombBlock;import sourceforge.net.projects.jcollapse.engine.block.SimpleBlock;import sourceforge.net.projects.jcollapse.engine.JCListener;import sourceforge.net.projects.jcollapse.engine.JCModel;import sourceforge.net.projects.jcollapse.engine.sound.Midi;import sourceforge.net.projects.jcollapse.engine.sound.Wave;import sourceforge.net.projects.jcollapse.game.components.DLHelper;import sourceforge.net.projects.jcollapse.game.components.GameControl;import sourceforge.net.projects.jcollapse.game.components.GameControlListener;import sourceforge.net.projects.jcollapse.game.components.JCButton;import sourceforge.net.projects.jcollapse.game.components.JCComponent;import sourceforge.net.projects.jcollapse.game.components.JCComponentListener;import sourceforge.net.projects.jcollapse.game.components.JCPanel;import sourceforge.net.projects.jcollapse.game.components.SoundControl;import sourceforge.net.projects.jcollapse.game.components.SoundControlListener;import sourceforge.net.projects.jcollapse.game.components.SoundControl.SoundEvent;import sourceforge.net.projects.jcollapse.game.effects.FadeImageEffect;import sourceforge.net.projects.jcollapse.game.effects.TextEffect;import sourceforge.net.projects.jcollapse.game.effects.FadeImageEffect.Fade;import sourceforge.net.projects.jcollapse.game.levels.Level;import sourceforge.net.projects.jcollapse.game.levels.LevelList;/** * The JCGameWindow class * @author  erico */public class JCGameWindow extends JApplet {	/**	 * The game version	 */	public static final String APPLICATION_VERSION = "0.2.0";		/**	 * Last build date 	 */	public static final String APPLICATION_DATE = "200602192249";		/**	 * The application name 	 */	public static final String APPLICATION_NAME = "JCollapse Game";		/**	 * The command line to disable sound	 */	private static final String CMDLINE_SOUND_DISABLED = "-noSound";	private static String[] m_CommandLineParameters;		//game components	private JCComponent m_JCComponent;	private LevelList m_LevelList;	private SoundControl m_SoundControl;	private GameControl m_GameControl;		//game effects	private TextEffect m_GameOverEffect;	private TextEffect m_PauseEffect;	private TextEffect m_LevelStartedEffect;	private FadeImageEffect m_IntroEffect;		//game window or null if is applet	private static JFrame m_JFrame;		//if components are initialized, value is true	private boolean m_IsComponentsInitialized = false;	//basic UI	private JCPanel m_MainPanel;	private JCPanel m_StatusPanel;	private JCButton m_ButtonQuit;	private JCButton m_ButtonPause;	private JCButton m_ButtonNewGame;	private JCButton m_ButtonOptions;	private JLabel m_LabelGameStatus;	private JLabel m_LabelLevelName;	private JSeparator m_SeparatorGameStatus;	private JLabel m_LabelScore;	private JLabel m_LabelScorePoints;	private JLabel m_LabelHighScore;	private JLabel m_LabelHighScorePoints;	private JLabel m_LabelLevel;	private JLabel m_LabelLevelCount;	private JLabel m_LabelRecord;	private JSeparator m_SeparatorRecord;	private JLabel m_LabelHighLevel;	private JLabel m_LabelHighLevelCount;	private JLabel m_LabelLines;	private JLabel m_LabelLinesRemains;	private JEditorPane m_TextAreaNotes;		//style	private final Font m_NormalFont = new Font( "Dialog", Font.PLAIN, 10 );	private final Font m_BoldFont = new Font( "Dialog", Font.BOLD, 10 );		//other windows	private OptionsWindow m_OptionsWindow;	/**	 * The application entry in Window mode	 * @param args the arguments<br><br>	 * You can use -noSound to disable sounds	 */	public static void main( String[] args ) {		m_CommandLineParameters = args;				System.out.println( APPLICATION_NAME );		System.out.println( " Interface version " + APPLICATION_VERSION );		System.out.println( " Engine version " + JCModel.getVersion() );		System.out.println( " Build in " + APPLICATION_DATE );				System.out.println();		System.out.println( "Command line arguments: " );		System.out.println( " " + CMDLINE_SOUND_DISABLED + ": to disable sound;" );		System.out.println();		System.out.println();				m_JFrame = new JFrame();		new JCGameWindow( args );	}		/**     * Create new form JCGameWindow without parameters (used in applets)     */    public JCGameWindow() {    }    	/**     * Create new form JCGameWindow with parameters     * @param args the command line arguments     */    public JCGameWindow( String[] args ) {    	initialize( args );    }    	/* (non-Javadoc)	 * @see java.applet.Applet#init()	 */	public void init() {    	//show wait message to browser (if is applet)    	showStatus( "Wait a moment, the game is loading..." );	}		/* (non-Javadoc)	 * @see java.applet.Applet#stop()	 */	public void stop() {		exitGame();	}		/* (non-Javadoc)	 * @see java.applet.Applet#start()	 */	public void start() {		initialize( null );	}		private void initialize( String[] args ) {        //if components are not initialized		if( !m_IsComponentsInitialized ) {        	initializeComponents();        }		/*		 * wait for game to be loaded and		 * show effect in main game board/play intro music only		 * when game is not load yet!		*/		new Thread( new Runnable() {			public void run() {		    	while( !m_JCComponent.isValid() )		    		Thread.yield();		    			    	//if game not start (if user press new game when thread is running...)		    	if( !m_JCComponent.isRunning() ) {		    		m_JCComponent.drawEffect( m_IntroEffect );		    		m_SoundControl.doEvent( "intro", SoundEvent.PLAY );		    	}			}		}).start();	}	    private void initializeComponents() {    	//LayoutManager    	GridBagLayout mainLayout = new GridBagLayout();    	GridBagLayout statusLayout = new GridBagLayout();    	GridBagConstraints constraints = new GridBagConstraints();    	//LevelList    	//----------------------------------------------------------------------------------------------------------------------------------------------------------------------    	m_LevelList = new LevelList( DLHelper.getInstance().getURL( "/sourceforge/net/projects/jcollapse/game/resources/levels/levelList.cll" ) );    	    	//GameControl    	//----------------------------------------------------------------------------------------------------------------------------------------------------------------------    	m_GameControl = new GameControl();    	    	//GameControl Listener    	m_GameControl.addGameControlListener( new GameControlListener() {    		public void scoreChanged( int newScore ) {    			m_LabelScorePoints.setText( Integer.toString( newScore ) );    		}

⌨️ 快捷键说明

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