FlappyBirdJava代码.docx

上传人:牧羊曲112 文档编号:3157185 上传时间:2023-03-11 格式:DOCX 页数:12 大小:40KB
返回 下载 相关 举报
FlappyBirdJava代码.docx_第1页
第1页 / 共12页
FlappyBirdJava代码.docx_第2页
第2页 / 共12页
FlappyBirdJava代码.docx_第3页
第3页 / 共12页
FlappyBirdJava代码.docx_第4页
第4页 / 共12页
FlappyBirdJava代码.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《FlappyBirdJava代码.docx》由会员分享,可在线阅读,更多相关《FlappyBirdJava代码.docx(12页珍藏版)》请在三一办公上搜索。

1、FlappyBirdJava代码FlappyBird全Java代码实现及全详细注释 效果截图 全部文档结构截图: 第一个java文件: package game; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; public class Bird public int x; public int y; /图片数组,用来存放组成鸟飞行动画的图片 public BufferedImage imgs = new BufferedImage8; public B

2、ufferedImage img;/鸟的图片 public int width; public int height; public int size; public int g;/重力加速度 public double s;/竖直移动位移 public double speed;/初始速度 public double t;/时间间隔 public double alpha;/鸟倾斜的角度 public Bird /加载鸟的图片 try for(int i=0;ix1&xy1&yground.y; 第二个java文件 package game; import javax.swing.JFram

3、e; /* * 窗体 * java中的窗体类:JFrame * author Administrator * */ public class BirdFrame extends JFrame /定义游戏面板 BirdPanel panel ; /构造方法,初始化窗体属性 public BirdFrame /创建面板对象 panel = new BirdPanel; /添加面板 add(panel); /设置标题 setTitle(飞扬的小鸟); /设置大小 setSize(432,674); /设置位置(据中) setLocationRelativeTo(null); /设置不允许改变窗体大小

4、 setResizable(false); /设置关闭窗口时退出程序 setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); /设置显示界面 setVisible(true); /程序入口 public static void main(String args) /创建窗体对象 BirdFrame frame = new BirdFrame; frame.panel.action; 第三个java文件 package game; import java.awt.Color; import java.awt.Font; import java.awt.G

5、raphics; import java.awt.Graphics2D; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JPanel; /* * 面板类:游戏界面 * author Administrat

6、or * */ public class BirdPanel extends JPanel /定义第一根柱子 Colum c1; Colum c2; /定义背景图片 BufferedImage background; /定义开始图片 BufferedImage startImage; /定义结束图片 BufferedImage overImage; /定义地板 Ground ground ; /定义鸟 Bird bird ; /定义分数 int score; /判断游戏是否结束 boolean gameover; /判断游戏是否开始 boolean start; /构造函数,初始化界面属性 p

