java游戏中的子弹实现

时间:2016-03-15 16:09:02

标签: java

我有一个java游戏,我想制作一种射击形式,以不同的角度生成三颗子弹。拍摄的一个例子可能是这样的:

 *   *
   * 
 ship

*表示子弹。我有一个实现,以一定的速度在船前生成一颗子弹。怎么可能产生另外两个子弹,就像上面非常糟糕的图表一样。

以下是我如何在船前面制造子弹:

 public void mkCannonball(){

    Vector2D shipPos = new Vector2D(direction);
    shipPos.normalise().mult(this.radius +2).add(position);
    Vector2D bulletTrajectory = new Vector2D(direction);
    bulletTrajectory.normalise().mult(Constants.BULLET_SPEED).add(velocity);
    cannonball = new Cannonball(new Vector2D(shipPos), new Vector2D(bulletTrajectory));
    SoundManager.fire();
}

1 个答案:

答案 0 :(得分:1)

我可能会沿着这些方向做点什么......

>>> appaul = ((-1 * b) + sqrt((b ** 2) - (4 * a * c))) / 2
>>> print appaul
-0.725082782365

基本上只需创建两个带有修改方向的轨迹(左和右)。然后使用这些轨迹创建两个炮弹。

我认为诀窍是要弄清楚如何左右两度修改矢量方向。在上面的代码中,我只使用了+和 - 1。