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

📄 seriworld.java

📁 CroftSoft Code Library是一个开源的可移植的纯Java游戏库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     {       boolean  bulletFired = false;       Bullet [ ]  bullets = ( Bullet [ ] )         modelArrayKeeper.getArray ( Bullet.class );       for ( int  i = 0; i < bullets.length; i++ )       {         Bullet  bullet = bullets [ i ];         if ( !bullet.isActive  ( )           && !bullet.isUpdated ( ) )         {           bullet.fire ( originX, originY, heading );           bulletFired = true;           break;         }       }       if ( !bulletFired )       {         createBullet ( originX, originY, heading );       }     }     public boolean  isBlockedByObstacle ( Shape  shape )     //////////////////////////////////////////////////////////////////////     {       Obstacle [ ]  obstacles = getObstacles ( );       for ( int  i = 0; i < obstacles.length; i++ )       {         Obstacle  obstacle = obstacles [ i ];         if ( obstacle.isActive ( )           && ShapeLib.intersects ( shape, obstacle.getShape ( ) ) )         {           return true;         }       }       return false;     }     public boolean  isBlocked (       Shape  shape,       Model  model )     //////////////////////////////////////////////////////////////////////     {       Impassable [ ]  impassables = getImpassables ( );       for ( int  i = 0; i < impassables.length; i++ )       {         Impassable  impassable = impassables [ i ];         if ( ( impassable != model )           && impassable.isActive ( )           && ShapeLib.intersects ( shape, impassable.getShape ( ) ) )         {           return true;         }       }       return false;     }     public boolean  isBlocked ( Model  model )     //////////////////////////////////////////////////////////////////////     {       return isBlocked ( model.getShape ( ), model );     }     public PointXY  getClosestAmmoDumpCenter ( PointXY  pointXY )     //////////////////////////////////////////////////////////////////////     {       AmmoDumpAccessor  ammoDumpAccessor = ( AmmoDumpAccessor )         getModelClosest ( pointXY, AmmoDumpAccessor.class, null );       if ( ammoDumpAccessor != null )       {         return           ShapeLib.getCenter ( ammoDumpAccessor.getShape ( ), center );       }       return null;     }     public PointXY  getClosestEnemyTankCenter (        PointXY  pointXY,        Color    friendColor )     //////////////////////////////////////////////////////////////////////     {       double  closestDistance = Double.POSITIVE_INFINITY;       int  index = -1;       TankAccessor [ ]  tankAccessors = ( TankAccessor [ ] )         modelArrayKeeper.getArray ( TankAccessor.class );       for ( int  i = 0; i < tankAccessors.length; i++ )       {         TankAccessor  tankAccessor = tankAccessors [ i ];         if ( tankAccessor.isActive ( )           && !tankAccessor.getColor ( ).equals ( friendColor ) )         {           double  distance = pointXY.distanceXY (             ShapeLib.getCenter ( tankAccessor.getShape ( ), center ) );           if ( distance < closestDistance )           {             closestDistance = distance;             index = i;           }         }       }       if ( index > -1 )       {         return ShapeLib.getCenter (           tankAccessors [ index ].getShape ( ), center );       }       return null;     }     public Model  getModel (       PointXY    pointXY,       Class [ ]  classes,       Model      model )     //////////////////////////////////////////////////////////////////////     {       double  x = pointXY.getX ( );       double  y = pointXY.getY ( );       Model [ ]  models = getModels ( );       for ( int  i = 0; i < models.length; i++ )       {         Model  otherModel = models [ i ];         if ( ( otherModel != model )           && otherModel.isActive ( )           && otherModel.getShape ( ).contains ( x, y ) )         {           for ( int  j = 0; j < classes.length; j++ )           {             if ( classes [ j ].isInstance ( otherModel ) )             {               return otherModel;             }           }         }               }       return null;     }     //////////////////////////////////////////////////////////////////////     //////////////////////////////////////////////////////////////////////     private Model [ ]  getModels ( Class  c )     //////////////////////////////////////////////////////////////////////     {       if ( c == null )       {         return ( Model [ ] ) modelArrayKeeper.getArray ( );       }       return ( Model [ ] ) modelArrayKeeper.getArray ( c );     }     private Model [ ]  getModels (       PointXY    pointXY,       Model [ ]  models,       Class      c )     //////////////////////////////////////////////////////////////////////     {       Model [ ]  allModels = getModels ( c );       if ( pointXY == null )       {         return allModels;       }       NullArgumentException.check ( models );       double  x = pointXY.getX ( );       double  y = pointXY.getY ( );       int  index = 0;       for ( int  i = 0; i < allModels.length; i++ )       {         Model  model = allModels [ i ];         if ( model.isActive ( )           && model.getShape ( ).contains ( x, y ) )         {           if ( index < models.length )           {             models [ index ] = model;           }           else           {             models = ( Model [ ] ) ArrayLib.append ( models, model );           }           index++;         }       }       if ( index < models.length )       {         models [ index ] = null;       }       return models;     }     private Model [ ]  getModels (       Shape      shape,       Model [ ]  models,       Class      c )     //////////////////////////////////////////////////////////////////////     {       Model [ ]  allModels = getModels ( c );       if ( shape == null )       {         return allModels;       }       NullArgumentException.check ( models );       int  index = 0;       for ( int  i = 0; i < allModels.length; i++ )       {         Model  model = allModels [ i ];         if ( model.isActive ( )           && ShapeLib.intersects ( shape, model.getShape ( ) ) )         {           if ( index < models.length )           {             models [ index ] = model;           }           else           {             models = ( Model [ ] ) ArrayLib.append ( models, model );           }           index++;         }       }       if ( index < models.length )       {         models [ index ] = null;       }       return models;     }     private Damageable [ ]  getDamageables ( )     //////////////////////////////////////////////////////////////////////     {       return ( Damageable [ ] )         modelArrayKeeper.getArray ( Damageable.class );     }     private Model  getModelClosest (       PointXY  pointXY,       Class    c,       Model    model )     //////////////////////////////////////////////////////////////////////     {       int  index = -1;       double  closestDistance = Double.POSITIVE_INFINITY;       Model [ ]  models = ( Model [ ] ) modelArrayKeeper.getArray ( );       for ( int  i = 0; i < models.length; i++ )       {         Model  otherModel = models [ i ];         if ( ( otherModel != model )           && otherModel.isActive ( )           && c.isInstance ( otherModel ) )         {           double  distance = ShapeLib.getCenter (             otherModel.getShape ( ), center ).distanceXY ( pointXY );           if ( distance < closestDistance )           {             closestDistance = distance;             index = i;                      }         }       }       if ( index > -1 )       {         return models [ index ];       }       return null;     }     //////////////////////////////////////////////////////////////////////     //////////////////////////////////////////////////////////////////////     }

⌨️ 快捷键说明

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