7、ublic BirdPanel try /创建第一根主子对象 c1=new Colum(1); /第二根柱子 c2=new Colum(2); /创建地板对象 ground = new Ground; /创建鸟对象 bird = new Bird; /加载图片 background = ImageIO.read( this.getClass.getResource( /img/bg.png); startImage = ImageIO.read( this.getClass.getResource( /img/start.png); overImage=ImageIO.read(this.ge

8、tClass.getResource(/img/gameover.png); catch (IOException e) e.printStackTrace; Override public void paint(Graphics g) super.paint(g); /g.drawString(sss,0,0); /画图片(图片,横坐标,纵坐标,null) g.drawImage(background, 0, 0, null); if(!start) /游戏没开始的话就画开始图片 g.drawImage(startImage,0,0,null); /先画哪个哪个就在下面 /画柱子 g.dra

9、wImage(c1.img,c1.x-c1.width/2,c1.y-c1.height/2,null); g.drawImage(c2.img,c2.x-c2.width/2,c2.y-c2.height/2,null); /获得2D画笔 Graphics2D g2=(Graphics2D)g; /旋转鸟的坐标 g2.rotate(-bird.alpha,bird.x,bird.y); /画鸟 g.drawImage(bird.img,bird.x-bird.width/2 ,bird.y-bird.height/2, null); /换回来 g2.rotate(bird.alpha,bir

10、d.x,bird.y); /画地板 g.drawImage(ground.img, ground.x, ground.y, null); /设置大小 Font font=new Font(楷体,Font.BOLD,30); g.setFont(font); g.setColor(Color.white); /划分数表 g.drawString(分数:+score,10 , 30); if(gameover) /游戏结束,画结束图片 g.drawImage(overImage,0,0,null); /启动,控制游戏 public void action /创建鼠标监听器 MouseListene

11、r listener = new MouseAdapter /鼠标按下去会调用的方法 Override public void mousePressed(MouseEvent e) if(gameover) /如果游戏结束 /重新启动游戏 reStart; else /游戏没结束 /游戏开始 start = true; bird.flappy; ; /将监听器添加到面板中 addMouseListener(listener); /一直刷新界面 while(true) if(!gameover) if(start) /如果游戏没有结束,并且游戏开始了 /让地板移动 ground.setup; /

12、让鸟飞 bird.setup; bird.fly; /让主子移动 c1.setup; c2.setup; /增加难度,让第二根柱子上下移动 /c2.setupY; /穿过一个柱子得一分 if(bird.x=c1.x|bird.x=c2.x) score+; /如果鸟撞击柱子或者地面,游戏结束 if(bird.hit(c1)|bird.hit(c2)|bird.hit(ground) gameover=true;/游戏结束 repaint; try Thread.sleep(10); catch (InterruptedException e1) e1.printStackTrace; /重新启

13、动游戏 protected void reStart / TODO Auto-generated method stub /创建第一根主子对象 c1=new Colum(1); /第二根柱子 c2=new Colum(2); /创建地板对象 ground = new Ground; /创建鸟对象 bird = new Bird; /将start重新设置为false start=false; /将gameover设置为false gameover=false; /将分数清零 score=0; 第四个java文件 package game; import java.awt.image.Buffer

14、edImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; /* * 柱子类 * */ public class Colum public int x; public int y; public BufferedImage img; public int width; public int height; public int distance;/柱子间的间距 public int gap;/柱子的缝隙 /随机数生成器 public Random rd=new Rando

15、m; /index表示屏幕上第几根柱子 /增加游戏难度可以增加柱子数,同时缩小柱子之间的间距 public Colum(int index) /加载图片 try img=ImageIO.read(this.getClass.getResource(/img/column.png); width=img.getWidth; height=img.getHeight; distance=245; gap=144; /让主子的初始位置处在屏幕的最右端以外 /index=1huo2; x=(index-1)*distance+(432+width/2); /随机柱子的纵坐标 y= rd.nextInt

16、(250)+132; catch (IOException e) / TODO Auto-generated catch block e.printStackTrace; /让主子移动 public void setup / TODO Auto-generated method stub /一次移动4,柱子的移动速度和地板的不一样 /x-=4; /和地板一样的移动速度 x-; if(x=-width) x=2*distance-width/2; y=rd.nextInt(250)+132; /第二根柱子上下移动的方法 public void setupY / TODO Auto-generat

17、ed method stub x-; y-; if(x=-width) x=2*distance-width/2; y=rd.nextInt(250)+132; 第五个java文件 package game; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; /* * 地板类 * author Administrator * */ public class Ground public int x;/地板的横坐标 public int y;/地板的纵坐标 p

18、ublic BufferedImage img;/地板图片 /构造方法,初始化地板属性 public Ground /加载地板图片 try img = ImageIO.read( this.getClass.getResource( /img/ground.png); x = 0; y = 500; catch (IOException e) e.printStackTrace; /让地板移动 public void setup x-; if(x=-108) x = 0; 所用到图片: 0.png 1.png 2.png 3.png 4.png 5.png 6.png 7.png bg.png column.png gameover.pngground.png start.png 图片在文件中位置:flappybirdsrcimg

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号