package plangame;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.Random;
import java.util.Vector;
//相当于一个画布
public class GameFrame extends JFrame {
playerplane playerplane;
//重写JFrame里面的方法
// GameFrame frame;
//因为有多个子弹,所以用集合存储;又需要remove以及线程安全的要求,用Vector
Vector<bullet> bullets=new Vector<>();
//敌机也需要一个集合来存储
Vector<enemyplane> enemys=new Vector<>();
GameFrame frame;
public GameFrame()
{
frame=this;
playerplane=new playerplane();
//启动线程
playerplane.start();
//创建玩家飞机
this.setSize(490,720);
this.setTitle("雷霆战机");
this.setResizable(false);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
new Thread(new Runnable() {
@Override
public void run() {
while(true){
repaint();
try{
Thread.sleep(10);
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}).start();
//产生敌机
new Thread(new Runnable()
{
Random r=new Random();
@Override
public void run()
{
while (true)
{
enemyplane enemypla=new enemyplane(r.nextInt(490),0,frame);
enemypla.start();
enemys.add(enemypla);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
//建一个画布
//让这个方法不断地执行,不停的在画。
public void paint(Graphics g)
{
//System.out.println("绘制画布");
BufferedImage image=(BufferedImage) this.createImage(this.getSize().width,this.getSize().height);
Graphics bi=image.getGraphics();//画笔
bi.drawImage(new ImageIcon("img/bg.png").getImage(),0,0,null);
bi.drawImage(playerplane.img,playerplane.x,playerplane.y,playerplane.width,playerplane.height,null);
for (int i = 0; i < bullets.size(); i++) {
bullet bullet=bullets.get(i);
if(bullet.y>0)
bi.drawImage(bullet.image,bullet.x,bullet.y-= bullet.speed,bullet.width,bullet.height,null);
else
bullets.remove(bullet);
}
for (int i = 0; i < enemys.size(); i++) {
enemyplane e=enemys.get(i);
if(e.y<760)
bi.drawImage(e.image,e.x,e.y+= e.speed,e.width,e.height,null);
else
bullets.remove(e);
}
g.drawImage(image,0,0,null);//画布
}
public static void main(String[] args)
{
GameFrame frame=new GameFrame();
player player=new player(frame);
frame.addKeyListener(player);//画布监听事件
// playerplane playerplane=new playerplane(frame);
}
}
java飞机小游戏java飞机小游戏
需积分: 0 4 浏览量
2023-08-12
18:00:16
上传
评论
收藏 4KB ZIP 举报
wy微漾
- 粉丝: 3
- 资源: 3
最新资源
- RAG技术知识图谱概览
- VMware Workstation功能强大的桌面虚拟计算机软件
- 中文命名实体识别,采用bilstm+crf模型基于Pytorch实现
- PowerGREP V5.3.3 Retail
- 美赛数学建模算法-使用Matlab实现灰色系统建模GreySystem-国赛-题解.zip
- 基于albert-bilstm-crf架构利用keras框架实现NER
- RegexMagic V2.13.1 Retail
- python-3.6.5-macosx 安装包
- 美赛数学建模算法-使用Matlab实现图论GraphTheory-包括求最短路径-国赛-题解.zip
- RegexBuddy v4.14.1 Retail
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