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 + -
显示快捷键?