zoukankan      html  css  js  c++  java
  • 打飞机游戏第一天,诸神归位

    /*游戏第一天,诸神归位*/

    1,主程序

    package qiqi.shoot;
    import java.awt.image.BufferedImage;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.imageio.ImageIO;
    import java.awt.Graphics;

    /* 主程序类*/
    public class ShootGame extends JPanel {
    public static final int WIDTH=400;
    public static final int HEIGHT=645;

    public static BufferedImage background;
    public static BufferedImage start;
    public static BufferedImage pause;
    public static BufferedImage gameover;
    public static BufferedImage airplane;
    public static BufferedImage bee;
    public static BufferedImage bullet;
    public static BufferedImage hero0;
    public static BufferedImage hero1;

    private Hero hero = new Hero();
    private FlyingObject[] flyings={};
    private Bullet[] bullets={};

    ShootGame(){
    flyings = new FlyingObject[2];
    flyings[0]=new Airplane();
    flyings[1]=new Bee();
    bullets = new Bullet[1];
    bullets[0]=new Bullet(100,200);
    }

    static { //初始化静态资源
    try{
    background = ImageIO.read(ShootGame.class.getResource("background.png"));
    start = ImageIO.read(ShootGame.class.getResource("start.png"));
    pause = ImageIO.read(ShootGame.class.getResource("pause.png"));
    gameover = ImageIO.read(ShootGame.class.getResource("gameover.png"));
    airplane = ImageIO.read(ShootGame.class.getResource("airplane.png"));
    bee = ImageIO.read(ShootGame.class.getResource("bee.png"));
    bullet = ImageIO.read(ShootGame.class.getResource("bullet.png"));
    hero0 = ImageIO.read(ShootGame.class.getResource("hero0.png"));
    hero1 = ImageIO.read(ShootGame.class.getResource("hero1.png"));
    }catch(Exception e){
    e.printStackTrace();
    }

    }

    public void paint(Graphics g){
    g.drawImage(background,0,0,null);
    paintHero(g);
    paintFlyingObjects(g);
    paintBullets(g);

    }

    public void paintHero(Graphics g){
    g.drawImage(hero.image,hero.x,hero.y,null);
    }
    public void paintFlyingObjects(Graphics g){
    for (int i=0;i<flyings.length;i++){
    FlyingObject f = flyings[i];
    g.drawImage(f.image,f.x,f.y,null);
    }
    }
    public void paintBullets(Graphics g){
    for (int i=0;i<bullets.length;i++){
    Bullet b= bullets[i];
    g.drawImage(b.image,b.x,b.y,null);
    }
    }

    public static void main(String[] args) {
    JFrame frame = new JFrame("Fly");
    ShootGame game = new ShootGame();
    frame.add(game);
    frame.setSize(WIDTH, HEIGHT);
    frame.setAlwaysOnTop(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

    }

    }

    2类 玩家飞机

    package qiqi.shoot;
    import java.awt.image.BufferedImage;
    import java.util.Random;

    public class Hero extends FlyingObject {
    private int life;
    private int doubleFire;
    private BufferedImage[] images;
    private int index;

    public Hero(){
    image=ShootGame.hero0;
    width=image.getWidth();
    height=image.getHeight();
    x =150;
    y=400;
    life=3;
    doubleFire=0;
    images=new BufferedImage[]{ShootGame.hero0,ShootGame.hero1};
    index=0;
    }

    }

    3类  FlyingObject (所有飞行物的父类)

    package qiqi.shoot;
    import java.awt.image.BufferedImage;

    /*
    *
    * 飞行物类*/
    public class FlyingObject {
    protected BufferedImage image;
    protected int width;
    protected int height;
    protected int x;
    protected int y;

    }

    4类 接口类 Enemy 

    package qiqi.shoot;

    public interface Enemy {
    /*得分*/
    public int getSorce();
    }

    package com.tarena.shoot;

    import java.util.Random;

    public class Bullet extends FlyingObject{
    private int speed=3;

    public Bullet(int x,int y){
    image=ShootGame.bullet;
    width=image.getWidth();
    height=image.getHeight();
    this.x=x;
    this.y=y;
    }

    }

    5类 小蜜蜂类

    package qiqi.shoot;

    import java.util.Random;

    public class Bee extends FlyingObject implements Award {

    private int xSpeed=1;
    private int ySpeed=2;
    private int awardType;

    public Bee(){
    image=ShootGame.bee;
    width=image.getWidth();
    height=image.getHeight();
    Random rand= new Random();
    x =rand.nextInt(ShootGame.WIDTH-this.width);
    y=-this.height;
    awardType=rand.nextInt(2);

    }


    public int getType(){
    return awardType;
    }
    }

    6类  奖励接口类

    package qiqi.shoot;

    /** 奖励*/
    public interface Award {
    public int DOUBLE_FIRE=0;
    public int LIFE=1;
    public int getType();

    }

    7类 敌机类

    package qiqi.shoot;
    import java.util.Random;

    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=-this.height;

    }

    public int getSorce(){
    return 5;
    }

    }

  • 相关阅读:
    PHP-------抽象和接口
    MySQL函数
    MySQL索引
    MySQL语法
    MySQL视图、事务
    最简洁粗暴版的虚拟用户配置FTP
    linux网络bond技术
    CentOS 7服务
    Nginx 基础
    shell 截取指定的字符串
  • 原文地址:https://www.cnblogs.com/czb529514/p/7290435.html
Copyright © 2011-2022 走看看