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

📄 cgameframe.java

📁 网上收集的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package chiidanceapp;


import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Font;
import java.awt.Color;
import java.awt.Image;
import java.awt.Container;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.util.ResourceBundle;

public class CGameFrame extends JFrame {
 //////////////////////////////////////////////////////////////////////////////////////////////////////////
  private byte GameState = 1;
  private int  Key;
  private int  xMouse;
  private int  yMouse;
  private int  ScreenWidth;
  private int  ScreenHeight;

  private static int  Act;
  private static int  Score ;
  private static int  NameIndex ;

  private Image     OffScreen ;
  private Graphics  DrawOffScreen ;

  private Dimension dimension;
  private Toolkit kit;

  /////////////////////////////////////////////////////////////////////////////////////////////////////////

  CGamePanel GamePanel;

  configdata datRe;

  CLoad Load = new CLoad();
  CSave Save = new CSave();
  /////////////////////////////////////////////////////////////////////////////////////////////////////////
  public CGameFrame() {
    datRe        = ( configdata )Load.loadGame();

    kit          = Toolkit.getDefaultToolkit();
    dimension    = kit.getScreenSize();
    ScreenWidth  = dimension.width;
    ScreenHeight = dimension.height;

    GamePanel = new CGamePanel();
    addKeyListener( new GameKeyHandler() );
    addMouseListener( new GameMouseHandler() );
    addMouseMotionListener( new GameMouseHandler() );

    getContentPane().add( GamePanel );
    setTitle( "ChiiDance1.1" );
    setIconImage( kit.getImage( "Resource/images/chii[1].gif" ) );

    if( ScreenWidth <= 800 )
    {
      setSize( 800, 600 );
      setLocation( 0,0 );
    }
    else
    {
      setSize( 800, 600 );
      setLocation( ScreenWidth/2 - this.getWidth()/2,
                   ScreenHeight/2 - this.getHeight()/2 );
    }

    if( datRe.getIsFullScreen() == 1 )
    {
      CDisplayMode DisplayMode = new CDisplayMode( this );
    }
    else
    {
      setUndecorated( true );
    }

    show();
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////
  
  private class GameKeyHandler implements KeyListener
 {
    public void keyTyped( KeyEvent e ) {
      if( Key == KeyEvent.VK_ESCAPE )
      {
        if( GamePanel.SceneInfo.getGameState() == 0  )
        {
           GamePanel.StartUI.MidiThread.stopMidiThread();

           CMusicPlayer sayByeBye = new CMusicPlayer();
           sayByeBye.initMusic( 6 );
           sayByeBye.play();

           System.exit(0);
        }
        else if( GamePanel.SceneInfo.getGameState() == 3 )
        {
          GamePanel.SceneInfo.setGameState( 0 );
        }
      }
    }

    public void keyPressed( KeyEvent e ) {
      Key = e.getKeyCode();

      switch( GamePanel.SceneInfo.getGameState() )
      {
        case 0:
          selectTitle();
          break;
        case 1:
          selectRole();
          break;
        case 2:
          selectDanceMenu();
          handleDanceState();
          handleFinish();
          break;
        case 4:
          if( Key == KeyEvent.VK_ENTER )
          {
            if( GamePanel.StartUI == null )
             {
               GamePanel.StartUI = new CStartUI();
               GamePanel.SceneInfo.setGameState( 0 );
             }
             else
             {
               GamePanel.DanceUI.destruct();
               GamePanel.DanceUI = null;

               GamePanel.StartUI.Load();
               GamePanel.StartUI.restartThread();
               GamePanel.StartUI.MidiThread.restartMidiThread();

               GamePanel.SceneInfo.setGameState( 0 );
             }
          }
      }
    }
         //########################################################################################
         
         public void selectTitle()
         {
            if( !GamePanel.StartUI.isMenuVisible()
                 && Key == KeyEvent.VK_ENTER )
            {
                 
                 GamePanel.StartUI.setMenuVisible( true );
            }
            else if( GamePanel.StartUI.isMenuVisible()
                     && Key == KeyEvent.VK_UP )
            {
                 GamePanel.StartUI.subMenuIndex();
            }
            else if( GamePanel.StartUI.isMenuVisible()
                     && Key == KeyEvent.VK_DOWN
                     && GamePanel.StartUI.getMenuIndex() != 1 )
            {
                 GamePanel.StartUI.addMenuIndex();
            }
            else if( GamePanel.StartUI.isMenuVisible()
                     && Key == KeyEvent.VK_DOWN
                     && GamePanel.StartUI.getMenuIndex() == 1 )
            {
                 Score = Load.loadScore();
                 GamePanel.StartUI.addMenuIndex();
                 GamePanel.StartUI.setScore( Score );
            }

            else if( GamePanel.StartUI.isMenuVisible()
                     && GamePanel.StartUI.getMenuIndex() == 0
                     && Key == KeyEvent.VK_ENTER )
            {
                GamePanel.StartUI.MidiThread.MidiPlayer.close();
                
                if( GamePanel.SelectionUI == null )
                {
                  
                  GamePanel.SelectionUI = new CSelectionUI();
                }
                else
                {
                  GamePanel.SelectionUI.restartThread();
                  GamePanel.SelectionUI.MidiThread.restartMidiThread();
                  GamePanel.SelectionUI.setNameIndex();
                }

                GamePanel.StartUI.destruct();

                GamePanel.SceneInfo.setGameState( 1 );

                System.gc();

            }
            else if( GamePanel.StartUI.isMenuVisible()
                     && GamePanel.StartUI.getMenuIndex() == 1
                     && Key == KeyEvent.VK_ENTER )
            {
                 
                 GamePanel.StartUI.MidiThread.closeMidiThread();

                 CMusicPlayer sayByeBye = new CMusicPlayer();
                 sayByeBye.initMusic( 6 );
                 sayByeBye.play();

                 System.exit( 0 );
             }
             else if( GamePanel.StartUI.isMenuVisible()
                     && GamePanel.StartUI.getMenuIndex() == 2
                     && Key == KeyEvent.VK_ENTER )
             {
                
                if( GamePanel.ScoreUI == null )
                {
                  GamePanel.ScoreUI = new CScoreUI();
                  GamePanel.SceneInfo.setGameState( 3 );
                }
                else
                {
                  GamePanel.ScoreUI.setScore( Score );
                  GamePanel.SceneInfo.setGameState( 3 );
                }
             }

         }
         //########################################################################################
         
         public void selectRole()
         {
           if( Key == KeyEvent.VK_UP
               && GamePanel.SelectionUI.isLoaded()
               && GamePanel.SelectionUI.getNameIndex() != 0 )
           {
             
             GamePanel.SelectionUI.subNameIndex();
           }
           else if( Key == KeyEvent.VK_DOWN
                    && GamePanel.SelectionUI.isLoaded()
                    && GamePanel.SelectionUI.getNameIndex() != 3 )
           {
              
              GamePanel.SelectionUI.addNameIndex();
           }
           else if( Key == KeyEvent.VK_ENTER
                    && GamePanel.SelectionUI.isLoaded()
                    && GamePanel.SelectionUI.getNameIndex() != 3 )
           {
             
             GamePanel.SelectionUI.MidiThread.closeMidiThread();

             NameIndex  = GamePanel.SelectionUI.getNameIndex();

             GamePanel.DanceUI = new CDanceUI( 1,GamePanel.SelectionUI.getNameIndex(),0 );

             GamePanel.SceneInfo.setGameState( 2 );
           }
           else if( Key == KeyEvent.VK_ENTER
                    && GamePanel.SelectionUI.isLoaded()
                    && GamePanel.SelectionUI.getNameIndex() == 3 )
           {
             
             GamePanel.SelectionUI.MidiThread.MidiPlayer.close();

             if( GamePanel.StartUI == null )
             {
               GamePanel.StartUI = new CStartUI();
             }
             else
             {
               GamePanel.StartUI.Load();
               GamePanel.StartUI.restartThread();
               GamePanel.StartUI.MidiThread.restartMidiThread();
             }

             GamePanel.SelectionUI.destruct();

             GamePanel.SceneInfo.setGameState( 0 );

             System.gc();
           }
         };
         //########################################################################################
          
         public void selectDanceMenu()
         {
            if( GamePanel.DanceUI.isLoaded() && !GamePanel.DanceUI.isShowReadyMessage() )
            {
                if( !GamePanel.DanceUI.getIsMenuVisible()
                    && Key == KeyEvent.VK_ESCAPE )
                {
                  
                  GamePanel.DanceUI.stopMusic();

⌨️ 快捷键说明

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