📄 class_bullet.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -