⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umbrella.java

📁 BravePiglet.rar 勇敢的猪Java游戏 由本人原创
💻 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 + -