这个是B站30天学会JAVA课程的后续,从零基础开始讲解,到JavaWeb与前端技术,再到主流框架与分布式微服务架构,由浅入深系统掌握java工程师知识。最后落地微服务实战项目与高并发秒杀项目带你全面掌握java技术栈,提升项目开发与技术应用能力。
download: https://dbbp.net/11885.html
package bird;
import org.omg.CORBA.IMP_LIMIT;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
public class Brid {
int x,y;
int width,height;
int size;//鸟的大小,用于检测碰撞
BufferedImage image;
BufferedImage[] images;
int index;
double g; //重力加速度
double t; //两次位置的时间间隔
double v0; //初始上抛的速度
double speed; //当前上抛的速度
double s; //经过时间t以后的位移
double alpha; //鸟的倾角,单位是弧度
public Brid() throws Exception {
image = ImageIO.read(getClass().getResource("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(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.1415926/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;
}
}