JAVA开发是男人就坚持10秒_ 炮弹类基本设计

      炮弹类我们用实心的白色的圆实现,不再加载新的图片。当然,大家课下可以自行找一些炮弹图片亦可。

      我们的逻辑是在窗口固定位置(200,200)处生成炮弹,炮弹方向是随机的,并且遇到边界会反弹。

Shell类:

import java.awt.Color;
import java.awt.Graphics;
 
public class Shell extends GameObject {
    double degree;
     
    public Shell(){
        degree = Math.random()*Math.PI*2;
        x = 200;
        y = 200;
        width = 10;
        height = 10;
        speed = 3;
    }
     
    public void draw(Graphics g){
        //将外部传入对象g的状态保存好
        Color c = g.getColor();
        g.setColor(Color.white);
 
        g.fillOval((int)x, (int)y, width, height);
         
        //炮弹沿着任意角度飞行
        x += speed*Math.cos(degree);
        y += speed*Math.sin(degree);
         
        //如下代码,用来实现碰到边界,炮弹反弹回来(原理和打台球游戏一样)
        if(y>Constant.GAME_HEIGHT-height||y<30){
            degree = -degree;
        }
        if(x<0||x>Constant.GAME_WIDTH-width){
            degree = Math.PI-degree;
        }
        //返回给外部,变回以前的颜色
        g.setColor(c);
    }
}

运行效果:(白色炮弹)

发布了127 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ZGL_cyy/article/details/104157411
今日推荐