package com.plane.util;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ThreadFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
*
* @ClassName: PlanePanel
* @version:(版本,具体版本信息自己来定)
* @Description: (面板)
* @author: yewenbo (作者)
* @date: 2019年7月4日上午11:35:01(日期)
*/
public class PlanePanel extends JPanel implements Runnable,MouseMotionListener{
//窗口对象
private JFrame frame;
//英雄机
private Plane plane;
//用来存储子弹
private List<Bullet> bulletlist = new ArrayList<>();
//敌人飞机集合
private List<BadPlane> badPlanes = new ArrayList<>();
private BadPlane badPlane;
int sum =0;
//创建面板,存放背景图片
public PlanePanel(JFrame frame) {
this.frame = frame;
//创建对象
JLabel label = new JLabel(new ImageIcon(PlanePanel.class.getResource("/bj.png")));
this.add(label);
//存放面板
frame.add(this);
}
//把英雄机画到面板上
public void drawPlane(Plane plane) {
this.plane = plane;
//画
this.repaint();
}
//画内容的方法
public void paint(Graphics g) {
//重叠
super.paint(g);
if (plane != null) {
//先画英雄机
g.drawImage(plane.getImage(),plane.getX(), plane.getY(), null);
}
//敌机
for (int i = 0; i < badPlanes.size(); i++) {
badPlane = badPlanes.get(i);
badPlane.move();
g.drawImage(badPlane.getImage(),badPlane.getX(), badPlane.getY(), null);
}
//子弹
for (int i = 0; i < bulletlist.size(); i++) {
Bullet bullet = bulletlist.get(i);
bullet.move();
g.drawImage(bullet.getImage(), bullet.getX(), bullet.getY(), null);
}
}
//射出子弹
public void biubiu() {
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
//创建子弹对象
Bullet bullet = new Bullet(plane.getX()-8,plane.getY()+5);
//子弹移动的方法
bullet.move();
//把子弹存入到list集合
bulletlist.add(bullet);
}
};
Timer timer = new Timer();
//2秒后开始切换
long delay = 0;
//每隔2秒执行一次
long intevalPeriod = 500;
//开启定时任务,定时器
timer.schedule(timerTask, delay, intevalPeriod);
}
//启动线程,开始效果
//创建子弹
public void run() {
//创建子弹
while (true) {
//定时画面板
this.repaint();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void badPlanes() {
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
//创建敌机
BadPlane badPlane = new BadPlane();
badPlane.move();
badPlanes.add(badPlane);
}
};
Timer timer = new Timer();
//2秒后开始切换
long delay =0;
//每隔2秒执行一次
long intevalPeriod = 500;
//开启定时任务,定时器
timer.schedule(task, delay, intevalPeriod);
}
@Override
public void mouseDragged(MouseEvent e) {
//获取到移动的坐标
int x = e.getX();
//给设置x位置
plane.setX(x);
for (int i = 0; i < bulletlist.size(); i++) {
Bullet bullet = bulletlist.get(i);
bullet.move();
boolean clear = bullet.clear(badPlanes);
if ( clear == true ) {
bulletlist.remove(bullet);
sum ++;
}
}
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
飞机大战练习game.zip
共51个文件
png:29个
class:10个
java:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 120 浏览量
2024-05-12
19:45:02
上传
评论
收藏 353KB ZIP 举报
温馨提示
飞机大战练习game
资源推荐
资源详情
资源评论
收起资源包目录
飞机大战练习game.zip (51个子文件)
manualType.properties 10B
game-master
.classpath 295B
.settings
org.eclipse.jdt.core.prefs 587B
src
1.png 12KB
41.png 3KB
bj.png 43KB
zd.png 408B
com
utils
FrameUtils.java 323B
plane
util
BadPlane.java 1KB
PlaneGame.java 861B
Bullet.java 2KB
Plane.java 1KB
PlanePanel.java 3KB
PlaneFrame.java 2KB
bin
1.png 12KB
41.png 3KB
bj.png 43KB
zd.png 408B
com
utils
FrameUtils.class 623B
plane
util
Bullet.class 2KB
PlanePanel.class 4KB
Plane.class 2KB
PlanePanel$1.class 994B
PlanePlane.class 935B
PlaneGame.class 1KB
PlanePanel$2.class 824B
PlaneFrame.class 2KB
BadPlane.class 2KB
Resouce
resources
1-1.png 16KB
3-2.png 8KB
2-1.png 6KB
2-2.png 6KB
gameover.png 29KB
4-1.png 3KB
4-4.png 4KB
1.png 12KB
fjdz.png 47KB
4-3.png 3KB
2-3.png 6KB
zt.png 20KB
4-5.png 1KB
2-5.png 6KB
3-3.png 8KB
4-2.png 3KB
bj.png 43KB
zd.png 408B
3-1.png 7KB
2-4.png 6KB
3-4.png 10KB
.project 364B
item.pdf 6B
共 51 条
- 1
资源评论
枫蜜柚子茶
- 粉丝: 7508
- 资源: 5133
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功