package cn.plane;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import cn.util.Constant;
import cn.util.GameUtil;
import cn.util.Myframe;
public class PlaneFrame extends Myframe {
Image bg = GameUtil.getImage("pic/bg.jpg");
Plane p =new Plane("pic/plane.png", 50, 50);
ArrayList bulist =new ArrayList();
long startTime,endTime;
Explode explode;//爆炸对象
public void paint(Graphics g){ //画出图像
g.drawImage(bg,0,0,null);//先画背景
p.draw(g);//画飞机
for(int i=0; i<bulist.size(); i++){ //画子弹
Bullet b = (Bullet) bulist.get(i);
b.draw(g);
//检测每一颗子弹矩形与飞机矩形是否相交
boolean f = b.getRect().intersects(p.getRect());
if(f){
p.setLive(false); //飞机死掉,不能动
if(explode ==null){
explode = new Explode(p.x, p.y);
endTime = System.currentTimeMillis();
}
explode.draw(g);
break;
}
}
if( ! p.getLive()){
printInfo(g,"Game Over",30, 80, Constant.Game_High/2,Color.WHITE);
long period = (endTime- startTime)/1000;
printInfo(g,"时间:"+period+"秒",20, 80, Constant.Game_High/2+30,Color.red);
}
}//end paint()
//打印飞机死亡信息
public void printInfo(Graphics g ,String str, int size,int x,int y,Color cor){
Color c = g.getColor();
g.setColor(cor);
Font f = new Font("微软雅黑", Font.BOLD, size);
g.setFont(f);
g.drawString(str, x, y);
g.setColor(c);
}
public static void main(String[] args) {
new PlaneFrame().runGame();
}
@Override
public void runGame() {
super.runGame(); //父类
addKeyListener(new KeyMonitor()); //子类新增键盘监听
for(int i=0; i<15; i++){ //生成一堆子弹
Bullet b = new Bullet();
bulist.add(b);
}
startTime = System.currentTimeMillis();;
}
//定义为内部类,可以直接只有外部类的普通属性
class KeyMonitor extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {
//System.out.println("按下键盘:"+e.getKeyCode());
p.Adddirection(e);
}
@Override
public void keyReleased(KeyEvent e) {
//System.out.println("释放键盘:"+e.getKeyCode());
p.mindirection(e);
}
}//
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java窗体实现飞机躲子弹游戏
共56个文件
gif:32个
class:10个
java:7个
4星 · 超过85%的资源 需积分: 19 73 下载量 100 浏览量
2016-10-19
12:29:19
上传
评论 2
收藏 153KB RAR 举报
温馨提示
主要功能是:在一个窗体里面,用方向键盘控制飞机图片移动来躲避满屏的子弹。
资源推荐
资源详情
资源评论
收起资源包目录
PlaneGame.rar (56个子文件)
PlaneGame
.project 385B
bin
cn
plane
Plane.class 2KB
Bullet.class 1KB
PlaneFrame.class 3KB
PlaneFrame$KeyMonitor.class 813B
Explode.class 1KB
util
Myframe$1.class 658B
Myframe.class 1KB
Constant.class 409B
GameUtil.class 1000B
Myframe$paintThread.class 838B
pic
e15.gif 460B
e3.gif 846B
e16.gif 280B
e11.gif 1KB
e1.gif 312B
e14.gif 814B
e6.gif 1KB
plane.png 2KB
e5.gif 1KB
e8.gif 1KB
e4.gif 1KB
e13.gif 1022B
e7.gif 1KB
e10.gif 1KB
bg.jpg 56KB
e9.gif 1KB
e2.gif 565B
e12.gif 1KB
.settings
org.eclipse.jdt.core.prefs 598B
src
cn
plane
Bullet.java 1KB
Plane.java 2KB
Explode.java 722B
PlaneFrame.java 2KB
util
Myframe.java 1KB
GameUtil.java 558B
Constant.java 307B
pic
e15.gif 460B
e3.gif 846B
e16.gif 280B
e11.gif 1KB
e1.gif 312B
e14.gif 814B
e6.gif 1KB
plane.png 2KB
e5.gif 1KB
e8.gif 1KB
e4.gif 1KB
e13.gif 1022B
e7.gif 1KB
e10.gif 1KB
bg.jpg 56KB
e9.gif 1KB
e2.gif 565B
e12.gif 1KB
.classpath 301B
共 56 条
- 1
资源评论
- Toning20192017-06-20谢谢楼主分享 , 不过没用上
- nju.拈花2018-06-18不错的设计~点个赞~
sinadrew
- 粉丝: 67
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功