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

📄 dodger.java

📁 Java游戏高级编程!!很不错的!!!Java游戏高级编程!!很不错的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     package com.croftsoft.apps.dodger;
     
     import java.applet.*;
     import java.awt.*;
     import java.awt.event.*;
     import java.awt.geom.*;
     import java.io.*;
     import java.net.URL;
     import java.util.*;
     import javax.swing.*;
     import javax.swing.event.*;

     import com.croftsoft.core.CroftSoftConstants;     import com.croftsoft.core.animation.AnimatedComponent;     import com.croftsoft.core.animation.ComponentAnimator;     import com.croftsoft.core.animation.Sprite;     import com.croftsoft.core.animation.animator.TileAnimator;     import com.croftsoft.core.animation.clock.SystemClock;     import com.croftsoft.core.animation.sprite.IconSprite;     import com.croftsoft.core.animation.sprite.TextSprite;     import com.croftsoft.core.applet.AppletLib;
     import com.croftsoft.core.awt.image.ImageLib;     import com.croftsoft.core.gui.LifecycleWindowListener;
     import com.croftsoft.core.io.SerializableLib;
     import com.croftsoft.core.jnlp.JnlpLib;
     import com.croftsoft.core.lang.ClassLib;
     import com.croftsoft.core.lang.lifecycle.Lifecycle;

     /*********************************************************************
     * Main Dodger class.
     *
     * @version
     *   2003-09-29     * @since
     *   2002-03-18
     * @author
     *   <a href="http://www.croftsoft.com/">David Wallace Croft</a>
     *********************************************************************/

     public final class  Dodger
       extends JApplet
       implements ComponentAnimator, Lifecycle
     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     {
       
     //////////////////////////////////////////////////////////////////////
     // Applet constants
     //////////////////////////////////////////////////////////////////////

     private static final String  VERSION
       = "2003-09-29";

     private static final String  TITLE
       = "CroftSoft Dodger";

     private static final String  INFO
       = "\n" + TITLE + "\n"       + CroftSoftConstants.COPYRIGHT + "\n"       + CroftSoftConstants.HOME_PAGE + "\n"
       + "Version " + VERSION + "\n";

     //////////////////////////////////////////////////////////////////////
     // Frame constants
     //////////////////////////////////////////////////////////////////////

     private static final String  FRAME_TITLE
       = TITLE;

     private static final String  FRAME_ICON_FILENAME
       = "/images/croftsoft.png";
       
     private static final Dimension  FRAME_SIZE
       = null;

     private static final String  SHUTDOWN_CONFIRMATION_PROMPT
       = "Close " + TITLE + "?";

     //////////////////////////////////////////////////////////////////////
     // animation constants
     //////////////////////////////////////////////////////////////////////

     /** frames per second */
     private static final double  FRAME_RATE    = 60.0;

     /** pixels per second */
     private static final double  FLOW_RATE     = 100.0;

     private static final int  PIXELS_PER_FRAME
       = ( int ) Math.round ( FLOW_RATE / FRAME_RATE );

     private static final int     MAX_OBSTACLES = 200;

     private static final double  OBSTACLE_DENSITY
       = 1 / ( 5.0 * 32 * 32 );

     private static final String  MEDIA_DIR = "media/dodger/";

     private static final String  DODGER_GREEN_IMAGE_FILENAME
       = MEDIA_DIR + "dodger_green.png";

     private static final String  DODGER_YELLOW_IMAGE_FILENAME
       = MEDIA_DIR + "dodger_yellow.png";

     private static final String  DODGER_RED_IMAGE_FILENAME
       = MEDIA_DIR + "dodger_red.png";

     private static final String  DODGER_BANG_IMAGE_FILENAME
       = MEDIA_DIR + "dodger_bang.png";

     private static final String  DODGER_BOOM_IMAGE_FILENAME
       = MEDIA_DIR + "dodger_boom.png";

     private static final String  BANG_AUDIO_FILENAME
       = MEDIA_DIR + "bang.wav";

     private static final String  OBSTACLE_EXPLODE_AUDIO_FILENAME
       = MEDIA_DIR + "explode.wav";

     private static final Color   BACKGROUND_COLOR
       = Color.WHITE;

     //////////////////////////////////////////////////////////////////////
     // persistence constants
     //////////////////////////////////////////////////////////////////////

     private static final String  FILE_CONTENTS_SPEC = "DodgerData";

     private static final String  LATEST_DATA_FILENAME       = ".croftsoft"       + File.separator + "dodger"       + File.separator + "dodger01.dat";
     private static final String  BACKUP_DATA_FILENAME       = ".croftsoft"       + File.separator + "dodger"       + File.separator + "dodger02.dat";
     private static final String  PERSISTENCE_KEY = FILE_CONTENTS_SPEC;

     //////////////////////////////////////////////////////////////////////
     // instance variables
     //////////////////////////////////////////////////////////////////////

     private AnimatedComponent   animatedComponent;

     private Rectangle           bounds;

     private DodgerSprite        dodgerSprite;

     private ObstacleSprite [ ]  obstacleSprites;

     private Rectangle           dodgerBounds;

     private long                highScore;

     private TextSprite          scoreTextSprite;

     private Random              random;

     private AudioClip           obstacleExplodeAudioClip;

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

     public static void  main ( String [ ]  args )
     //////////////////////////////////////////////////////////////////////
     {
       JFrame  jFrame = new JFrame ( FRAME_TITLE );

       try
       {
         jFrame.setIconImage ( ClassLib.getResourceAsImage (
           Dodger.class, FRAME_ICON_FILENAME ) );
       }
       catch ( Exception  ex )
       {
       }

       Dodger  dodger = new Dodger ( );

       jFrame.setContentPane ( dodger );

       LifecycleWindowListener.launchFrameAsDesktopApp (
         jFrame,
         new Lifecycle [ ] { dodger },
         FRAME_SIZE,
         SHUTDOWN_CONFIRMATION_PROMPT );
     }

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

     public String  getAppletInfo ( )
     //////////////////////////////////////////////////////////////////////
     {
       return INFO;
     }

     //////////////////////////////////////////////////////////////////////
     // interface Lifecycle methods
     //////////////////////////////////////////////////////////////////////

     public void  init ( )
     //////////////////////////////////////////////////////////////////////
     {
       System.out.println ( INFO );

       animatedComponent = new AnimatedComponent ( this, FRAME_RATE );

       animatedComponent.addComponentListener (
         new ComponentAdapter ( )
         {
           public void  componentResized ( ComponentEvent  componentEvent )
           {
             resetBounds ( );
           }
         } );

       Container  contentPane = getContentPane ( );

       contentPane.setLayout ( new BorderLayout ( ) );

       contentPane.add ( animatedComponent, BorderLayout.CENTER );

       animatedComponent.setCursor (
         new Cursor ( Cursor.CROSSHAIR_CURSOR ) );

       animatedComponent.init ( );

       bounds = animatedComponent.getBounds ( );       try       {         Icon  dodgerGreenIcon = new ImageIcon ( loadAutomaticImage (
           DODGER_GREEN_IMAGE_FILENAME, Transparency.BITMASK ) );

         Icon  dodgerYellowIcon = new ImageIcon ( loadAutomaticImage (
           DODGER_YELLOW_IMAGE_FILENAME, Transparency.BITMASK ) );

         Icon  dodgerRedIcon = new ImageIcon ( loadAutomaticImage (
           DODGER_RED_IMAGE_FILENAME, Transparency.BITMASK ) );

         Icon  dodgerBangIcon = new ImageIcon ( loadAutomaticImage (
           DODGER_BANG_IMAGE_FILENAME, Transparency.BITMASK ) );

         Icon  dodgerBoomIcon = new ImageIcon ( loadAutomaticImage (
           DODGER_BOOM_IMAGE_FILENAME, Transparency.BITMASK ) );

         URL  bangAudioURL = getClass ( ).getClassLoader ( )
           .getResource ( BANG_AUDIO_FILENAME );

⌨️ 快捷键说明

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