📄 umbrella.java
字号:
package com.lovo.pig.model;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.Random;
import com.lovo.pig.view.MainFrame;
public class Umbrella{
private MainFrame mf;
//用于控制伞出现位置
Random rand=new Random();
//伞位置
private int x,y = 0;
//奖品位置
private int y2 = y + 60;
private boolean visible = true;//伞可见性
public boolean awardHitted = false;//是否击中奖品
public Umbrella(MainFrame mf){
this.mf = mf;
this.x=rand.nextInt(500);//伞出现位置
}
/**
* 绘制伞和奖品
* @param g
*/
public void draw(Graphics g) {
if(visible){//伞可见时绘制伞
g.drawImage(mf.images.getImgUmbrella(), x,y,null);
if(y2 <= 627){//奖品未越界时绘制奖品
g.drawImage(mf.images.getImgAward(), x + 20,y2,null);
}
}
if(awardHitted){//奖品被击中时迅速下落
y2 +=20;
}else{//否则与伞同速度下落
y2 = y + 60;
}
move() ;
}
/**
*伞下降
*/
public void move() {
if(rand.nextInt(10) > 5){
//实现简单的漂移效果,左移右移概率差不多,凑合着用
x+=2;
}else{
x -=2;
}
y+=5;
if(y > 600){//越界时清除对象
visible = false;
mf.umbrellas.remove(this);
}
}
/**
* 返回奖品(而不是伞)的矩形,用于碰撞检测
* @return
*/
public Rectangle getRect(){
Rectangle rect = new Rectangle(x + 40,y + 80,30,30);
return rect;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -