亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shooter.java

?? CroftSoft Code Library是一個開源的可移植的純Java游戲庫
?? JAVA
字號:
     package com.croftsoft.apps.shooter;
     
     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.painter.SpacePainter;
     import com.croftsoft.core.animation.sprite.IconSprite;
     import com.croftsoft.core.animation.sprite.TextSprite;
     import com.croftsoft.core.awt.image.ImageLib;     import com.croftsoft.core.gui.LifecycleWindowListener;     import com.croftsoft.core.lang.ClassLib;
     import com.croftsoft.core.lang.lifecycle.Lifecycle;
     import com.croftsoft.core.util.loop.FixedDelayLoopGovernor;

     /*********************************************************************
     * Main Shooter class.
     *
     * @version
     *   2003-07-23     * @since
     *   2002-03-23
     * @author
     *   <a href="http://www.croftsoft.com/">David Wallace Croft</a>
     *********************************************************************/

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

     private static final String  VERSION
       = "2003-07-17";

     private static final String  TITLE
       = "CroftSoft Shooter";

     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     = 50.0;

     private static final double  ATTACKER_DENSITY = 4.0 / ( 600 * 400 );

     /** pixels per frame */
     private static final double  ATTACKER_VELOCITY = 100.0 / FRAME_RATE;

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

     private static final String  SHOOTER_REST_IMAGE_FILENAME
       = MEDIA_DIR + "shooter_rest.png";

     private static final String  SHOOTER_BANG_IMAGE_FILENAME
       = MEDIA_DIR + "shooter_bang.png";

     private static final String  SHOOTER_BOOM_IMAGE_FILENAME
       = MEDIA_DIR + "shooter_boom.png";

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

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

     private static final Color   BACKGROUND_COLOR
       = Color.BLACK;

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

     private AnimatedComponent   animatedComponent;

     private ShooterSprite       shooterSprite;

     private AttackerSprite [ ]  attackerSprites;

     private long                highScore;

     private TextSprite          scoreTextSprite;

     private Random              random;

     private AudioClip           explodeAudioClip;

     private SpacePainter        spacePainter;

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

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

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

       Shooter  shooter = new Shooter ( );

       jFrame.setContentPane ( shooter );

       LifecycleWindowListener.launchFrameAsDesktopApp (
         jFrame,
         new Lifecycle [ ] { shooter },
         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.setLoopGovernor (
         new FixedDelayLoopGovernor ( 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 ( );       try       {
         Image  shooterRestImage = loadAutomaticImage (
           SHOOTER_REST_IMAGE_FILENAME, Transparency.BITMASK );

         Image  shooterBangImage = loadAutomaticImage (
           SHOOTER_BANG_IMAGE_FILENAME, Transparency.BITMASK );

         Image  shooterBoomImage = loadAutomaticImage (
           SHOOTER_BOOM_IMAGE_FILENAME, Transparency.BITMASK );

         URL  bangAudioURL = getClass ( ).getClassLoader ( )
           .getResource ( BANG_AUDIO_FILENAME );
         AudioClip  bangAudioClip = Applet.newAudioClip ( bangAudioURL );

         shooterSprite = new ShooterSprite (
           shooterRestImage,
           shooterBangImage,
           shooterBoomImage,
           bangAudioClip,
           this );

         animatedComponent.addMouseListener ( shooterSprite );

         animatedComponent.addMouseMotionListener ( shooterSprite );       }       catch ( IOException  ex )       {         ex.printStackTrace ( );       }       // attackers

       attackerSprites = new AttackerSprite [ 0 ];

       explodeAudioClip = Applet.newAudioClip (
         getClass ( ).getClassLoader ( ).getResource (
         EXPLODE_AUDIO_FILENAME ) );

       random = new Random ( );

//     shooterBounds = new Rectangle ( );

       scoreTextSprite = new TextSprite ( TITLE );

       scoreTextSprite.setX ( 20 );

       scoreTextSprite.setY ( 20 );

       scoreTextSprite.setColor ( Color.RED );

       spacePainter = new SpacePainter ( );
     }

     public void  start   ( ) { animatedComponent.start   ( ); }

     public void  stop    ( ) { animatedComponent.stop    ( ); }

     public void  destroy ( ) { animatedComponent.destroy ( ); }

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

     public AttackerSprite [ ]  getAttackerSprites ( )
     //////////////////////////////////////////////////////////////////////
     {
       return attackerSprites;
     }

     //////////////////////////////////////////////////////////////////////
     // interface ComponentAnimator methods
     //////////////////////////////////////////////////////////////////////

     public void  update ( JComponent  component )
     //////////////////////////////////////////////////////////////////////
     {
       component.repaint ( );       AttackerSprite [ ]  attackerSprites = this.attackerSprites;

       for ( int  i = 0; i < attackerSprites.length; i++ )
       {
         attackerSprites [ i ].update ( component );
       }

       Shape  shooterCollisionShape = shooterSprite.getCollisionShape ( );

       if ( shooterCollisionShape != null )
       {
         Rectangle2D  shooterCollisionRectangle2D
           = shooterCollisionShape.getBounds2D ( );

         for ( int  i = 0; i < attackerSprites.length; i++ )
         {
           Shape  attackerCollisionShape
             = attackerSprites [ i ].getCollisionShape ( );

           if ( attackerCollisionShape != null )
           {
             if ( attackerCollisionShape.intersects (
               shooterCollisionRectangle2D ) )
             {
               shooterSprite.setHit ( );

               attackerSprites [ i ].setHit ( );

               break;
             }
           }
         }
       }

       shooterSprite.update ( component );

       long  score = shooterSprite.getScore ( );

       highScore = score > highScore ? score : highScore;

       scoreTextSprite.setText (
         "High Score:  " + highScore + "  Score:  " + score );     }

     public void  paint (
       JComponent  component,
       Graphics2D  graphics )
     //////////////////////////////////////////////////////////////////////
     {
       spacePainter.paint ( component, graphics );

       AttackerSprite [ ]  attackerSprites = this.attackerSprites;

       for ( int  i = 0; i < attackerSprites.length; i++ )
       {
         attackerSprites [ i ].paint ( component, graphics );
       }

       shooterSprite.paint ( component, graphics );

       scoreTextSprite.paint ( component, graphics );
     }

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

     private Image  loadAutomaticImage (       String  imageFilename,       int     transparency )       throws IOException     //////////////////////////////////////////////////////////////////////     {       return ImageLib.loadAutomaticImage (         imageFilename,         transparency,         animatedComponent,         getClass ( ).getClassLoader ( ),         null );     }     private void  resetBounds ( )
     //////////////////////////////////////////////////////////////////////
     {
       shooterSprite.resetScore ( );

       int  attackerCount = ( int ) Math.round (
         ATTACKER_DENSITY
         * animatedComponent.getWidth  ( )
         * animatedComponent.getHeight ( ) );

       attackerSprites = new AttackerSprite [ attackerCount ];

       for ( int  i = 0; i < attackerSprites.length; i++ )
       {
         AttackerSprite  attackerSprite = new AttackerSprite (
           explodeAudioClip,
           random,
           ATTACKER_VELOCITY );

         attackerSprite.setY ( Double.POSITIVE_INFINITY );

         attackerSprites [ i ] = attackerSprite;
       }
     }

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久久久久久久久| 亚洲国产一区二区a毛片| 久久国产精品无码网站| 日韩限制级电影在线观看| 天天操天天干天天综合网| 欧美另类久久久品| 蓝色福利精品导航| 国产日韩精品一区二区浪潮av| 国产美女一区二区| 国产精品国产三级国产aⅴ入口| 不卡电影一区二区三区| 一区二区三区视频在线看| 欧美丰满美乳xxx高潮www| 日韩影院免费视频| 久久久久久久久99精品| av亚洲精华国产精华精华| 亚洲一区二区三区四区的| 制服.丝袜.亚洲.中文.综合| 美国毛片一区二区| 国产精品久久久久影院色老大 | 毛片基地黄久久久久久天堂| 精品国精品国产尤物美女| 成人午夜看片网址| 亚洲成a人片在线观看中文| 精品国产一区二区精华| 色婷婷亚洲婷婷| 蜜桃视频第一区免费观看| 国产精品天天摸av网| 欧美日韩久久一区二区| 国产精品一区一区| 亚洲永久免费av| xf在线a精品一区二区视频网站| 91亚洲精品一区二区乱码| 麻豆精品一区二区综合av| 亚洲欧洲美洲综合色网| 日韩色视频在线观看| 99久久精品99国产精品 | 亚洲欧美综合色| 日韩欧美综合在线| 91免费看视频| 黄页网站大全一区二区| 亚洲在线观看免费视频| 中文字幕巨乱亚洲| 91精品国产品国语在线不卡| 波多野结衣91| 国内外成人在线| 亚洲一区免费在线观看| 国产欧美va欧美不卡在线| 91精品啪在线观看国产60岁| 99国产精品视频免费观看| 精品亚洲国产成人av制服丝袜| 一区二区三区欧美日韩| 日本一区二区三区久久久久久久久不 | 成人在线综合网| 麻豆国产一区二区| 成人一区二区三区| 久久国产生活片100| 香蕉成人伊视频在线观看| 亚洲精品国产成人久久av盗摄| 久久久久久电影| 欧美成人a在线| 精品1区2区3区| 色综合激情五月| 成人h动漫精品一区二区| 国模套图日韩精品一区二区| 蜜桃视频一区二区| 午夜精品视频一区| 一区二区在线电影| 亚洲美女视频在线观看| 国产精品久久久久久久久搜平片| 国产亚洲综合av| 欧美成人性战久久| 欧美一区二区观看视频| 6080国产精品一区二区| 欧美亚洲动漫精品| 欧美日韩在线观看一区二区 | 日韩国产欧美在线观看| 亚洲综合自拍偷拍| 夜夜精品视频一区二区| 亚洲黄色尤物视频| 一区二区三区久久| 亚洲综合视频网| 一区二区三区四区在线| 一级做a爱片久久| 亚洲自拍欧美精品| 色婷婷久久久亚洲一区二区三区| 91在线视频播放地址| 91色porny| 在线视频国内自拍亚洲视频| 在线观看三级视频欧美| 欧美日韩精品一区二区| 91麻豆精品91久久久久同性| 欧美一区国产二区| 日韩精品一区二区三区三区免费| 精品欧美久久久| 久久综合九色综合久久久精品综合| 久久久久久久综合狠狠综合| 亚洲国产成人在线| 伊人开心综合网| 日韩高清不卡一区二区三区| 捆绑紧缚一区二区三区视频| 国产精品原创巨作av| 成人av电影观看| 91国产免费看| 日韩一卡二卡三卡四卡| 久久久.com| 亚洲男女毛片无遮挡| 五月婷婷激情综合网| 久久97超碰色| 成人av网在线| 91 com成人网| 中文字幕精品—区二区四季| 亚洲激情在线激情| 麻豆中文一区二区| av电影天堂一区二区在线观看| 欧美性大战久久久| 亚洲精品在线电影| 亚洲精品日韩综合观看成人91| 日韩中文字幕亚洲一区二区va在线| 国产一区二区三区四| 91国偷自产一区二区开放时间| 欧美一区二区三区成人| 国产精品免费久久| 蜜臀91精品一区二区三区| 成人18视频在线播放| 日韩一区二区免费高清| ...av二区三区久久精品| 日本中文在线一区| 91尤物视频在线观看| 精品国产一区二区三区久久久蜜月 | 国产精品久久久久aaaa| 日韩av一级电影| 91毛片在线观看| 精品区一区二区| 亚洲成人av一区| 不卡的av电影| 欧美成人女星排行榜| 亚洲精品成人在线| 国产成人自拍网| 欧美一区二区三级| 夜夜夜精品看看| 成人av电影在线网| wwwwxxxxx欧美| 日本vs亚洲vs韩国一区三区 | 亚洲影院免费观看| 成人免费视频免费观看| 亚洲精品在线三区| 日韩精品成人一区二区在线| 91美女片黄在线观看| 国产美女精品人人做人人爽| 欧美精品亚洲一区二区在线播放| 亚洲少妇最新在线视频| 成人综合婷婷国产精品久久免费| 欧美电影免费观看高清完整版在线观看| 亚洲人成网站精品片在线观看| 国产麻豆欧美日韩一区| 欧美一卡二卡在线观看| 亚洲国产日韩综合久久精品| 色欧美乱欧美15图片| 国产精品久久久久9999吃药| 国产99一区视频免费| 久久久亚洲精品石原莉奈| 免费在线视频一区| 91精品婷婷国产综合久久竹菊| 亚洲国产精品人人做人人爽| 色综合久久久网| 亚洲美女在线一区| 色综合亚洲欧洲| 亚洲成人动漫一区| 欧美午夜免费电影| 亚洲综合在线第一页| 欧美伊人久久大香线蕉综合69| 亚洲欧美一区二区在线观看| 成人黄色片在线观看| 国产精品丝袜一区| 成人精品小蝌蚪| 中文字幕色av一区二区三区| jlzzjlzz亚洲女人18| 亚洲欧美另类综合偷拍| 色狠狠综合天天综合综合| 亚洲已满18点击进入久久| 欧美性色综合网| 日韩和欧美一区二区| 欧美tickling挠脚心丨vk| 久久99精品久久久久久久久久久久 | 一区二区三区 在线观看视频| 欧洲生活片亚洲生活在线观看| 亚洲一卡二卡三卡四卡五卡| 欧美性猛交xxxx乱大交退制版| 午夜精品久久久久久| 日韩午夜激情免费电影| 激情文学综合插| 国产精品麻豆一区二区| 91免费国产视频网站| 亚洲va韩国va欧美va| 2024国产精品| 99久久精品99国产精品| 五月激情六月综合| 久久久久国产精品麻豆ai换脸 | 美女视频黄a大片欧美|