asteroid.java

来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 91 行

JAVA
91
字号
     import java.awt.*;
     import java.util.*;

     public class Asteroid extends Actor2D 
     {
          protected final double ONE_RADIAN = Math.toRadians(1);
          protected static Random random = new Random();

          protected int size;
          protected double rotation;

          public Asteroid(ActorGroup2D grp)
          {
               super(grp);

               while(vel.getX() == 0)
               {
                    vel.setX(3+random.nextInt()%4);
               }
               while(vel.getY() == 0)
               {
                    vel.setY(3+random.nextInt()%4);
               }

               System.out.println(vel);

               animWait = 1;

               size = (int) Math.abs(random.nextInt()%3);
               rotation = 0.0;
               currAnimation = group.getAnimationStrip(size);

               updateBounds();
          }

          public void checkBounds()
          {
               if(bounds.getX() < group.MIN_X_POS)
               {
                    pos.setX(group.MIN_X_POS);
                    vel.setX(-vel.getX());
               }

               else if(bounds.getX() + frameWidth > group.MAX_X_POS)
               {
                    pos.setX(group.MAX_X_POS - frameWidth);
                    vel.setX(-vel.getX());
               }

               if(bounds.getY() < group.MIN_Y_POS)
               {
                    pos.setY(group.MIN_Y_POS);
                    vel.setY(-vel.getY());
               }

               else if(bounds.getY() + frameHeight > group.MAX_Y_POS)
               {
                    pos.setY(group.MAX_Y_POS - frameHeight);
                    vel.setY(-vel.getY());
               }
          }

 
          public void update()
          {
               pos.translate(vel);
               
               xform.setToIdentity();

               xform.translate(+pos.getX()+frameWidth/2, +pos.getY()+frameHeight/2);                            
               xform.rotate(rotation); 
               xform.translate(-frameWidth/2, -frameHeight/2);                            

               updateBounds();
               checkBounds();
          }

          public void paint(Graphics2D g2d)
          {
               if(collisionList.size() > 0)
               {
                    g2d.setPaint(Color.BLUE);
                    g2d.fill(bounds);
                    g2d.setPaint(null);
                    collisionList.clear();                    
               }

               super.paint(g2d);              
          }

     }    // Asteroid

⌨️ 快捷键说明

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