做设计网站模块的网站,新媒体营销实训报告总结,软件商店怎么下载,南昌企业网站模板建站文章目录 一、需求分析二、技术介绍2.1相关技术2.2开发环境 三、功能实现1、开始2、运动3、死亡 四、部分代码实现获取源码 文章最下方获取源码#xff01;#xff01;#xff01; 文章最下方获取源码#xff01;#xff01;#xff01; 文章最下方获取源码#xff01; 文章最下方获取源码 文章最下方获取源码 一、需求分析 1、实现界面设计 2、实现小鸟的运动以及动态展示 3、实现障碍物背景图的变化 4、绕过障碍物加分触碰到障碍物时死亡 二、技术介绍
2.1相关技术
Java Swing
2.2开发环境
idea
三、功能实现
1、开始 2、运动 3、死亡 四、部分代码实现
Bird.java
package game;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;/*** 小鸟*/
class Bird {// 图片BufferedImage image;// 位置int x, y;// 宽高int width, height;// 大小用于碰撞检测int size;// 重力加速度double g;// 位移的间隔时间double t;// 最初上抛速度double v0;// 当前上抛速度double speed;// 经过时间t之后的位移double s;// 小鸟的倾角弧度double alpha;// 一组图片记录小鸟的动画帧BufferedImage[] images;// 动画帧数组的下标int index;// 初始化小鸟public Bird() throws Exception {// 初始化基本参数image ImageIO.read(getClass().getResource(/resources/0.png));width image.getWidth();height image.getHeight();x 132;y 280;size 40;// 初始化位移参数g 4;v0 20;t 0.25;speed v0;s 0;alpha 0;// 初始化动画帧参数images new BufferedImage[8];for (int i 0; i 8; i) {images[i] ImageIO.read(getClass().getResource(/resources/ i .png));}index 0;}// 飞行动作变化一帧public void fly() {index;image images[(index / 12) % 8];}// 移动一步public void step() {double v0 speed;// 计算上抛运动位移s v0 * t g * t * t / 2;// 计算鸟的坐标位置y y - (int) s;// 计算下次移动速度double v v0 - g * t;speed v;// 计算倾角反正切函数alpha Math.atan(s / 8);}// 向上飞行public void flappy() {// 重置速度speed v0;}// 检测小鸟是否碰撞到地面public boolean hit(Ground ground) {boolean hit y size / 2 ground.y;if (hit) {y ground.y - size / 2;alpha -3.14159265358979323 / 2;}return hit;}// 检测小鸟是否撞到柱子public boolean hit(Column column) {// 先检测是否在柱子的范围内if (x column.x - column.width / 2 - size / 2 x column.x column.width / 2 size / 2) {// 再检测是否在柱子的缝隙中if (y column.y - column.gap / 2 size / 2 y column.y column.gap / 2 - size / 2) {return false;}return true;}return false;}
}
main
/*** 启动方法*/public static void main(String[] args) throws Exception {JFrame frame new JFrame();BirdGame game new BirdGame();frame.add(game);frame.setSize(440, 670);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);game.action();}
获取源码
我的微信 欢迎添加微信互相交流学习哦