操作画面:

按空格开始,按空格向上跳动

可以在control方法里设置birdY后的数字来改变每次空格鸟跳动的高度

 public void control() {System.out.println("hello");//加键盘的监视器,后面就是键盘监视器的类addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e) {System.out.println(e.getKeyCode());if(e.getKeyCode()==32) {birdY -= 70;welcom1=false;start=true;}else if(e.getKeyCode()==82){start=false;welcom1=true;show=false;FlappyBird c=new FlappyBird();mainWindows();}}});}

完整代码:

package zuoye;import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random;public class FlappyBird extends JFrame {public void init() {control();mainWindows();}int score=0;boolean start=false;boolean welcom1=true;public void crash(){//碰撞检测if(birdRectangle.intersects(di)||birdRectangle.intersects(shang1)||birdRectangle.intersects(shang2)||birdRectangle.intersects(xia1)||birdRectangle.intersects(xia2)){System.out.println("游戏结束");start=false;show=true;}}//g起到的是一个画笔的作用public void paint(Graphics g) {//在原来的图上在画图,也就是父类paintsuper.paint(g);drawBackGrround(g);drawmoveGround(g);bird(g);addpipe(g);crash();End(g);text(g);welcom(g);}public void welcom( Graphics g){Image wel=new ImageIcon("image/text_ready.png").getImage();Image sta=new ImageIcon("image/button_play.png").getImage();if (welcom1==true) {g.drawImage(wel,30,250,450,100,null);g.drawImage(sta,150,350,200,100,null);}}Image[] pics=new Image[10];public void text(Graphics g){for(int i=0;i<=9;i++) {pics[i] =new ImageIcon(("image/number_score_0"+i+".png")).getImage();}int qian=score/1000;int bai=score%1000/100;int shi=score%100/10;int ge=0;g.drawImage(pics[qian],400,40,null);g.drawImage(pics[bai],420,40,null);g.drawImage(pics[shi],440,40,null);g.drawImage(pics[ge],460,40,null);}boolean show=false;public void End(Graphics g){Image end=new ImageIcon("image/text_game_over.png").getImage();if (show){g.drawImage(end,30,300,450,100,null);}}int moveleft = 0;Random b2=new Random(System.currentTimeMillis()); int z2=b2.nextInt(10);public void drawBackGrround(Graphics g) {Image bg = new ImageIcon("image/bg_night.png").getImage();Image bg2 = new ImageIcon("image/bg_day.png").getImage();if (z2%2==0){g.drawImage(bg, moveleft, 0, 500, 700, null);g.drawImage(bg, 500 + moveleft, 0, 500, 700, null);}else{g.drawImage(bg2, moveleft, 0, 500, 700, null);g.drawImage(bg2, 500 + moveleft, 0, 500, 700, null);}moveleft -= 10;if (moveleft == -500)moveleft = 0;}Rectangle di;public void drawmoveGround(Graphics g) {Image ground = new ImageIcon("image/land.png").getImage();g.drawImage(ground, moveleft, 550, 500, 150, null);g.drawImage(ground, 500 + moveleft, 550, 500, 150, null);moveleft -= 10;if (moveleft == -500)moveleft = 0;di = new Rectangle(0,550,ground.getWidth(null),ground.getHeight(null));}Random b1=new Random(System.currentTimeMillis());final int z1=b1.nextInt(10);int i = 0;int birdY = 350;Rectangle birdRectangle;public void bird(Graphics g) {if (z1%2==0){Image bird = new ImageIcon("image/bird1_" + i + ".png").getImage();g.drawImage(bird, 140, birdY, 70, 70, null);i++;if (i == 3)i = 0;birdY += 25;birdRectangle = new Rectangle(140,birdY,bird.getWidth(null),bird.getHeight(null));}else{Image bird = new ImageIcon("image/bird0_" + i + ".png").getImage();g.drawImage(bird, 140, birdY, 70, 70, null);i++;if (i == 3)i = 0;birdY += 25;birdRectangle = new Rectangle(140,birdY,bird.getWidth(null)-5,bird.getHeight(null)-10);}}public void mainWindows() {setBounds(500, 200, 500, 700);setTitle("鸟");//关闭窗口的时候可以exitsetDefaultCloseOperation(EXIT_ON_CLOSE);setResizable(false);setVisible(true);while (true) {if (start)repaint();try {Thread.sleep(150);} catch (InterruptedException e) {System.out.println();}}}int pipeX1=400;//h1是下边的管道的高度int h1=100;//h2是上边的管道的高度int h2=200;int h3;int h4;int y1=550-h1;int y4=550-h4;int pipeX2=700;Rectangle shang1;Rectangle shang2;Rectangle xia1;Rectangle xia2;public void pipes(Graphics g) {Image pipeDown = new ImageIcon("image/pipe_down.png").getImage();Image pipeUp = new ImageIcon("image/pipe_up.png").getImage();Image pipeDown2 = new ImageIcon("image/pipe_down.png").getImage();Image pipeUp2 = new ImageIcon("image/pipe_up.png").getImage();g.drawImage(pipeDown, pipeX1, 0,70,h2,this);g.drawImage(pipeUp, pipeX1, y1, 70,h1,this);g.drawImage(pipeDown2, pipeX2, 0,70,h3,this);g.drawImage(pipeUp2, pipeX2, y4, 70,h4,this);pipeX1-=30;pipeX2-=30;shang1=new Rectangle(pipeX1,0,pipeDown.getWidth(null),h2);shang2=new Rectangle(pipeX2,0,pipeDown2.getWidth(null),h3);xia1=new Rectangle(pipeX1,y1,pipeUp.getWidth(null)-5,h1);xia2=new Rectangle(pipeX2,y4,pipeUp.getWidth(null)-5,h4);}int flag1=0;public void addpipe(Graphics g){pipes(g);int n1=0,n2=0;if(pipeX1<=200&&flag1==0) {Random r1=new Random();Random r2=new Random();while((n1+n2)<350||(n1+n2)>400||n1<100||n2<100){n1=r1.nextInt(290)+30;n2=r2.nextInt(290)+30;}h3=n1;h4=n2;y4=550-h4;n1=0;n2=0;score+=10;flag1=1;}if(pipeX1<-50){pipeX1=500;flag1=0;}
//        if (pipeX1<50)
//            pipeX1=pipeX2+400;if(pipeX2<=200&&flag1==0) {Random r1=new Random();Random r2=new Random();while((n1+n2)<350||(n1+n2)>400||n1<100||n2<100){n1=r1.nextInt(290)+30;n2=r2.nextInt(290)+30;}h1=n1;h2=n2;y1=550-h1;n1=0;n2=0;score+=10;flag1=1;}if (pipeX2<-50){pipeX2=500;flag1=0;}
//        if (pipeX2<50)
//            pipeX1=pipeX2+400;}public void control() {System.out.println("hello");//加键盘的监视器,后面就是键盘监视器的类addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e) {System.out.println(e.getKeyCode());if(e.getKeyCode()==32) {birdY -= 70;welcom1=false;start=true;}else if(e.getKeyCode()==82){start=false;welcom1=true;show=false;FlappyBird c=new FlappyBird();mainWindows();}}});}public static void main(String[] args) {new FlappyBird().init();}}

图片素材:

链接:https://pan.baidu.com/s/1Dg2_mp9YQUSJW7as1IFgyA?pwd=0000 
提取码:0000

图片包建在项目地下,src之外

可以更改bird方法下的birdY+=之后的数字来更改鸟的下落速度

同理可更改pipe方法下的

pipeX1-=30;
pipeX2-=30;

之后的数字来更改管道的移动数字

java 小游戏Flappy bird的源码以及图片素材相关推荐

  1. java小游戏------Flappy Bird(飞翔的小鸟含源码)

    前言:本小游戏可作为java入门阶段收尾创作. 需:掌握面向对象的使用,了解多线程和异常处理等知识. 如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面. 一:思路解析: ...

  2. 10款Java小游戏(详解+源码)

    开源Java小游戏 前言 下面就给大家介绍十几个开源的Java小游戏,供大家学习交流.资源都下载好共享到我的交流群了,需要的在群内自取853665602不收取任何资源费,毕竟开源才是我们的宗旨. [群 ...

  3. 编程语言用 Java 开发一个打飞机小游戏(附完整源码)

    编程语言用 Java 开发一个打飞机小游戏(附完整源码) 上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过 ...

  4. “限时分享“ 本地80个小游戏 HTML+CSS+JS源码分享

    开源项目集合 1. "限时分享" 本地80个小游戏 HTML+CSS+JS源码分享 2. "限时分享" 别错过了,最全的微信小程序源码收集分享 里面有80款小游 ...

  5. c++编写手机小游戏代码_经典小游戏大集合(C++ 源码)

    [实例简介] 五子棋 贪吃蛇 俄罗斯方块 黑白棋 连连看 推箱子 扫雷等7个小游戏 C++源码 VC6.0 下编译运行. [实例截图] [核心代码] 经典小游戏大集合(C源码) └── 经典小游戏大集 ...

  6. 计算机毕业设计Java小动物领养网站(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java小动物领养网站(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java小动物领养网站(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 开 ...

  7. 打砖块小游戏php程序,javascript实现打砖块小游戏(附完整源码)

    小时候玩一天的打砖块小游戏,附完整源码 在?给个赞? 实现如图 需求分析 1.小球在触碰到大盒子上.左.右边框,以及滑块后沿另一方向反弹,在碰到底边框后游戏结束: 2.小球在触碰到方块之后,方块消失: ...

  8. 连连看(源码及图片素材)

    @连连看(源码及图片素材) 连连看(源码及图片素材) 首先声明一下,我不是计算机专业的人,这是我大二上程设课的大作业,第一次做游戏,当时会的东西不多很焦虑,不知道该怎么开始第一步.开始前搜了很多东西, ...

  9. 【新手上路】Java必备小游戏——Flappy Bird(飞翔的小鸟)

    <飞翔的小鸟>是一款曾经比较火热的小游戏,本文可以带你你从零开始,一步一步的开发出这款小游戏.如果你只是刚入门java的新手,不用担心,只要你简单掌握了该游戏所需要的javase基础知识, ...

  10. 天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

最新文章

  1. 将pdf转为html,使用pdfdom将pdf转为html
  2. 软件项目开发流程RUP上
  3. 用 C 语言开发一门编程语言 — 异常处理
  4. python快速入门 pdf-十分钟快速入门python
  5. 微信QQ聊天记录分析工具-微Q
  6. docker for windows could not read CA certificate【转】
  7. python程序练习题第三章_python核心编程-第三章-习题
  8. 用于计算机安全防护的有,《计算机安全防护》PPT课件.ppt
  9. Mining Precision Interface From Query Logs -- 学习笔记(二)
  10. 2021宿州市地区高考成绩排名查询,2021年宿州市所有的高中排名,宿州市高中高考成绩排名出炉...
  11. linux将txt文件复制为bak,Linux命令:cp (copy)复制文件或目录
  12. mall整合RabbitMQ实现延迟消息
  13. matlab计算macd_[原创]基于MATLAB的一个简单的交易策略(基于MACD)的Matlab代码
  14. 蚂蚁金服发布眼纹识别技术,背后的原理是怎样的?
  15. 语音识别的准确率,永远达不到100%?
  16. Python搭建投票分类器模型来进行机器学习实验
  17. angular源码分析 摘抄 王大鹏 博客 directive指令及系列
  18. 【微信小程序模板直接套用】微信小程序制作模板套用平台
  19. 练习1:根据老师代码,完成奥运五环的绘图程序
  20. 《Hands-On Machine Learning with Scikit-Learn TensorFlow》读书笔记(三):分类

热门文章

  1. 支持非对称命名空间访问的SPDK多路径验证
  2. 详解 git cherry-pick用法
  3. Android 项目中依赖项目、依赖库、依赖module中的jar包(第三方库)
  4. uniapp 跳转外部链接
  5. 灵活易用的液体创可贴,让伤口愈合更快,海氏海诺液体创可贴上手
  6. 刀魔王带你了解创口贴圆辊刀模的应用
  7. 爬取网站使用代理IP
  8. windows如何去除桌面图标箭头
  9. Acm - 隔壁老王买酒问题
  10. cydia java_利用Cydia Substrate进行Android JAVA HOOK