我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【JAVA】飞机大战

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【JAVA】飞机大战

代码和图片放在这个地址了:
https://gitee.com/r77683962/fighting/tree/master

最新的代码运行,可以有两架飞机,分别通过WASD(方向),F(发子弹);上下左右(控制方向),空格(发子弹)
但是敌人的飞机还没有。

代码写的比较匆忙,不太好。

运行效果:
在这里插入图片描述

import javax.swing.*;import java.awt.*;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;class MyThread extends Thread{    GameFrame gameFrame;    public MyThread()    {        gameFrame = new GameFrame();    }    public void run()    {        System.out.println("run");        Boolean runFlag = true;        while (runFlag)        {            runFlag = gameFrame.Run();            //System.out.println("runFlag: " + runFlag);            try            {                Thread.sleep(100);            }            catch (InterruptedException e)            {                e.printStackTrace();                throw new RuntimeException(e);            }        }    }    public static void main(String[] args) {        MyThread gameFrame = new MyThread();        gameFrame.start();    }}public class GameFrame extends JFrame{    private Boolean runFlag;    private final Graphics graphics;    private final Image planeImage;    private final Image bulletImage;    private final Image backgroundImage1;    private final Image backgroundImage2;    //plane x    private int planeX;    //plane y    private int planeY;    private int bulletX;    private int bulletY;    private boolean bulletFlag;    private int backgroundY;    //bullet move step    private final int moveStep;    private final int width;    private final int height;    public GameFrame()    {        setTitle("Fighting");        setLayout(null);        moveStep = 4;        width = 629;        height = 990;        setSize(width, height);        setLocationRelativeTo(null);        setVisible(true);        KeyCapture();        backgroundY = 0;        bulletFlag = false;        planeY = height - 200;        planeX = width / 2;        runFlag = true;        graphics = getContentPane().getGraphics();        planeImage = Toolkit.getDefaultToolkit().getImage("D:\\Code\\JAVA\\class\\Fighting\\images\\bullet05.png");        bulletImage = Toolkit.getDefaultToolkit().getImage("D:\\Code\\JAVA\\class\\Fighting\\images\\bullet_02.png");        backgroundImage1 = Toolkit.getDefaultToolkit().getImage("D:\\Code\\JAVA\\class\\Fighting\\images\\mapback.png");        backgroundImage2 = Toolkit.getDefaultToolkit().getImage("D:\\Code\\JAVA\\class\\Fighting\\images\\mapback.png");    }    public void KeyCapture()    {        this.addKeyListener(new KeyAdapter()        {            public void keyPressed(KeyEvent e)            {                int keyCode = e.getKeyCode();                System.out.println("keyCode: " + keyCode);                switch (keyCode)                {                    case KeyEvent.VK_UP:                        planeY -= moveStep; break;                    case KeyEvent.VK_DOWN:                        planeY += moveStep; break;                    case KeyEvent.VK_LEFT:                        planeX -= moveStep; break;                    case KeyEvent.VK_RIGHT:                        planeX += moveStep; break;                    case KeyEvent.VK_SPACE:                        bulletX = planeX;                        bulletY = planeY;                        bulletFlag = true;                        break;                    case KeyEvent.VK_Q:                        runFlag = false;                        break;                    default:                        System.out.println("KeyCode error!");break;                }            }        });    }    public Boolean Run()    {        //System.out.println("x: " + planeX + " y:" + planeY);        // background        graphics.drawImage(backgroundImage2, 0, backgroundY, width, height, this);        graphics.drawImage(backgroundImage1, 0, backgroundY - height, width, height, this);        // plane        graphics.drawImage(planeImage, planeX, planeY, null);        //bullet        if (bulletFlag)        {            graphics.drawImage(bulletImage, bulletX, bulletY, null);            bulletY -= 2 * moveStep;        }        backgroundY += 2;        return runFlag;    }}

来源地址:https://blog.csdn.net/r77683962/article/details/133363763

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【JAVA】飞机大战

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用Java实现飞机大战

这篇文章将为大家详细讲解有关怎么用Java实现飞机大战,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言《飞机大战》是一款融合了街机、竞技等多种元素的经典射击手游。华丽精致的游戏画面,超炫带感的技能特效,
2023-06-29

python -- 飞机大战(实验)

小Q:今天无意间发现了大神写的python飞机项目,和一本好资料,记录一下。前一阵子看了一篇文章:青少年如何使用Python开始游戏开发 。看完照葫芦画瓢写了一个,觉得挺好玩儿,相当于简单学了下Pygame库。这篇文章是个12岁小孩儿写的,
2023-01-31

java如何实现飞机大战小游戏

本篇内容介绍了“java如何实现飞机大战小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyPanel类package P;impor
2023-07-01

如何使用Java制作飞机大战游戏

这篇文章给大家分享的是有关如何使用Java制作飞机大战游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、代码实现创建窗口首先创建一个游戏窗体类GameFrame,继承至JFrame,用来显示在屏幕上(wind
2023-06-15

python开发飞机大战游戏

本文实例为大家分享了python开发飞机大战游戏的具体代码,供大家参考,具体内容如下import pygame import random import math # 数学模块# 初始化界面 pygame.init() # 设置窗口大小
2022-06-02

Python实现简单飞机大战

本文实例为大家分享了Python实现简单飞机大战的具体代码,供大家参考,具体内容如下 功能 玩家飞机可以移动,可以发射子弹,敌机随机产生,自由坠落。未添加击落敌机的功能。主要用来练习类的封装与继承。 源码# -*- coding=utf-8
2022-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录