返回顶部
首页 > 资讯 > 精选 >java如何实现雷霆战机
  • 606
分享到

java如何实现雷霆战机

2023-07-02 08:07:33 606人浏览 薄情痞子
摘要

本篇内容主要讲解“java如何实现雷霆战机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何实现雷霆战机”吧!GameFame.javapackage cn. tx;

本篇内容主要讲解“java如何实现雷霆战机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何实现雷霆战机”吧!

GameFame.java

package cn. tx; import javax.swing.*;import java.awt.*;import java.awt.image.BufferedImage;import java.util.Random;import java.util.Vector;  class GameFrame extends JFrame {     HeroPlane heroPlane;     //定义子弹的集合    Vector<Bullet> bullets = new Vector<>();    //敌机集合     Vector<EnemyPlane> enemys = new Vector<>();      GameFrame  frame;     public GameFrame () {        frame = this;        //创建英雄机        heroPlane =new HeroPlane();        heroPlane.start();        //设置窗体的宽高        this.setSize(450, 730);        //标题        this.setTitle("雷霆战机");        this.setResizable(false);        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        this.setLocationRelativeTo(null);        //窗口可见        this.setVisible(true);          new Thread(new Runnable() {            @Override            public void run() {                while (true) {                    repaint();                    try {                        Thread.sleep(10);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }        }).start();         //产生敌机的线程        new Thread(new Runnable() {            //创建随机数的对象            Random r = new Random();             @Override            public void run() {                while (true){                    //启动敌机                    EnemyPlane enemyPlane = new EnemyPlane(r.nextInt(500), 0, frame);                    enemyPlane.start();                    //添加敌机的时候,让x轴随机                    enemys.add(enemyPlane);                    try{                        Thread.sleep(500);                    } catch (InterruptedException e){                        e.printStackTrace();                    }                }             }        }).start();     }  //        *在窗口上画,内容,paint这 个画笔的方法在窗口初始化的时候会默认的执行//        @param g         public void paint (Graphics g) {            //System.out.println("绘制画板");            //两背景            BufferedImage image = (BufferedImage) this.createImage(this.getSize().width, this.getSize().height);            //高效缓存的画笔            Graphics bi = image.getGraphics();            //画背景            bi.drawImage(new ImageIcon("img/MAP02_01.png").getImage(),0,0,null);            //画战斗机            bi.drawImage(heroPlane.img, heroPlane.x,heroPlane.y, heroPlane.width,heroPlane.heigth,null);            //飞机发射炮弹            for (int i = 0; i < bullets.size(); i++) {                System.out.println(bullets);                Bullet bullet = bullets.get(i);                if(bullet.y > 0)                    bi.drawImage(bullet.image, bullet.x,bullet.y -= bullet.speed, bullet.width,bullet.height, null);                else                    bullets.remove(bullet);            }            //画敌机            for (int i = 0; i < enemys.size(); i++) {                System.out.println(enemys);                EnemyPlane ep = enemys.get(i);                if(ep.y < 730 )                    bi.drawImage(ep.img, ep.x,ep.y += ep.speed, ep.width,ep.heigth,null);                else                    enemys.remove(ep);            }              //生效            g.drawImage(image,0,0,null);        }        public static void main (String[]args){            GameFrame frame = new GameFrame();            Player player = new Player(frame);            frame.addKeyListener(player);        }    }

HeroPlane

package cn.tx;import javax.swing.*;import java.awt.*; public class HeroPlane extends Thread{    //英雄机在画板上的位置    int x=200, y=600;     int width = 50, heigth = 50;    //飞机的速度    int speed = 10;     Image img = new ImageIcon("img/10011.png").getImage();     //定义方向键的标志    boolean up,down,left,right;     public HeroPlane() {    }     public HeroPlane(int x, int y, int width, int heigth, Image img) {        this.x = x;        this.y = y;        this.width = width;        this.heigth = heigth;    }     @Override    public void run() {        while (true){            if (up){                y -= speed;            }            if (down){                y += speed;            }            if (left){                x -= speed;            }            if (right){                x += speed;            }             try {                Thread.sleep(10);            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }}

Player

package cn.tx;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;//定义一个玩家public class Player extends KeyAdapter {    GameFrame frame;    HeroPlane heroPlane;    public Player(GameFrame frame) {       this.frame=frame;    }     public void keyPressed(KeyEvent e) {        int keyCode = e.geTKEyCode();        //38、40、37、39        switch (keyCode){            case 38:                frame.heroPlane.up = true;                break;            case 40:                frame. heroPlane.down = true;                break;            case 37:                frame. heroPlane.left = true;                break;            case 39:                frame. heroPlane.right = true;                break;            case 66:                addBullut();                break;        }     }     @Override    public void keyReleased(KeyEvent e) {        int keyCode = e.getKeyCode();        //38、40、37、39        switch (keyCode){            case 38:                frame.heroPlane.up = false;                break;            case 40:                frame. heroPlane.down = false;                break;            case 37:                frame.  heroPlane.left = false;                break;            case 39:                frame. heroPlane.right = false;                break;        }    }    public void addBullut(){        frame.bullets.add(new Bullet( frame.heroPlane.x+5,  frame.heroPlane.y - 20));    }}

EnemyPlane

package cn.tx; import javax.swing.*;import java.awt.*;  public class EnemyPlane extends Thread {    public GameFrame gf;    //子弹的坐标,大小速度    public int x, y;    public int width = 50;    public int heigth = 50;    public int speed = 2;    public Image img = new ImageIcon("img/10021.png").getImage();     public EnemyPlane(int x, int y, GameFrame gf) {        super();        this.x = x;        this.y = y;        this.gf = gf;    }     public EnemyPlane(int x, int y, int width, int heigth, GameFrame gf) {        super();        this.x = x;        this.y = y;        this.width = width;        this.heigth = heigth;        this.gf = gf;    }     //玛丽飞翔的逻辑;移动的逻辑都在这里。    public void run() {        while (true) {            //向左走            if (hit()) {                System.out.println("hit................");                this.speed = 0;                this.img = new ImageIcon("img/300350.png").getImage();                    try {                        this.sleep(500);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                    gf.enemys.remove(this);                    break;                }                if (this.y >= 760) {                    break;                }                try {                    this.sleep(10);                } catch (InterruptedException e) {                    e.printStackTrace();                }        }    }      //检测碰撞    public boolean hit() {        // swing在水中,人家已经提供了        Rectangle myrect = new Rectangle(this.x, this.y, this.width, this.heigth);        Rectangle rect = null;        for (int i = 0; 1 < gf.bullets.size(); i++) {            Bullet bullet = gf.bullets.get(i);            System.out.println("test hit");            rect = new Rectangle(bullet.x, bullet.y - 1, bullet.width, bullet.height);            //碰撞检测            if (myrect.intersects(rect)) {                return true;            }        }        return false;    }     @Override    public String toString() {        return "EnemyPlane{" +                "x=" + x +                ", y=" + y +                ", width=" + width +                ", height=" + heigth +                '}';    }}

Bullet

package cn.tx;import javax.swing.*;import java.awt.*; public class Bullet {    //在面板上的坐标    int x, y;    int width= 50,height = 50;     //定义飞机默认速度    int speed = 5;     Image image = new ImageIcon("img/30022.png").getImage();     public Bullet(int x, int y) {        this.x = x;        this.y = y;    }     public Bullet(int x, int y, int width, int height) {        this.x = x;        this.y = y;        this.width = width;        this.height = height;    }}

到此,相信大家对“java如何实现雷霆战机”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: java如何实现雷霆战机

本文链接: https://lsjlt.com/news/340637.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java如何实现雷霆战机
    本篇内容主要讲解“java如何实现雷霆战机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何实现雷霆战机”吧!GameFame.javapackage cn. tx;...
    99+
    2023-07-02
  • java实现雷霆战机
    本文实例为大家分享了java实现雷霆战机的具体代码,供大家参考,具体内容如下 GameFame.java package cn. tx;   import javax.swing.*...
    99+
    2024-04-02
  • 如何用VUE和Canvas实现雷霆战机打字类小游戏
    今天就来实现一个雷霆战机打字游戏,玩法很简单,每一个“敌人”都是一些英文单词,键盘正确打出单词的字母,飞机就会发射一个个子弹消灭“敌人”,每次需要击毙当前“敌人”后才能击毙下一个,一...
    99+
    2024-04-02
  • java如何实现飞机大战小游戏
    本篇内容介绍了“java如何实现飞机大战小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyPanel类package &nb...
    99+
    2023-07-01
  • Java如何实现简单扫雷程序
    本篇内容介绍了“Java如何实现简单扫雷程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!页面设置:框架是borderlayout,在上中下...
    99+
    2023-06-30
  • java如何实现扫雷游戏程序
    本篇内容介绍了“java如何实现扫雷游戏程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!分析:首先布一个10*10的雷阵,即二维数组map...
    99+
    2023-07-01
  • 如何使用Java实现扫雷小游戏
    这篇文章主要介绍“如何使用Java实现扫雷小游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Java实现扫雷小游戏”文章能帮助大家解决问题。效果展示主类:GameWin类package&n...
    99+
    2023-06-30
  • Python+OpenCV实现自动扫雷,挑战扫雷世界记录!
             目录 准备 - 扫雷软件  实现思路 - 01 窗体截取 - 02 雷块分割 - 03 雷块识别 - 04 扫雷算法实现 福利:文末有Python全套资料哦         我们一起来玩扫雷吧。用Python+Open...
    99+
    2023-08-31
    python opencv 开发语言
  • java实现飞机大战游戏
    java实现飞机大战,供大家参考,具体内容如下 用Java写个飞机大战游戏练习一下,实现可播放游戏背景音乐和游戏的基本功能 设计 1、准备好相应的图片和背景音乐(.wav文件); 2...
    99+
    2024-04-02
  • Java开发实现飞机大战
    目录一、飞机大战1 封装所有飞行物公共属性和功能的父类2 封装英雄机属性和功能类3 封装敌机属性和功能的类4 封装大飞机属性和功能的类5 子弹类6 飞机大战射击的主方法二、测试结果本...
    99+
    2024-04-02
  • java实现简易飞机大战
    目录整体思路代码实现英雄战机类敌机类子弹类图片工具类游戏窗体类启动游戏类运行效果图本文实例为大家分享了java实现简易飞机大战的具体代码,供大家参考,具体内容如下 整体思路 1.创建...
    99+
    2024-04-02
  • Java Swing实现扫雷源码
    本文实例为大家分享了Java Swing实现扫雷源码的具体代码,供大家参考,具体内容如下 先来看下效果 运行时只需要创建一个GameWindow的对象即可,可使用有参构造函数自...
    99+
    2024-04-02
  • 用java实现扫雷游戏
    用java做出简单一个扫雷游戏,供大家参考,具体内容如下 1.创造窗口 //创建扫雷窗口界面       public Saolei() {                     ...
    99+
    2024-04-02
  • Easyx如何实现扫雷游戏
    今天给大家介绍一下Easyx如何实现扫雷游戏。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。代码:#include<stdio.h>#include...
    99+
    2023-06-26
  • C#如何实现扫雷游戏
    今天小编给大家分享一下C#如何实现扫雷游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、实验目的:掌握c#窗体和控件的常...
    99+
    2023-07-02
  • java实现飞机大战小游戏
    本文实例为大家分享了java实现飞机大战游戏的具体代码,供大家参考,具体内容如下 MyPanel类 package  P; import java.awt.Font; import...
    99+
    2024-04-02
  • 怎么用Java实现飞机大战
    这篇文章将为大家详细讲解有关怎么用Java实现飞机大战,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言《飞机大战》是一款融合了街机、竞技等多种元素的经典射击手游。华丽精致的游戏画面,超炫带感的技能特效,...
    99+
    2023-06-29
  • Python如何实现飞机大战项目
    这篇文章主要介绍Python如何实现飞机大战项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下plane_main.pyimport pygamefrom 飞机大战.plane_spr...
    99+
    2023-06-20
  • C语言如何实现飞机大战
    本文小编为大家详细介绍“C语言如何实现飞机大战”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现飞机大战”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下#include<stdio.h...
    99+
    2023-07-02
  • Java实现简单的扫雷图
    用Java实现简单的扫雷图,供大家参考,具体内容如下 扫雷图的思想是: 1、地图可以是一个二维数组,并对数组进行初始化 2、随机生成雷的位置,可以用Random函数进行随机生成也...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作