java实现抖音飞机大作战

 更新时间:2020年11月19日 09:01:10   作者:qq_39437613  
这篇文章主要为大家详细介绍了java实现抖音飞机大作战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java抖音飞机大作战的具体代码,供大家参考,具体内容如下

Airplane.java

package zmf.game.shoot;
import java.util.Random;

/**
 * @author jcf
 * @Description: Airplane----敌机既是飞行物
 * @date 2018-03-28 11:17:16
 */
public class Airplane extends FlyingObject implements Enemy{
 /** 敌机走步的步数 **/
 private int speed = 2;
 public Airplane(){
 image = ShootGame.airplane;
 width = image.getWidth();
 height = image.getHeight();
 Random rand = new Random();
 x = rand.nextInt(ShootGame.WIDTH - this.width);
 //y:负的敌机的高
 y = -this.height;
 
 
 }
 
 @Override
 public int getScore(){
 return 5;
 }

 @Override
 public void step(){
 y += speed;
 }

 /**
 * 是否越界
 * @return
 */
 @Override
 public boolean outOfBounds(){
 //敌机的y坐标大于窗口的高
 return this.y > ShootGame.HEIGHT;
 
 }

}

FlyingObject.java

package zmf.game.shoot;
import java.awt.image.BufferedImage;

/**
 * @author jcf
 * @Description: 飞行物主类
 * @date 2018-03-28 11:17:16
 */
public abstract class FlyingObject {
 /** 图片命名--java包自有的 **/
 protected BufferedImage image;
 /** 宽 **/
 protected int width;
 /** 高 **/
 protected int height;
 /** x坐标 **/
 protected int x;
 /** y坐标 **/
 protected int y;

 /**
 * 飞行物走步
 */
 public abstract void step();

 /**
 * 是否越界
 * @return
 */
 public abstract boolean outOfBounds();

 /**
 * 敌人被子弹撞
 * @param bullet
 * @return
 */
 public boolean shootBy(Bullet bullet){
 //this:敌人 other:子弹
 int x1 = this.x;
 int x2 = this.x + this.width;
 int y1 = this.y;
 int y2 = this.y + this.height;
 int x = bullet.x;
 int y = bullet.y;
 return x > x1 && x < x2
 &&
 y > y1 && y < y2;
 }
 
}

完整源码下载地址:飞机大作战

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java编译时指定classpath的实现方法

    java编译时指定classpath的实现方法

    在Java编程中,classpath是用于指定Java虚拟机在运行时查找类文件的路径,本文主要介绍了java编译时指定classpath的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • java中final与finally的使用介绍

    java中final与finally的使用介绍

    本篇文章介绍了,在java中final与finally的使用。需要的朋友参考下
    2013-04-04
  • Java中的对象和引用详解

    Java中的对象和引用详解

    这篇文章主要介绍了Java中的对象和引用详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • java list,set,map,数组间的相互转换详解

    java list,set,map,数组间的相互转换详解

    这篇文章主要介绍了java list,set,map,数组间的相互转换详解的相关资料,这里附有实例代码,具有参考价值,需要的朋友可以参考下
    2017-01-01
  • Java中BigDecimal与0比较的一个坑实战记录

    Java中BigDecimal与0比较的一个坑实战记录

    BigDecimal属于大数据,精度极高,不属于基本数据类型,属于java对象,下面这篇文章主要给大家介绍了关于Java中BigDecimal与0比较的一个坑的相关资料,需要的朋友可以参考下
    2022-12-12
  • springboot配合Thymeleaf完美实现遍历功能

    springboot配合Thymeleaf完美实现遍历功能

    Thymeleaf显然是一个开发页面的技术,现在各种前端技术层出不穷,比如现在主流的Vue、React、AngularJS等。这篇文章主要介绍了springboot配合Thymeleaf完美实现遍历,需要的朋友可以参考下
    2021-09-09
  • MyBatisPlus利用Service实现获取数据列表

    MyBatisPlus利用Service实现获取数据列表

    这篇文章主要为大家详细介绍了怎样使用 IServer 提供的 list 方法查询多条数据,这些方法将根据查询条件获取多条数据,感兴趣的可以了解一下
    2022-06-06
  • Java 深入理解创建型设计模式之原型模式

    Java 深入理解创建型设计模式之原型模式

    原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节
    2022-02-02
  • springboot序列化和反序列化器配置方法

    springboot序列化和反序列化器配置方法

    这篇文章主要介绍了springboot序列化和反序列化器配置方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • mybatis-plus 批量插入示例代码

    mybatis-plus 批量插入示例代码

    正常我们使用mybatis-plus插入的时候,首先想到的是saveBatch方法,不过看了下打印出来的sql和底层代码,才发现它并不是真正的批量插入这篇文章主要介绍了mybatis-plus 批量插入示例,需要的朋友可以参考下
    2023-07-07

最新评论