当前位置: 首页 > news >正文

网站建设都有什么工作要做网页制作三剑客软件下载

网站建设都有什么工作要做,网页制作三剑客软件下载,查网址,做网站准备什么目录 一、最终实现后#xff0c;效果如下。 #xff08;1#xff09;简单介绍本游戏项目#xff08;待完善#xff09; #xff08;2#xff09;运行效果图#xff08;具体大家自己可以试#xff09; 初始运行情况。 手动更换背景图。 通过子弹攻击敌机#xff0c;累… 目录 一、最终实现后效果如下。 1简单介绍本游戏项目待完善 2运行效果图具体大家自己可以试 初始运行情况。 手动更换背景图。 通过子弹攻击敌机累计游戏分数。由变量score控制。 二、各个类的代码如下 1启动类主类 2自定义的窗口类FrameextendsJFrame 3自定义内容面板类PanelextendsJPanel 4敌机类EnemyPlane 5本人飞机类Plane 6子弹类Fire 一、最终实现后效果如下。 1简单介绍本游戏项目待完善 只是学校的简单的实训项目里面还可以进行很多内容可以补充或者完善。里面有一个功能博主实现的时候大的敌机左右移动时存在摇摇晃晃的情况。所以这里博主把这一部分的代码注释了只让其y的坐标值变化。小敌机移动速度快大敌机移动速度慢。游戏界面的背景图不会随着时间而进行改变大家可以完善。自己飞机的键盘移动操作不是很流畅需要完善。敌机没有血量自己操控的飞机没有血量没有游戏结束game over的触发。只有子弹击中敌机的判定。当子弹的坐标与敌机坐标满足条件就触发方法将敌机remove()。子弹与敌机的创建都用到了线程的知识。并且通过W(上)、S(下)、A(左)、D(右)或者鼠标进行操控自己的飞机进行攻击x坐标指定范围内、y坐标为0生成的敌机。基本的技术用到了Java GUI可视化提供的类Panel、JFrame以及其下的方法实现。当运行到一定的时间该实训项目会出现报错地方敌机生成线程、子弹生成线程。 2运行效果图具体大家自己可以试 初始运行情况。 手动更换背景图。 通过子弹攻击敌机累计游戏分数。由变量score控制。 二、各个类的代码如下 1启动类主类 package ui;/*** Title: Main* Author HeYouLong* Package ui* Date 2024/9/12 上午8:33* description:*/ public class Main {public static void main(String[] args) {Frame frame new Frame();Panel panel new Panel(frame);frame.add(panel);panel.begin();panel.fireBegin();frame.setVisible(true);} }2自定义的窗口类FrameextendsJFrame JFrame类是 Java Swing 图形用户界面工具包中的一个非常重要的类它代表了一个窗口是顶级容器之一。在 Swing 应用程序中几乎所有的 GUI 组件都直接或间接地包含在一个JFrame窗口中。JFrame 提供了窗口的基本功能如标题栏、最小化/最大化按钮、关闭按钮以及可调整大小的边框。但是JFrame 本身不包含任何可视化组件如按钮、文本框等这些组件必须被添加到 JFrame 的内容面板ContentPane中而内容面板默认是一个 JPanel。 package ui;import javax.swing.*;/*** Title: Frame* Author HeYouLong* Package ui* Date 2024/9/12 上午8:32* description:*/ public class Frame extends JFrame {public Frame(){setTitle(设计模式课程飞机大战);setSize(512,768);setLocationRelativeTo(null);//居中setResizable(false);//不准随便改变窗口大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口——退出进程} } 3自定义内容面板类PanelextendsJPanel JPanel 类是 Java Swing 图形用户界面工具包中的一个非常重要的类它继承自 JComponent 并实现了 Container 接口。JPanel 是一种轻量级的容器可以用来组织和管理其他 GUI 组件如按钮、文本框、标签等。与 JFrame 不同的是JPanel 本身不是一个顶级容器它必须被添加到某个顶级容器如 JFrame、JDialog 或 JApplet中才能显示。这个类的内容比较多因为是内容面板嘛。 package ui;import javax.swing.*; import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List;/*** Title: Panel* Author HeYouLong* Package ui* Date 2024/9/12 上午8:38* description:*/ public class Panel extends JPanel {private BufferedImage bg GetImg.getImg(bg5.jpg);private Plane plane;private ListEnemyPlane enemyPlaneList new ArrayList();private ListFire fires new ArrayList();//敌机public void begin() {new Thread() {public void run() {while (true) {CreateEp(); //创建敌机 todoMoveEp(); //敌机移动 todohit(); //子弹碰撞try {Thread.sleep(20);} catch (InterruptedException e) {throw new RuntimeException(e);}repaint();//画敌机}}}.start();}private static int score0;//判断子弹与敌机是否碰撞private void hit() {for (int i 0; i enemyPlaneList.size(); i) {EnemyPlane enemyPlane enemyPlaneList.get(i);for (int j 0; j fires.size(); j) {Fire fire fires.get(j);if(fire.xfire.image.getWidth()/2enemyPlane.getX() fire.xenemyPlane.getX()enemyPlane.getImg().getWidth() fire.yfire.image.getHeight()/2enemyPlane.getY() fire.yenemyPlane.getY()enemyPlane.getImg().getHeight()){enemyPlaneList.remove(i);fires.remove(j);score;}}}}//子弹的线程public void fireBegin() {new Thread() {public void run() {while (true) {//创建子弹fireCreate();//子弹移动fireMove();//休息线程try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}//画子弹repaint();}}}.start();}private void fireMove() {for (int i 0; i fires.size(); i) {Fire fire fires.get(i);fire.yfire.y-10;}}private static int index 0;private void fireCreate() {index;if (index 12) {Fire fire new Fire(plane);fires.add(fire);index 0;}}private void MoveEp() {for (int i 0; i enemyPlaneList.size(); i) {EnemyPlane enemyPlane enemyPlaneList.get(i);enemyPlane.move();}}private static int count 0;private void CreateEp() {count;if (count 12) {EnemyPlane enemyPlane new EnemyPlane();enemyPlaneList.add(enemyPlane);count 0;}}public Panel(Frame frame) {plane new Plane();//鼠标操作mouse();//键盘操作 todokey(frame);}private void key(Frame frame) {KeyAdapter keyAdapter new KeyAdapter() {Overridepublic void keyPressed(KeyEvent e) {super.keyPressed(e);int i e.getKeyCode();//获得按的键if (i KeyEvent.VK_A || i KeyEvent.VK_LEFT) {plane.setX(plane.getX() - 30);if (plane.getX() 0) {plane.setX(0);}} else if (i KeyEvent.VK_D || i KeyEvent.VK_RIGHT) {plane.setX(plane.getX() 30);if (plane.getX() 395) {plane.setX(395);}} else if (i KeyEvent.VK_W || i KeyEvent.VK_UP) {plane.setY(plane.getY() - 30);if (plane.getY() 0) {plane.setY(0);}} else if (i KeyEvent.VK_S || i KeyEvent.VK_DOWN) {plane.setY(plane.getY() 30);if (plane.getY() 635) {plane.setY(635);}}repaint();}};frame.addKeyListener(keyAdapter);}private void mouse() {MouseAdapter mouseAdapter new MouseAdapter() {Overridepublic void mouseMoved(MouseEvent e) {super.mouseMoved(e);plane.setX(e.getX() - plane.getImage().getWidth() / 2);plane.setY(e.getY() - plane.getImage().getHeight() / 2);//重新画repaint();}};addMouseListener(mouseAdapter);addMouseMotionListener(mouseAdapter);}Overridepublic void paint(Graphics g) {super.paint(g);g.drawImage(bg, 0, 0, null); //本人飞机初始位置g.drawImage(plane.getImage(), plane.getX(), plane.getY(), null); //画敌机for (int i 0; i enemyPlaneList.size(); i) {EnemyPlane enemyPlane enemyPlaneList.get(i);g.drawImage(enemyPlane.getImg(), enemyPlane.getX(), enemyPlane.getY(), null);}//画子弹for (int i 0; i fires.size(); i) {Fire fire fires.get(i);g.drawImage(fire.image,fire.x, fire.y,fire.image.getWidth()/2,fire.image.getHeight()/2, null);}//画分数g.setColor(Color.white);Font font new Font(黑体, Font.PLAIN, 22);g.setFont(font);g.drawString(当前游戏分数score, 10, 20);} } 4敌机类EnemyPlane 控制初始敌机生成的初始x、y坐标位置控制出现边界不同类型飞机移动速度等等 package ui;import java.awt.image.BufferedImage; import java.util.Random;/*** Title: EnemyPlane* Author HeYouLong* Package ui* Date 2024/9/13 上午10:26* description:*/ public class EnemyPlane {private int x;private int y;private int z;private BufferedImage img;public void move(){final int MOVE_SPEED 10; // 固定的移动速度final int ENEMY_WIDTH this.img.getWidth(); // 敌机图像的宽度if(z10){yy14;return;}else{/*Random random new Random();int i random.nextInt(2);if(i0){x - MOVE_SPEED; // 假设z也影响移动速度这里简单地使用z的模和加数来调整if (x 0) {x 512-ENEMY_WIDTH; // 防止敌机移出屏幕左侧}}else {// 向右移动x MOVE_SPEED; // 同上调整移动速度if (x 512-this.img.getWidth()) {x 0;}}*/yy8;}}public EnemyPlane() {Random random new Random();int i random.nextInt(15)1;String j i10?0i:i;//文件名String imgName epj.png;this.imgGetImg.getImg(imgName);//随机图片this.y0;this.zi;this.xrandom.nextInt(512-this.img.getWidth());}public int getX() {return x;}public void setX(int x) {this.x x;}public int getY() {return y;}public void setY(int y) {this.y y;}public BufferedImage getImg() {return img;}public void setImg(BufferedImage img) {this.img img;}public int getZ() {return z;}public void setZ(int z) {this.z z;} }5本人飞机类Plane 设置初始位置、选定飞机图片、getter()、setter() package ui;import java.awt.image.BufferedImage;/*** Title: Plane* Author HeYouLong* Package ui* Date 2024/9/12 上午9:05* description:*/ public class Plane {private int x;private int y;private BufferedImage image;public Plane() {x200;y500;image GetImg.getImg(hero.png);}public int getX() {return x;}public void setX(int x) {this.x x;}public int getY() {return y;}public void setY(int y) {this.y y;}public BufferedImage getImage() {return image;}public void setImage(BufferedImage image) {this.image image;} }6子弹类Fire 子弹的初始坐标与飞机的坐标要进行适配也就是有联系。选定子弹图片 package ui;import java.awt.image.BufferedImage;/*** Title: Fire* Author HeYouLong* Package ui* Date 2024/9/20 上午10:34* description:*/ //子弹类 public class Fire {BufferedImage image;int x;int y;public Fire(Plane plane) {image GetImg.getImg(fire.png);//子弹的坐标xplane.getX()plane.getImage().getWidth()/2-image.getWidth()/2/2;yplane.getY()-image.getHeight()/2/2;} }
http://www.hkea.cn/news/14567637/

