All Downloads are FREE. Search and download functionalities are using the official Maven repository.

game.Food Maven / Gradle / Ivy

package game;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.util.Random;


public class Food {
	
	private GamePanel gameP;
	private Snake snk;
	public Point location;//食物的坐标
	public Point size;//食物方块的尺寸
	private Random rand;//随机类对象
	

	public Food(GamePanel gp,Snake sk){
		gameP=gp;//通过构造方法的参数来获取对GamePanel对象的引用
		snk=sk;//通过构造方法的参数来获取对Snake对象的引用
		rand=new Random();
		//食物随机的出现在屏幕上某个位置
		location=new Point(Math.abs(rand.nextInt(gp.getWidth())%gameP.getWidth()),Math.abs(rand.nextInt(gp.getHeight())%gameP.getHeight()));
		size=new Point(sk.r,sk.r);//食物尺寸与贪吃蛇小球大小相同
	}
	
	public void draw(Graphics g){//绘制食物图形
		g.setColor(Color.PINK);//设置食物颜色
		g.fillRect(location.x, location.y, size.x, size.y);//绘制食物
	}
	
	public void update(GamePanel gp){//更新游戏逻辑(食物坐标)
		//碰撞检测(中心检测法),判断贪吃蛇是否吃到了食物
		if((snk.x-location.x)*(snk.x-location.x)+(snk.y-location.y)*(snk.y-location.y)<(snk.r*snk.r)){
			//若贪吃蛇的蛇头与食物发生碰撞,则随机生成新的食物位置
			location=new Point(Math.abs(rand.nextInt(gp.getWidth())%gameP.getWidth()),Math.abs(rand.nextInt(gp.getHeight())%gameP.getHeight()));
			if(snk.length




© 2015 - 2025 Weber Informatics LLC | Privacy Policy