package com.njxz.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 java.util.Date;
import com.njxz.util.GameUtil;
import com.njxz.util.MyFrame;
/**
* 飞机大战的界面
* 画出窗口、飞机与子弹的碰撞的检测以及碰撞后爆炸的播放、游戏结束时显示分数与时间
* @author I am mingyue
*
*/
public class PlaneGameFrame extends MyFrame {
Image bg = GameUtil.getImage("images/bg.jpg"); // 背景
Plane plane = new Plane("images/plane.png", 175, 430); // 飞机
ArrayList<Bullet> bulletList = new ArrayList<Bullet>(); // 子弹
Explode boom; // 爆炸
Date startTime;
Date endTime;
/**
* 画窗口
*/
public void paint(Graphics g) {
g.drawImage(bg, 0, 0, null); // 画背景
plane.draw(g); // 画飞机
for (int i = 0; i < bulletList.size(); i++) { // 画子弹
Bullet b = (Bullet) bulletList.get(i);
b.draw(g);
/**
* 检测跟飞机的 碰撞
*/
boolean bm = b.getRect().intersects(plane.getRect());
if (bm) {
plane.setLive(false);
}
}
/**
* 死亡处理
*/
if (!plane.isLive()) {
if (boom == null) {
boom = new Explode(plane.x, plane.y);
endTime = new Date();
}
boom.draw(g);
/**
* 打印结果
*/
printInfo(g, "GAME OVER", 80, 220, 50, Color.white);
int period = (int)(endTime.getTime() - startTime.getTime()) / 1000;
printInfo(g, "时间:" + period + "秒", 120, 270, 30, Color.green);
printInfo(g, "分数:" + period*13 + "分" , 120, 310, 30, Color.green);
switch (period/10) {
case 0:
case 1:
case 2:
printInfo(g, "级别:"+"菜鸟",120, 350, 30, Color.green);
break;
default:
printInfo(g, "级别:"+"大神!",120, 350, 30, Color.green);
break;
}
}
}
/**
* 打印信息:信息/位置(x/y)/尺寸/颜色
* @param g 画笔工具
* @param str 信息内容
* @param x 位置:横坐标
* @param y 位置:纵坐标
* @param size 文字大小
* @param color 文字颜色
*/
public void printInfo(Graphics g, String str, int x, int y, int size, Color color) {
Color c = g.getColor();
g.setColor(color);
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 PlaneGameFrame().launchFrame();
}
/**
* 启动计时器
*/
public void launchFrame() {
super.launchFrame();
/**
* 增加键盘的监听
*/
addKeyListener(new KeyMonitor());
/**
* 生成一堆子弹
*/
for (int i = 0; i < 20; i++) {
Bullet b = new Bullet();
bulletList.add(b);
}
// 开始计时
startTime = new Date();
}
/**
* 定义内部类,可以方便的使用外部类的普通属性 键盘控制
* @author I am mingyue
*
*/
class KeyMonitor extends KeyAdapter {
public void keyPressed(KeyEvent e) {
plane.changeDirection(e);
System.out.println("按下:" + e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
plane.recoveryDirection(e);
System.out.println("释放:" + e.getKeyCode());
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java小游戏 飞机大战
共121个文件
html:56个
gif:32个
class:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 120 浏览量
2022-06-23
09:02:00
上传
评论
收藏 289KB RAR 举报
温馨提示
java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏 飞机大战java小游戏
资源推荐
资源详情
资源评论
收起资源包目录
java小游戏 飞机大战 (121个子文件)
PlaneGameFrame.class 4KB
Plane.class 2KB
Explode.class 1KB
PlaneGameFrame$KeyMonitor.class 1KB
MyFrame.class 1KB
Bullet.class 1KB
GameUtil.class 1016B
GameObject.class 852B
MyFrame$PaintThread.class 763B
Constant.class 356B
.classpath 301B
stylesheet.css 13KB
Thumbs.db 8KB
Thumbs.db 8KB
Thumbs.db 6KB
Thumbs.db 6KB
8.gif 1KB
8.gif 1KB
7.gif 1KB
9.gif 1KB
7.gif 1KB
9.gif 1KB
6.gif 1KB
6.gif 1KB
10.gif 1KB
10.gif 1KB
5.gif 1KB
5.gif 1KB
11.gif 1KB
11.gif 1KB
4.gif 1KB
4.gif 1KB
3.gif 1KB
3.gif 1KB
12.gif 1022B
13.gif 1022B
12.gif 1022B
13.gif 1022B
2.gif 846B
2.gif 846B
14.gif 814B
14.gif 814B
1.gif 565B
1.gif 565B
15.gif 460B
15.gif 460B
16.gif 280B
16.gif 280B
PlaneGameFrame.html 27KB
MyFrame.html 22KB
Plane.html 15KB
GameObject.html 13KB
Explode.html 12KB
Bullet.html 11KB
MyFrame.PaintThread.html 11KB
PlaneGameFrame.KeyMonitor.html 10KB
Constant.html 9KB
GameUtil.html 9KB
index-12.html 8KB
help-doc.html 7KB
index-10.html 6KB
GameObject.html 6KB
Bullet.html 6KB
Explode.html 6KB
MyFrame.html 6KB
index-14.html 6KB
index-13.html 6KB
package-tree.html 5KB
index-15.html 5KB
index-16.html 5KB
index-17.html 5KB
serialized-form.html 5KB
index-18.html 5KB
index-11.html 5KB
index-6.html 5KB
package-use.html 5KB
package-summary.html 5KB
index-2.html 5KB
index-7.html 5KB
index-4.html 5KB
index-1.html 5KB
index-5.html 5KB
index-8.html 4KB
package-use.html 4KB
index-3.html 4KB
index-9.html 4KB
package-summary.html 4KB
PlaneGameFrame.KeyMonitor.html 4KB
MyFrame.PaintThread.html 4KB
PlaneGameFrame.html 4KB
GameUtil.html 4KB
Constant.html 4KB
Plane.html 4KB
overview-summary.html 4KB
package-tree.html 4KB
overview-tree.html 4KB
constant-values.html 3KB
deprecated-list.html 3KB
index.html 3KB
package-frame.html 965B
共 121 条
- 1
- 2
资源评论
- Hz_zb2024-06-13资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
- 2401_846048452024-06-30资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
- 2201_753563392022-12-13资源不错,内容挺好的,有一定的使用价值,值得借鉴,感谢分享。
金枝玉叶9
- 粉丝: 195
- 资源: 7637
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功