У меня есть Java-игра, в которой я хочу сделать форму стрельбы, которая порождает три пули под разными углами. Примером выстрела может быть примерно следующее:Выполнение пули в java-игре
* *
*
ship
Где * представляют собой пули. У меня есть реализация, которая порождает одну пулю перед кораблем с определенной скоростью. Как можно было бы создать еще две пули, такие как очень плохая диаграмма выше.
Вот как я на самом деле создать пулю Infront корабля:
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();
}
Просто используйте 'direction' и вращайте его по любому углу, который вам нужен, затем создайте еще один« Cannonball ». Вы также можете вызвать 'mkCannonball' 3 раза и передать угол в качестве параметра, но вы, вероятно, не захотите повторять все вычисления 3 раза, а также воспроизводить звук 3 раза. – Thomas
Btw, я бы предположил, что метки пули и скорости здесь неверны, поскольку они применяются к библиотекам с этими именами. – Thomas