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

📄 cselectionui.java

📁 网上收集的
💻 JAVA
字号:
package chiidanceapp;


import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Font;
import java.awt.Color;
import java.util.ResourceBundle;

public class CSelectionUI implements Runnable,lyric{
//////////////////////////////////////////////////////////////////////////////////////////
  static ResourceBundle res = ResourceBundle.getBundle("chiidanceapp.Res1");
  private byte LoadCount;
  private byte NameIndex;
  private byte CurrentAnime;

  private int rCloseEyes;
  private int rPointer;
  private int Interval;
  private int rP;
  private int xAnime = 800;
  private int xSpeed;
  private int xLoad = 0;

  private boolean isCloseEye;
  private boolean isPalmFront    = false;
  private boolean canRun         = true;
  private boolean isLoaded       = false;
  private boolean isSelected     = false;

  private Thread aThread;



  private String Name[] = { "本须和 叽(Chii) ",//0
                            "芙蕾娅(Freya)",//1
                            "人工智能天使 " //2
  };

  
  private Image LoadingImage;
  private Image TimeFrame;
  private Image Stick;
  private Image BackGround;

  private Image Button;
  private Image FaceFrame;
  private Image DioFrame;
  private Image SelectPanel;
  private Image SelectYourCharacter;

  
  private Image ipoiter;
  private Image atashi,
                chii,
                kotoko,
                kurochii,
                minoru,
                motosuwa,
                shimizu,
                sumomo,
                yuzuki;

  private Image ChiiFace[] = new Image[ 2 ];
  private Image FreyaFace[] = new Image[ 2 ];

  private Image AiangelFace[] = new Image[ 2 ] ;
  private Image AiangelFaces;

  
  private Image ChiiD;
  private Image Freya;
  private Image Aiangel;

  private Image Anime[] = new Image[13];

  CImage initImage;
  CMidiThread MidiThread;
//////////////////////////////////////////////////////////////////////////////////////////
  public CSelectionUI() {
    MidiThread = new CMidiThread( 6,true );

    initImage = new CImage();
    LoadingImage   = initImage.LoadImage( "Resource/img/g23.jpg" );
    TimeFrame      = initImage.LoadImage( "Resource/images/timeframe.png" );
    Stick          = initImage.LoadImage( "Resource/img/stick.gif" );

    aThread      = new Thread( this );
    canRun       = true;
    aThread.start();

    CurrentAnime = 0;
  }
//////////////////////////////////////////////////////////////////////////////////////////
  public void restartThread()
  {

   canRun = true;
   aThread = new Thread( this );

   aThread.start();
  }

  public void setNameIndex()
  {
    this.NameIndex = 0;
  }

  
  public void setIsSelected( boolean isSelected )
  {
    this.isSelected = isSelected;
  }
/////////////////////////////////////////////////////////////////////////////////////
  public void addNameIndex()
  {
     if( NameIndex < 3 )
      NameIndex++;
      xAnime = 800;
  }

  public void subNameIndex()
  {
     if( NameIndex > 0 )
       NameIndex--;
       xAnime = 800;
  }

  public byte getNameIndex()
  {
    return this.NameIndex;
  }

