飞机大战之-添加背景
之前我们已经生成了一个空白的窗口,接下来我们要在这个窗口上添加背景。
我们新建一个MyPanel的类用来单独设置面板。
MyPanel是继承于JPanel的一个子类。导入所需的包。
package view;import javax.swing.JPanel;public class MyPanel extends JPanel{}
然后新建一个图片类型的变量用来存放我们的背景。导入相关所需的包。
package view;import java.awt.Image;import javax.swing.JPanel;public class MyPanel extends JPanel{public Image bgImage;}
接着我们使用
this.bgImage = Toolkit.getDefaultToolkit().getImage(“images/bg01.jpg”);
把背景图片放入,导入相关的包。
package view;import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JPanel;public class MyPanel extends JPanel{public Image bgImage;public MyPanel(){//设置背景this.bgImage = Toolkit.getDefaultToolkit().getImage("images/bg01.jpg");}}
现在图片创建好了,接下来我们设置背景图片的一些参数,设置在窗口的位置。
我们使用重构父类的paintComponent()方法来设置自记得背景图。
package view;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JPanel;public class MyPanel extends JPanel{public Image bgImage;public MyPanel(){//设置背景this.bgImage = Toolkit.getDefaultToolkit().getImage("images/bg01.jpg");}public void paintComment(Graphics g){super.paintComponent(g);g.drawImage(this.bgImage, 0,0-this.bgImage.getHeight(this), this.bgImage.getWidth(this),this.bgImage.getHeight(this),null);g.drawImage(this.bgImage, 0,0, this.bgImage.getWidth(this),this.bgImage.getHeight(this),null);}}
这里的paintComment()是自动调用的。 这里还有一些疑惑的地方,就是不知道具体是怎么实现的自动调用,这个就先放下吧。。。
然后我们去BaseFrame类中新建一个MyPanel类型的对象。新建 - > 设置位置-> 添加到窗口中
新建:this.myPanel = new MyPanel();
设置位置 : this.myPanel.setBounds(0,0,frameWidth, frameHeight);
添加组件: this.add(myPanel);
package view;import java.awt.Dimension;
import java.awt.Toolkit;import javax.swing.JFrame;public class BaseFrame extends JFrame{public static int frameWidth = 512, frameHeight = 768;public MyPanel myPanel;public BaseFrame(){super("飞机大战");setBounds(100, 0, frameWidth, frameHeight);setLayout(null);this.myPanel = new MyPanel();this.myPanel.setBounds(0,0,frameWidth, frameHeight);this.add(myPanel);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
飞机大战之-添加背景相关推荐
- ES6飞机大战篇-添加子弹追踪功能
既然是飞机大战 那必定少不了子弹追踪 那么添加子弹追踪功能的实现如下: // 原文链接:https://blog.csdn.net/erweimac/article/details/82256087 ...
- 飞机大战之-添加子弹
现在添加字段对象,子弹,敌机,玩家,都是属于modle包中的对象,所以我们新建一个类Bullet 1/定义子弹需要的一些常量,子弹图片的长宽,子弹的坐标. 然后使用Tooklit.getDefault ...
- pygame为游戏添加背景_用 Python 制作飞机大战小游戏
这这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思路是通过方向键来控制飞机的左右移动射击飞船.先来看下最后的效果为了新手也能完成,本文记录了编写的全部流程,也就是每次修改的代码 ...
- 飞机大战小游戏(超详细)
偷学Python之最后的项目二:飞机大战小游戏(超详细) 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 甜甜先说 这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思 ...
- 手把手教你使用Pygame制作飞机大战小游戏,4万字超详细讲解!
点击上方"早起Python",关注并"星标" 每日接收原创Python干货! 大家好,偷学Python系列是由小甜同学从初学者的角度学习Python的笔记,其特 ...
- Python3+pygame实现有趣好玩的飞机大战游戏(附源码及素材)
版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.开发环境 二.功能模块 三.游戏效果 四.完整项目下载 五.作者Info 一.开发环境 开发环境 :Windows10 Python3.6 ...
- c++课程设计:飞机大战(图形化界面)
飞机大战.cpp #include <iostream> #include <graphics.h> #include <time.h> #include < ...
- Java Swing 经典小游戏《飞机大战》———— (一)获取素材,创建窗口,添加滚动背景,双缓冲
(一)最终效果 1.窗口 2.项目框架 (二)效果实现 1.获取素材 获取步骤省略,大家可自行到我的资源获取,放置在src目录下 2. 创建窗口 WinGame.java import java.aw ...
- Pygame飞机大战(四)——创建己方飞机的类,并添加子弹吧
我们接下来要基于pygame.sprite.Sprite创建自己的类,首先必须是主角的,创建一个己方飞机的类,并且给飞机加上子弹哈! 首先我们还是先分析一下,己方飞机需要有哪些部分构成: 自身的图片加 ...
最新文章
- 数据科学家:那些年,我都学过哪些编程语言…
- Java的for-each循环
- 服务:OracleDBConsoleorcl [Agent process exited abnormally during initialization]
- 设计模式-创建型模式-工厂模式(工厂三兄弟)
- 《实践与思考》系列连载(6)——IT从业人员工作环境及状态调查 抽奖结果公布...
- 【码云周刊第 8 期】面试之前,或许该高效率地学点干货了!
- db powerdesign CDM、LDM、PDM、OOM的区别
- 安卓手机反应慢又卡怎么办_安卓手机出现卡顿反应慢的具体处理方法
- Hadoop大数据平台构建与应用
- 广发99元旅游分期,来一场说走就走的旅行?
- 解压版tomcat安装配置
- 代码模块化编程思想!!
- 使用命令行连接MySQL数据库
- 常用的卫星影像数据查询网址【值得收藏】
- cuba study
- 虚拟化服务器 戴尔,dell虚拟化服务器配置(戴尔服务器配置)
- JAVA兴趣小组申请理由_关于参与兴趣小组申请书范文
- 不用代码免费采集网站内容_看一遍就能上手的火车头采集图文全流程教程
- UE4家装系统工程源码/内含模型/材质/模型拖拽
- 计算机流体力学软件基础及工程应用,流体力学及其工程应用(英文版·原书第10版)2013年版...