enemybullet3.java

来自「java小型游戏项目文档与源代码,内容详细」· Java 代码 · 共 72 行

JAVA
72
字号
package com.lovo.sprite.bullet;

import java.awt.Image;
import javax.swing.JFrame;
import com.lovo.sprite.plane.PlaneSprite;

/**
 *  <p>敌方子弹2,向屏幕最下面的左下角发射子弹</p>
 * @author mlz
 * @version 1.00 2006/9/25 mlz
 * 
 *
 */
public class EnemyBullet3 extends BulletSprite
{
	/**设置子弹初始化执行一次*/
	boolean	isStepAccount	= true;

	public EnemyBullet3(Image img, PlaneSprite plan)
	{
		super(img, plan);
	}

	/**
	 *  构造器,处理子弹移动
	 */
	public void updateState()
	{
		/**子弹显示时移动*/
		if (this.isVisible())
		{
			/**子弹超出边界时设置隐藏*/
			if (Y > this.frameHeight || X < 0 || X > this.frameWidth)
			{
				this.setVisible(false);
				isStepAccount = true;
			} else
			{
				/**设置子弹飞行的步长,并只设置一次*/
				if (isStepAccount)
				{
					/**设置子弹移动步长VX、VY*/
					try{
					VX = VY * (this.getX() - this.frameWidth / 2)
							/ (this.getY() - this.frameHeight);
					}
					catch(Exception e)
					{
						VX = 0;
					}
					this.setStep(VX, VY);
					isStepAccount = false;
				}
				/**设置子弹的位置*/
				Y = this.getY() + speed * speed * VY;
				X = this.getX() + speed * speed * VX;
			}
		} else
		{
			/**开火时设置子弹显示并初始化其位置*/
			if (plane.isFire() && plane.isVisible())
			{
				this.setVisible(true);
				this
						.setLocation(plane.getX() + plane.getWidth() / 2
								- this.getWidth() / 2, plane.getY()
								+ plane.getHeight());
			}
		}
	}
}

⌨️ 快捷键说明

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