相关文章:

  • 用php做电商网站做外贸用什么邮箱比较好
  • 如何自己买域做网站重庆公路工程建设信息管理系统
  • 培训视频网站市场营销证书含金量
  • 资源网站免费的办网站怎么赚钱
  • 宁乡做网站做视频网站公司要怎么做的
  • 南京专业网站制作多少钱管局备案网站
  • 广元做网站成都私家花园设计公司哪家好
  • 自己在家可以做网站吗企业门户网站建设专业品牌
  • 线上推广网络公司深圳seo外包公司
  • 天涯论坛网站建设优秀网站
  • 深圳网站制作的公司嘉兴wordpress注册qq邮箱配置
  • 政务服务网站建设技术因素无锡网络推广专员
  • 西安定制网站建设公司哪家好网站设计师需要学什么
  • wordpress自动超链接北京网站优化和推广
  • 做购物比价的网站有哪些做网站时为什么导航时两行字
  • 精品课程网站建设步骤有做lol直播网站
  • 做网站的话术用织梦模板做网站
  • 洛阳做网站公司在哪近期国内新闻
  • 甘肃省长城建设集团网站无代码网站开发
  • 南宁网站建设平台网页设计与制作教程欧静敏
  • 个人网站备案地址选择化妆品营销型网站模板
  • 高端品牌网站建设策略网站建设需求有什么用
  • 梅州市城乡建设局网站怎么做百度推广网站
  • 做心理咨询可以在哪些网站发贴wordpress把文章转语音
  • 天水做网站的wordpress淘宝客单页主题
  • 个人做淘宝客网站好做吗定制高端网站的公司
  • 怎么建立自己的公司网站在线做抽奖网站
  • 贵阳网站建设托管长沙app下载
  • 图片网站模版衣服网站模板
  • 摩托车网站建设青浦做网站价格