package game;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
/**
* 小鸟
*/
public 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];
images[0] =ImageIO.read(getClass().getResource("/resources/0.png"));
images[1] =ImageIO.read(getClass().getResource("/resources/1.png"));
images[2] =ImageIO.read(getClass().getResource("/resources/2.png"));
images[3] =ImageIO.read(getClass().getResource("/resources/3.png"));
images[4] =ImageIO.read(getClass().getResource("/resources/4.png"));
images[5] =ImageIO.read(getClass().getResource("/resources/5.png"));
images[6] =ImageIO.read(getClass().getResource("/resources/6.png"));
images[7] =ImageIO.read(getClass().getResource("/resources/7.png"));
// 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;
}
}
最近下载更多
微信网友_7556339099734016 LV3
6月16日
微信网友_6191697646571520 LV6
2022年10月27日
迷迭香 LV10
2022年9月22日
zxy135201 LV5
2022年9月16日
agjbvfhjbg LV6
2022年9月9日
jackzhang123 LV2
2022年9月3日
cuijunjie LV3
2022年7月2日
java代写 LV7
2022年6月4日
Yj1009 LV2
2022年6月2日
牛牛最棒哈哈 LV3
2022年5月31日

最近浏览