当前位置: 首页 > news >正文

漳州网站建设哪家好域名网址

漳州网站建设哪家好,域名网址,广州建立公司网站多少钱,韩国风格网站模板Java实现飞翔的鸟小游戏 1.准备工作 创建一个新的Java项目命名为“飞翔的鸟”#xff0c;并在src中创建一个包命名为“com.qiku.bird#xff0c;在这个包内分别创建4个类命名为**“Bird”、“BirdGame”、“Column”、“Ground”#xff0c;并向需要的图片**素材导入…Java实现飞翔的鸟小游戏 1.准备工作 创建一个新的Java项目命名为“飞翔的鸟”并在src中创建一个包命名为“com.qiku.bird在这个包内分别创建4个类命名为**“Bird”、“BirdGame”、“Column”、“Ground”并向需要的图片**素材导入到包内。 2.代码内容 Bird类 package com.qiku.bird;import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException;/** 小鸟类* */ public class Bird {int x;// 坐标int y;int width; // 宽高int height;BufferedImage image; // 图片BufferedImage[] images; // 小鸟所有图片public Bird() {// 初始化数组 保存八张图片images new BufferedImage[8];// 使用循环结构 将小鸟所有图片 存入数组for (int i 0; i images.length; i) {try {images[i] ImageIO.read(Bird.class.getResourceAsStream(i .png));} catch (IOException e) {e.printStackTrace();}}image BirdGame.bird_image;width image.getWidth();height image.getHeight();x 120;y 240;}// 小鸟飞翔的方法int index 0;public void fly() {image images[index % images.length];index;}// h v * t g * t * t / 2int g 6; //重力加速度double t 0.15; // 下落时间double v 0; // 初速度double h 0; // 下落距离//小鸟下落一次public void down() {h v * t g * t * t / 2; // 具体下落的距离v v g * t; // 末速度 当前速度 重力加速度 * 时间y (int) h;}// 小鸟向上飞public void up() {// 给一个 负方向的初速度v -30;}/** 小鸟撞地面* */public boolean hitGround(Ground ground) {boolean isHit this.y this.height ground.y;return isHit;}// 小鸟撞天花板public boolean hitCeiling() {boolean isHit this.y 0;return isHit;}// 小鸟撞柱子public boolean hitColumn(Column c) {boolean b1 this.x this.width c.x;boolean b2 this.x c.x c.width;boolean b3 this.y c.y c.height / 2 - c.gap / 2;boolean b4 this.y this.height c.y c.height / 2 c.gap / 2;// 满足b1 b2表示水平方向 相撞 b1 b2 b3 同时满足 撞上柱子 b1 b2 b4 同时满足撞下柱子return b1 b2 (b3 || b4);}}BirdGame类 package com.qiku.bird; import javax.imageio.ImageIO; import javax.swing.*;import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.io.IOException;/*** 游戏启动类* 使用extends 关键字 继承JPanel 画板类 于是BirdGame 就具备了画板类的功能*/ public class BirdGame extends JPanel {// 定义游戏状态public static final int START 0; // 开始public static final int RUNNING 1; // 运行public static final int GAME_OVER 2; // 结束// 游戏当前状态 默认0 开始状态int state START;int score 0; //玩家得分static BufferedImage bg null; // 背景图片static BufferedImage start null; //开始图片static BufferedImage ground_image null; // 地面static BufferedImage bird_image null; // 小鸟static BufferedImage column_image null; // 柱子static BufferedImage gameOver_image null; // game游戏// 静态代码块 一般用于加载静态资源(视频,音频,图片等)static {// 将本地的图片bg.png读取到程序中的bgtry {bg ImageIO.read(BirdGame.class.getResourceAsStream(bg.png));start ImageIO.read(BirdGame.class.getResourceAsStream(start.png));ground_image ImageIO.read(BirdGame.class.getResourceAsStream(ground.png));column_image ImageIO.read(BirdGame.class.getResourceAsStream(column.png));bird_image ImageIO.read(BirdGame.class.getResourceAsStream(0.png));gameOver_image ImageIO.read(BirdGame.class.getResourceAsStream(gameover.png));} catch (IOException e) {e.printStackTrace();}}Ground ground;//声明地面Bird bird;Column column1;Column column2;// BirdGame 的构造方法public BirdGame() {bird new Bird();ground new Ground();column1 new Column();column2 new Column();// 柱子2的x坐标 柱子1的坐标基础上244保持水平间距column2.x column1.x column1.distance;}/** 用于在画板上绘制内容的方法* 想在画板上显示什么 在这个方法写就行了* param g 画笔* */Overridepublic void paint(Graphics g) {// g.fillRect(0,0,100,200); // 设置颜色落笔点 宽高g.drawImage(bg, 0, 0, null); // 画背景if (state START) {g.drawImage(start, 0, 0, null); // 开始图片}g.drawImage(column1.image, column1.x, column1.y, null); // 画柱子g.drawImage(column2.image, column2.x, column2.y, null); // 画柱子2g.drawImage(bird.image, bird.x, bird.y, null); //小鸟图片g.drawImage(ground.image, ground.x, ground.y, null); // 地面图片if (state GAME_OVER) {g.drawImage(gameOver_image, 0, 0, null); // 结束图片}// 画分数Font font new Font(微软雅黑, Font.BOLD, 25); // 创建字体g.setFont(font); // 给画笔设置字体g.setColor(Color.BLACK); // 设置字体黑色颜色g.drawString(分数: score, 30, 50);g.setColor(Color.WHITE); // 设置字体白色颜色g.drawString(分数: score, 28, 48);}// 判断小鸟与柱子是否相撞 游戏结束public boolean isGameOver() {boolean isHit bird.hitGround(ground) || bird.hitCeiling() || bird.hitColumn(column1) || bird.hitColumn(column2);return isHit;}// 游戏流程控制的方法public void action() throws Exception {frame.addKeyListener(new KeyAdapter() {Overridepublic void keyPressed(KeyEvent e) {System.out.println(e.getKeyCode());if(e.getKeyCode() 32){if (state START) { // 如果是开始状态 单击转换运行state RUNNING;}if (state RUNNING) {bird.up(); //小鸟上升}if (state GAME_OVER) {bird new Bird();column1 new Column();column2 new Column();column2.x column1.x column1.distance;score 0;state START;}}}});// 给当前对象()添加鼠标单击事件this.addMouseListener(new MouseAdapter() {Overridepublic void mouseClicked(MouseEvent e) { // 鼠标单击执行代码if (state START) { // 如果是开始状态 单击转换运行state RUNNING;}if (state RUNNING) {bird.up(); //小鸟上升}if (state GAME_OVER) {bird new Bird();column1 new Column();column2 new Column();column2.x column1.x column1.distance;score 0;state START;}}});// 死循环 {}的代码会一直反复执行while (true) {if (state START) {ground.step(); // 地面移动bird.fly(); // 小鸟飞翔} else if (state RUNNING) {ground.step(); // 地面移动column1.step(); // 柱子1移动column2.step(); // 柱子2移动bird.fly(); // 小鸟飞翔bird.down(); // 小鸟下落if (isGameOver() true) {state GAME_OVER;}// 设置增加分数if (bird.x column1.x column1.width 1 || bird.x column2.x column2.width 1) {score 5;}}repaint(); //重画 即重新执行paint 方法Thread.sleep(10); //每隔10毫秒,让程序休眠一次}}static JFrame frame new JFrame();// main方法 - 程序的入口(即:有main方法 程序才能运行)public static void main(String[] args) throws Exception {BirdGame game new BirdGame(); // 创建画板对象frame.setSize(432, 644);//设置宽高frame.setLocationRelativeTo(null); // 居中显示frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭窗口,同时使程序结束frame.setVisible(true); //设置可见性frame.add(game); // 将画板放到画框上frame.setTitle(飞翔的小鸟);// 设置标题frame.setResizable(false);// 设置不允许玩家拖动界面// 调用actiongame.action();}} Column类 package com.qiku.bird;import java.awt.image.BufferedImage;/** 柱子类* */ public class Column {int x;// 坐标int y;int width; // 宽高int height;BufferedImage image; // 图片int gap; //上下柱子之间的间隙int distance; //水平方向柱子之间的距离int min -(1200 / 2 - 144 / 2);int max 644 - 146 - 144 / 2 - 1200 / 2;public Column() {gap 150;distance 244;image BirdGame.column_image;width image.getWidth();height image.getHeight();x BirdGame.bg.getWidth();y (int) (Math.random() * (max - min) min);}public void step() {x--;if (x -width) {x BirdGame.bg.getWidth();y (int) (Math.random() * (max - min) min);}} } Ground类 package com.qiku.bird;import java.awt.image.BufferedImage;/* * 地面类 * */ public class Ground {int x ;// 地面坐标int y ;int width ; // 地面的宽高int height;BufferedImage image; // 地面图片public Ground(){image BirdGame.ground_image;x 0;y BirdGame.bg.getHeight() - image.getHeight();width image.getWidth();height image.getHeight();}/** 地面走一步的方法* */public void step(){x--;if(x 432 - width){x0;}}}3.运行结果
http://www.w-s-a.com/news/363445/

相关文章:

  • 想象力做网站网站301跳转代码
  • 做暧暧小视频有声音的网站太原网页搜索排名提升
  • 公众号链接的手机网站怎么做动易2006学校网站
  • 网站网上推广网站推他网站
  • 如何进行网站建设分析济宁做企业网站
  • 长沙网站seo技巧wordpress插件头像
  • appserv做网站教程微信信息流广告案例
  • 前端网站开发兼职长春火车站地下停车场收费标准
  • 苏州推广网站建设概况大连公交app
  • 移动互联网站开发与维护招聘网站建设计入什么费用
  • 郑州营销型网站建设erp系统有什么用
  • 公司网站开发费怎么入账投放广告网站
  • 企业网站开发文献综述加盟网网站建设策划书
  • 最便宜的网站空间网站建设和app开发
  • 承装承修承试材料在哪个网站做如何用虚拟主机建设网站
  • 如何建一个外贸网站网页设计零基础学习课程
  • 营销型外贸网站广州昆明建设网站制作
  • 网页制作网站素材项目建设全过程管理
  • 正能量网站下载柬埔寨网赌网站开发
  • 如何免费建设公司网站广州传业建设有限公司网站
  • 织梦做的网站快照被攻击张家口网站建设公司
  • 平顶山公司网站建设南昌网站seo多少钱
  • 网站开发要先买服务器吗建设婚恋网站用什么搭建
  • 我想自己在网站上发文章 怎样做wordpress站点安装
  • 北京模板网站开发全包昆明网站开发正规培训
  • 西咸新区建设环保网站谷歌风格wordpress
  • 嘉兴港区建设局网站2018年网站开发
  • 网站里图片做超链接专业开发网站报价单
  • server2003网站建设做销售记住这十句口诀
  • microsoft免费网站网站后台登陆路径