class_bullet.java

来自「05年游戏学院一个学生写的项目」· Java 代码 · 共 71 行

JAVA
71 行
字号
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;
// Download by http://www.codefans.net
public class Class_Bullet extends Class_GameObject
{
	MIDlet_Main mainMIDlet;
	//初始坐标
	short createX,createY;
	//初始角度
	short createAngle;
	//初始速度
	short createV;
	//飞行时间
	short flyTime;
	short damage;
	
	public Class_Bullet(Image img,byte width, byte height) 
	{
		super(img, width, height);
	}
	
	
	public void setMove(Class_Tank ct,LayerManager lm)
	{
		if(isVisible())
		{
			//飞行时间开始记数
			flyTime++;
			short refPixelX,refPixelY;
			//根据坦克朝向、初始坐标、初始速度、初始角度、飞行时间来计算子弹坐标
			if(!ct.isTowardsRight)
			{
				refPixelX=(short) (createX+((-1)*createV*flyTime*cos[createAngle/3]/100000));
				refPixelY=(short) (createY+((-1)*createV*flyTime*sin[createAngle/3]/100000+35*flyTime*flyTime/100));
			}else
			{
				refPixelX=(short) (createX+(createV*flyTime*cos[createAngle/3]/100000));
				refPixelY=(short) (createY+((-1)*createV*flyTime*sin[createAngle/3]/100000+35*flyTime*flyTime/100));
			}
			setRefPixelPosition(refPixelX,refPixelY);
			
			//如果子弹超出地图范围(上界除外),则删除子弹,并结束该回合
			if(getX()<-getWidth()||getX()>Class_Map.width||getY()>Class_Map.height)
			{
				delete(lm);
				Canvas_Main.isTurnChange=true;
			}
			System.gc();
		}
	}
	
	//回合初始化,用于保证下列参数每次进入回合后不受上一回合的影响
	public void turnInit(Class_Tank ct)
	{
		flyTime=0;
		createAngle=(short) ct.aimAngle;
		createV=(short) ct.chargeV;
		
		if(!ct.isTowardsRight)
		{
			createX=(short) ct.getX();
			createY=(short) ct.getY();
		}else
		{
			createX=(short) (ct.getX()+ct.getWidth());
			createY=(short) ct.getY();
		}
	}
	
	
}

⌨️ 快捷键说明

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