  public boolean isLoaded()
  {
    return this.isLoaded;
  }
  ////////////////////////////////////////////////////////////////////////////////////
  public void Load()
  {
    atashi           = initImage.LoadImage( "Resource/images/atashi[1].gif" );xLoad += 10;

    chii             = initImage.LoadImage( "Resource/images/chii[1].gif" );xLoad += 10;

    kotoko           = initImage.LoadImage( "Resource/images/kotoko[1].gif" );xLoad += 10;
    kurochii         = initImage.LoadImage( "Resource/images/kurochii[1].gif" );xLoad += 10;
    minoru           = initImage.LoadImage( "Resource/images/minoru[1].gif" );xLoad += 10;
    motosuwa         = initImage.LoadImage( "Resource/images/motosuwa[1].gif" );xLoad += 10;
    shimizu          = initImage.LoadImage( "Resource/images/shimizu[1].gif" );xLoad += 10;
    sumomo           = initImage.LoadImage( "Resource/images/sumomo[1].gif" );xLoad += 10;
    yuzuki           = initImage.LoadImage( "Resource/images/yuzuki[1].gif" );xLoad += 10;

    ChiiFace[ 0 ]      = initImage.LoadImage( "Resource/images/chiiS.jpg" );xLoad += 10;
    ChiiFace[ 1 ]      = initImage.LoadImage( "Resource/images/chii.gif" );xLoad += 10;
    ChiiD              = initImage.LoadImage( "Resource/images/chiiD.gif" );xLoad += 10;

    FreyaFace[ 0 ]     = initImage.LoadImage( "Resource/images/freyaS.jpg" );xLoad += 10;
    FreyaFace[ 1 ]     = initImage.LoadImage( "Resource/images/freya.gif" );xLoad += 10;

    AiangelFace[ 0 ]   = initImage.LoadImage( "Resource/images/p_closeeyes.png" );xLoad += 10;
    AiangelFace[ 1 ]   = initImage.LoadImage( "Resource/images/p_openeyes.png" );xLoad += 10;
    AiangelFaces       = initImage.LoadImage( "Resource/images/AiangelS.png" );xLoad += 10;

    Freya              = initImage.LoadImage( "Resource/images/startfreya.jpg" );xLoad += 10;
    Aiangel            = initImage.LoadImage( "Resource/images/aiangel.jpg" );xLoad += 10;

    BackGround         = initImage.LoadImage( "Resource/images/shader.png" );xLoad += 10;
    FaceFrame          = initImage.LoadImage( "Resource/images/portraitframe.png" );xLoad += 10;
    DioFrame           = initImage.LoadImage( "Resource/images/diologframe.png" );xLoad += 10;
    SelectPanel        = initImage.LoadImage( "Resource/img/selectPanel.png" );xLoad += 10;
    SelectYourCharacter = initImage.LoadImage( "Resource/img/selectyourcharacter.png" );xLoad += 10;
    Button             = initImage.LoadImage( "Resource/img/button.png" );xLoad += 10;


    rP = ( int )( 9 * Math.random() )+1;

    switch( rP )
    {
     case 0:
       ipoiter = atashi;
       break;
     case 1:
       ipoiter = chii;
       break;
     case 2:
       ipoiter = kotoko;
       break;
     case 3:
       ipoiter = kurochii;
       break;
     case 4:
       ipoiter = minoru;
       break;
     case 5:
       ipoiter = motosuwa;
       break;
     case 6:
       ipoiter = shimizu;
       break;
     case 7:
       ipoiter =sumomo;
       break;
     case 8:
       ipoiter = yuzuki;
       break;
     case 9:
       ipoiter = yuzuki;
       break;
      default:
       ipoiter = atashi;
       break;
    }


    xLoad += 130;

    xLoad = 361;

    for( int i = 0;i<13;i++ )
    {
     Anime[ i ] = initImage.LoadImage( "Resource/images/awake"+( i+1 )+".jpg" );     Anime[ i ] = initImage.LoadImage( "Resource/images/awake"+( i+1 )+".jpg" );
    };

    isLoaded = true;

  }

  
  public void destruct()
  {
    atashi           = null;
    chii             = null;
    kotoko           = null;
    kurochii         = null;
    minoru           = null;
    motosuwa         = null;
    shimizu          = null;
    sumomo           = null;
    yuzuki           = null;

    ChiiFace[ 0 ]      = null;
    ChiiFace[ 1 ]      = null;
    ChiiD              = null;

    FreyaFace[ 0 ]     = null;
    FreyaFace[ 1 ]     = null;

    AiangelFace[ 0 ]   = null;
    AiangelFace[ 1 ]   = null;
    AiangelFaces       = null;

    Freya              = null;
    Aiangel            = null;

    BackGround         = null;
    FaceFrame          = null;
    DioFrame           = null;
    SelectPanel        = null;
    SelectYourCharacter = null;
    Button              = null;
    ipoiter             = null;

    Anime[0] = null;
    Anime[1] = null;
    Anime[2] = null;
    Anime[3] = null;
    Anime[4] = null;
    Anime[5] = null;
    Anime[6] = null;
    Anime[7] = null;
    Anime[8] = null;
    Anime[9] = null;
    Anime[10] = null;
    Anime[11] = null;
    Anime[12] = null;

    isLoaded = false;
    canRun   = false;

    LoadCount = 0;

    xLoad = 0;

    MidiThread.MidiPlayer.close();

    System.gc();
  }

//////////////////////////////////////////////////////////////////////////////////////////////////
  public void draw( Graphics g,JPanel GamePanel )
  {
     //打开文本抗锯齿
    if( g instanceof Graphics2D )
    {
      Graphics2D g2 = ( Graphics2D )g;

      g2.setRenderingHint(
        RenderingHints.KEY_TEXT_ANTIALIASING,
        RenderingHints.VALUE_TEXT_ANTIALIAS_ON );
    }

    if( isLoaded )
    {
      g.drawImage( BackGround,0,0,GamePanel );
      g.drawImage( SelectPanel,20,20,750,430,GamePanel );
      g.drawImage( DioFrame,45,470,GamePanel );
      g.drawImage( ChiiD,55,480,GamePanel );
      g.drawImage( SelectYourCharacter,80,50,GamePanel );
      g.drawImage( Button,700,390,GamePanel );

      g.setColor( Color.white );

      switch( NameIndex )
      {
       case 0:
         g.fillRect( 100,95,90,90 );
         g.drawImage( ipoiter,35,110,GamePanel ) ;
         g.drawImage( ChiiFace[ 1 ],105,100,GamePanel ) ;
         g.drawImage( FreyaFace[ 0 ],105,200,GamePanel ) ;
         g.drawImage( AiangelFaces,105,300,GamePanel ) ;

         g.drawImage( FaceFrame, 100, 95, GamePanel );

         g.drawImage( Anime[ CurrentAnime ], xAnime, 95,500,286, GamePanel );

         g.setFont( new Font( "新宋体",Font.PLAIN,25 ) );
         g.drawString( Name[0],360,420 );
         break;
       case 1:
         g.fillRect( 100,195,90,90 );
         g.drawImage( ipoiter,35,220,GamePanel ) ;
         g.drawImage( ChiiFace[ 0 ],105,100,GamePanel ) ;
         g.drawImage( FreyaFace[ 1 ],105,200,GamePanel ) ;
         g.drawImage( AiangelFaces,105,300,GamePanel ) ;
         g.drawImage( FaceFrame, 100, 195, GamePanel );
         g.drawImage( Freya, xAnime, 95,500,278, GamePanel );

         g.setFont( new Font( "新宋体",Font.PLAIN,25 ) );
         g.drawString( Name[ 1 ],360,420 );
         break;
       case 2:
          g.fillRect( 100,295,90,90 );
          g.drawImage( ipoiter,35,320,GamePanel ) ;
          g.drawImage( ChiiFace[ 0 ],105,100,GamePanel ) ;
          g.drawImage( FreyaFace[ 0 ],105,200,GamePanel ) ;

          if( isCloseEye )
          {
            g.drawImage( AiangelFace[ 0 ], 105, 300, GamePanel );
          }
          else
          {
            g.drawImage( AiangelFace[ 1 ], 105, 300, GamePanel );
          }
          g.drawImage( FaceFrame, 100, 295, GamePanel );
          g.drawImage( Aiangel, xAnime, 95, GamePanel );

          g.setFont( new Font( "新宋体",Font.PLAIN,25 ) );
          g.drawString( Name[ 2 ],360,420 );
          break;
        case 3:
          g.drawImage( AiangelFaces,105,300,GamePanel ) ;
          g.drawImage( ChiiFace[ 0 ],105,100,GamePanel ) ;
          g.drawImage( FreyaFace[ 0 ],105,200,GamePanel ) ;
          g.drawImage( Freya, xAnime, 95,500,278, GamePanel );
          g.drawImage( ipoiter,650,390,GamePanel ) ;
         break;
      }

      g.setColor( Color.black );
      
      g.setFont( new Font( "新宋体",Font.PLAIN,25 ) );
      g.drawString( "Chii",190,500 );
      g.drawString( "「按上下键选人,然后按ENTER键开始游戏」",180,530 );
    }
    else
    {
      g.drawImage( LoadingImage,0,0,GamePanel );
      g.setFont( new Font( "SansSerif",Font.BOLD,20 ) );
      g.drawString( "正在读取,请稍候",300,530 );
      g.setFont( new Font( "SansSerif",Font.BOLD,25 ) );
      g.drawString( "Loading, please wait......",250,570 );
      g.drawImage( TimeFrame,200,460,400,12,GamePanel );
      g.drawImage( Stick,220,461,xLoad,10,GamePanel );
    }

     g.dispose();
  }
///////////////////////////////////////////////////////////////////////////////////////////////////

  public void run() {

    while ( canRun ) {

       if( LoadCount < 4 )
       {
         LoadCount++;
       }

       if( LoadCount == 2 )
       {
         Load();
       }

       if( isCloseEye )
       {
         isCloseEye = false;
       }

       rCloseEyes = ( int )( 12 * Math.random() )+1;

       if( rCloseEyes == 1 )
       {
         isCloseEye = true;
       }

       if( CurrentAnime < 13 )
       {
         CurrentAnime++;
       }
       if( CurrentAnime >=13 )
       {
         CurrentAnime = 0;
       }

       if( xAnime > 200 )
       {
         Interval = 10;
         xAnime   -= ( ++xSpeed );
       }
       if( xAnime <= 200 )
       {
         xAnime   = 200;
         Interval = 400;
       }

       if( xSpeed >= 60 )
       {
         xSpeed = 60;
       }

       try {
           aThread.sleep( Interval );
       }catch ( Exception ex ) {}

    }
  }


}

⌨️ 快捷键说明

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