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

📄 penguinsprite.java

📁 本代码为java编写的泡泡龙游戏
💻 JAVA
字号:


import java.awt.*;
import java.util.Random;

//企鹅精灵类
public class PenguinSprite extends Sprite
{	
	public final static int STATE_TURN_LEFT = 0;
	public final static int STATE_TURN_RIGHT = 1;
	public final static int STATE_FIRE = 2;
	public final static int STATE_VOID = 3;
	public final static int STATE_GAME_WON = 4;
	public final static int STATE_GAME_LOST = 5;
	
	public final static int[][] LOST_SEQUENCE = {{1,0}, {2,8}, {3,9}, {4,10}, {5,11}, {6,12}, {7,13}, {5,14}};
	public final static int[][] WON_SEQUENCE = {{1,0}, {2,7}, {3,6}, {4,15}, {5,16}, {6,17}, {7,18}, {4,19}};
	
	private Image spritesImage;
	
	private int currentPenguin, displayedPenguin;
	
	private int count;
	
	private Random rand;
	
	private int finalState;
	private int nextPosition;
	
	public PenguinSprite(Image sprites, Random rand)
	{
		super(new Rectangle(360, 435, 57, 45));
		
		this.spritesImage = sprites;	
		this.rand = rand;
		
		currentPenguin = 0;
		displayedPenguin = -1;		
		
		finalState = STATE_VOID;
		nextPosition = 0;
	}
		
	public void updateState(int state)
	{
		if (finalState != STATE_VOID)
		{
			count++;
			
			if (count % 6 == 0)
			{
				if (finalState == STATE_GAME_LOST)
				{
					currentPenguin = LOST_SEQUENCE[nextPosition][1];
					nextPosition = LOST_SEQUENCE[nextPosition][0];
				}
				else if (finalState == STATE_GAME_WON)
				{
					currentPenguin = WON_SEQUENCE[nextPosition][1];
					nextPosition = WON_SEQUENCE[nextPosition][0];
				}
			}
		}
		else
		{
			count++;
		
			switch(state)
			{
				case STATE_TURN_LEFT :
					count = 0;
					currentPenguin = 3;
					break;
					
				case STATE_TURN_RIGHT :
					count = 0;
					currentPenguin = 2;
					break;
					
				case STATE_FIRE :
					count = 0;
					currentPenguin = 1;
					break;
					
				case STATE_VOID :
					if (currentPenguin<4 || currentPenguin>7)
					{
						currentPenguin = 0;
					}
					break;
					
				case STATE_GAME_WON :
				case STATE_GAME_LOST :
					count = 0;
					finalState = state;
					currentPenguin = 0;
					return;
			}

			if (count>100)
			{
				currentPenguin = 7;
			}
			else if (count % 15 == 0 && count>25)
			{
				currentPenguin = (rand.nextInt() % 3)+4;
				if (currentPenguin < 4)
				{
					currentPenguin = 0;
				}
			}
		}
	}
	
	public void paint(Graphics g, GameApplet applet)
	{
			Rectangle r = this.getSpriteArea();
		
			g.setClip(r);
			g.drawImage(spritesImage, 360-(currentPenguin%4)*57, 435-(currentPenguin/4)*45, applet);
			
			displayedPenguin = currentPenguin;
	}	
}

⌨️ 快捷键说明

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