📄 ai_bullet.java~43~
字号:
package aibullet;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.lang.Math.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class AI_Bullet extends Sprite
{
private Image bullet_img;
private int bullet_size_W;
private int bullet_size_H;
private static final int bulletDefaultSpeed=5;
private int trgX;
private int trgY;
private int bullet_Xpos;
private int bullet_Ypos;
private double XdirectionSpeed;
private double YdirectionSpeed;
private boolean isFired=false;
public void setBulletAlive(boolean status)
{
isFired=status;
}
public void setBulletPos(int bullet_Xpos,int bullet_Ypos)
{
this.bullet_Xpos =bullet_Xpos;
this.bullet_Ypos=bullet_Ypos;
this.setPosition(bullet_Xpos,bullet_Ypos);
}
public AI_Bullet(Image bullet_img,int w,int h)
{
super(bullet_img, w, h);
bullet_img = bullet_img;
bullet_size_W = w;
bullet_size_H = h;
}
/* private void getTargetPos(Plane targetPlane)
{
trgX=targetPlane.getPosX();
trgY=targetPlane.getPoxY();
}*/
public void AutoSearchTrg(Plane targetPlane)
{
if(isFired==true)
{
trgX = targetPlane.getPosX();
trgY = targetPlane.getPoxY();
double fromTarDistance = 0;
//计算子弹与我机的距离
int tempX = trgX - bullet_Xpos;
System.out.println("x距离" + tempX);
int tempY = trgY - bullet_Ypos;
fromTarDistance = Math.sqrt(tempX * tempX + tempY * tempY);
//计算出子弹速度的方向向量。
XdirectionSpeed = tempX / fromTarDistance; //单位方向向量中的X
YdirectionSpeed = tempY / fromTarDistance; //单位方向向量中的Y
bullet_Xpos = (int) (bullet_Xpos +
bulletDefaultSpeed * XdirectionSpeed);
bullet_Ypos = (int) (bullet_Ypos +
bulletDefaultSpeed * YdirectionSpeed);
setPosition(bullet_Xpos, bullet_Ypos);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -