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

织梦修改网站后备份复旦学霸张立勇做的网站

织梦修改网站后备份,复旦学霸张立勇做的网站,哪个网站可以做c语言的题,简洁网站模板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.pierceye.com/news/338436/

相关文章:

  • 东莞建站公司案例全网天下案例wordpress入门教程知乎
  • 网站策划书包含的内容化工设计网站
  • 做网站推广电话网站建设制作免费推广
  • 如何发布网站响应式商城网站
  • 网站建设应用程序开发网站建设的意义以及重要性
  • 网站建设进度说明嘉兴公司制作网站的
  • 山东省建设注册管理网站手机免费网站制作
  • 台州网站制作套餐如何查询网站的主机
  • 毕业设计代做哪个网站好房产中介如何找客源
  • 怎么下载自己做的网站杭州互联网公司排名
  • 做曖視頻网站网站开发设计流程论文
  • 北京移动官网网站建设凡科做的网站好吗
  • 申请网站域名怎么做wordpress金融主题
  • 中国建设银行移动门户网站wordpress 生成html代码
  • dw网站建设框架大小设定广州分销商城开发
  • 网站一年的 运营费用一般企业网站建设合同
  • 九龙坡集团网站建设贵阳网站建设推广
  • 架设网站 自己购买服务器无锡seo网站推广费用
  • 网站关键词长度开平 做一网站
  • 青海制作网站可以网站可以做免费的文案广告
  • 深圳维特网站建设有彩虹代刷源码怎么做网站
  • 有了自己的网站怎样做后台食品建设网站前的市场分析
  • 制作伪装网站微餐饮网站建设
  • 泰州做网站软件哈尔滨网站建设市场分析
  • 手机网站建设口碑好网站的技术建设
  • 论坛类网站备案wordpress分享qq
  • 做化工的在哪个网站做平台好长期做网站应该购买稳定的空间
  • 网站建设 推广找山东博达制作网页难吗
  • 临安网站设计海口h5建站模板
  • 网站建设济南云畅网络技术有限公司厦门最新通告