Я пытаюсь реализовать метод стрельбы из пули в направлении мыши. Я не знаю математики или логики для нее. Это 2D-нисходящая игра. У меня пуля стреляет вправо и заканчивается в определенный момент. Мне нужно знать логику стрельбы в направлении положения мыши, а не просто добавление 1 к позиции x.Съемка пули в направлении мыши в Java/Slick2D
0
A
ответ
3
Используйте atan2, чтобы найти угол между началом пули и курсором мыши. Затем используйте Sin и Cos для вычисления скорости x и y пули.
псевдо-код
public void ShootBullet()
{
double bulletVelocity = 1.0; //however fast you want your bullet to travel
//mouseX/Y = current x/y location of the mouse
//originX/Y = x/y location of where the bullet is being shot from
double angle = Math.Atan2(mouseX - originX, mouseY - originY);
double xVelocity = (bulletVelocity) * Math.Cos(angle);
double yVelocity = (bulletVelocity) * Math.Sin(angle);
}
0
Это мой код для нереста снарядов.
public void spawnProjectile(Input input) {
double mouseX = 0;
double mouseY = 0;
double xVel;
double yVel;
double angle;
if (timer > 0) {
timer--;
}
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON)) {
mouseX = input.getMouseX();
mouseY = input.getMouseY();
if (projectiles.size() < 1 && timer <= 0) {
projectiles.add(new Projectile((int) x + 8, (int) y + 8, 8, 8));
}
}
if (projectiles.size() > 0) {
for (int i = 0; i < projectiles.size(); i++) {
projectiles.get(i).update(input);
double originX = x;
double originY = y;
angle = Math.atan2(mouseX - originX, mouseY - originY);
xVel = (bulletVel) * Math.cos(angle);
yVel = (bulletVel) * Math.sin(angle);
projectiles.get(i).x += xVel;
projectiles.get(i).y += yVel;
if (projectiles.get(i).timer == 0) {
projectiles.remove();
}
}
}
}
Смежные вопросы
- 1. Python/Pygame - Съемка пули в направлении, с которым спрайт сталкивается
- 2. Съемка в направлении XY
- 3. Cocos2d: Съемка мяча в направлении щелчка мыши/Touch
- 4. Съемка пули перед игроком C#
- 5. Съемка более чем одной пули
- 6. стрелять пули в направлении игрока Unity
- 7. Как ориентировать мои пули в правильном направлении?
- 8. Пули в списке следятся за движением мыши
- 9. Поверните объект в направлении мыши
- 10. AS3 перемещение в направлении мыши
- 11. Java стрелять в направлении мыши
- 12. Съемка «выстрела» в SpriteKit
- 13. Поверните игрока в направлении мыши - Slick & Java
- 14. Проверьте лицо вверх/вниз в направлении мыши
- 15. Как сделать движение объекта в направлении мыши?
- 16. Перемещение элемента html в направлении указателя мыши
- 17. Обработка - линия в направлении указателя мыши
- 18. Рисование линии в направлении курсора мыши
- 19. Перемещение мыши в направлении и скорости
- 20. Three.js Physijs перемещает сетку в направлении мыши?
- 21. Unity3d вращать стрелку в направлении положения мыши
- 22. Java: Повернуть изображение в направлении мыши?
- 23. прослушиватель движения мыши только в одном направлении
- 24. Изготовление пулевого огня в направлении спрайта
- 25. Съемка пули из точки во вращающемся круге с использованием C# в Unity
- 26. lwjgl/java стрелять в направлении мыши во время движения
- 27. Пулевое обстрел в направлении вращения
- 28. JS - Съемка - мышь
- 29. Съемка в pygame не работает
- 30. Съемка спрайт android
Любовь к простоте вашего ответа lol. Я собираюсь попробовать это rn – Phippre
Это не работает. Он будет стрелять только в пуле в определенном положении, и когда он стреляет в xvel, и yvel будет меняться, если я передвигаю мышь в определенном месте. – Phippre
Isnt Cos и Sin для 2-х сторонних игроков? – Phippre