Java教程

4.15Java游戏小项目之矩形检测

本文主要是介绍4.15Java游戏小项目之矩形检测,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

4.15Java游戏小项目之矩形检测

因为JFrame类还会使画面微闪,所以还要引入双缓冲

(也可以用新的方法,但是不做过多介绍)

双缓冲技术实现原理

  • 代码实现上是设置一个空变量

  • 为改变量写一个方法

  • 相当于在内存中先画一个窗口图片进行缓存

   //继承的类要改成Frame
    /*
    为这个属性写一个方法
    实现逻辑:
    进行if条件判断
    将变量设置为空,如果是空的就创建窗口值赋予变量---类.属性
    再将属性的get方法赋予Graphics画笔对象
    画出对象
     */
    public void update(Graphics g){
        if (offScreenImage == null){
            offScreenImage = this.createImage(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
        }else {
            System.out.printf("Error");
        }
​
        /*再将属性的get方法赋予Graphics画笔对象*/
        Graphics gOff = offScreenImage.getGraphics();
​
        paint(gOff);
        
        /*画出对象*/
        g.drawImage(offScreenImage,0,0,null);
    }

矩形检测原理

物体交互原理

Java中物体交互原理就是矩形检测原理:

  • 游戏中的物体抽象成矩形---无论是圆还是其他图形

  • 判断矩形是否相交即可

  • 多边形可以抽象分解成多个矩形然后继续进行矩形检测

Java的API中提供了Rectangle类来表示矩形相关信息

提供了intersects()方法,直接判断矩形是否相交

每画一次炮弹就跟飞机进行比较

注意:

  • 要定义飞机的宽度和高度

  • 要定义炮弹的宽度和高度

  • 定义属性让飞机死掉

定义飞机的宽度和高度:

    /*重写构造器*/
    public Plane(Image img, double x, double y){
        this.img = img;
        this.x = x;
        this.y = y;
        this.speed = 300;
        this.width = img.getWidth(null);
        this.height = img.getHeight(null);
​
​
    }

定义炮弹的宽度和高度:

    /*构造方法构造一个随机数*/
    public Shell(){
        x = 200; //这里的x,y继承了GameObject类,所以是double类型的数
        y = 200; //所以下面用到x,y的时候要进行强制转型
        width = 10;
        height = 10;
        speed = 3;
        /*希望是一个随机的值,希望生成随机角度*/
        degree = Math.random() * Math.PI * 2;
    }

定义属性让飞机死掉:

        //利用遍历的方法画出50发炮弹
        for (int i =0; i < shells.length; i++){
            shells[i].draw(g);
​
            /*判断炮弹矩形是否与飞机矩形相碰*/
            boolean peng = shells[i].getRect().intersects(p.getRect()); //getRect是获得矩形,设置变量是否了好进行if判断
​
            /*进行if判断是否相碰,飞机和炮弹的碰撞检测*/
            if (peng){
//                System.out.println("碰到了!!!");
                p.live = false; //相碰死掉
            }
        }
​
    }

 

这篇关于4.15Java游戏小项目之矩形检测的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!