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

📄 snakefood.java

📁 一个小游戏 贪吃蛇 很好玩 大家下来
💻 JAVA
字号:
package com.fengbo;

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


/**
 * 详细说明了蛇食的生命和位置的控制方法
 * @author fengbo
 *
 */
public class SnakeFood {
	//蛇食物的大小
	private int FOOD_WIDTH = 20;
	private int FOOD_HEIGHT = 20;
	
	private Random r = new Random();
	
	SnakeGame sg;
	
	int x, y;
	public SnakeFood(int x, int y, SnakeGame sg) {
		this.x = x;
		this.y = y;
		this.sg = sg;
		
	}
	
	//画出蛇食物
	public void darw(Graphics g) {
		
		Color c = g.getColor();
		g.setColor(Color.BLUE);
		g.fillOval(x, y, FOOD_WIDTH, FOOD_HEIGHT);
		g.setColor(c);
		
	}
	
	//拿到蛇食物占有的区域大小
	public Rectangle getRec() {
		return new Rectangle(x, y, FOOD_WIDTH, FOOD_HEIGHT);
	}
	
	/**
	 * 介绍了贪吃蛇撞上食物后的处理
	 * @param sf 是蛇头
	 * @return 若相撞返回true,否则返回false
	 */
	public boolean hitSnake(Snake sf) {
		if(this.getRec().intersects(sf.getRecFirst())) {						
			sg.foods.remove(this);
			sg.snake.eatFood();
			
			int x = r.nextInt(sg.GAME_WIDTH );
			int y = r.nextInt(sg.GAME_HEIGHT);
			
			/*
			 * 解决SnakeFood出界问题
			 */
			if(x <= 0) {
				x = sg.GAME_WIDTH - sf.SNAKE_WIDTH;
			}
			if(x >= (sg.GAME_WIDTH - sf.SNAKE_WIDTH)) {
				x = sf.SNAKE_WIDTH;
			}
			if(y <= 50) {
				y = sg.GAME_HEIGHT - sf.SNAKE_HEIGHT;
			}
			if(y > sg.GAME_HEIGHT - sf.SNAKE_HEIGHT) {
				y = sf.SNAKE_HEIGHT + 50;
			}
//打印出蛇位的位置			
System.out.println(x + " " + y);			
			SnakeFood m = new SnakeFood(x, y, sg);
			sg.foods.add(m);
			return true;
		}
		return false;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -