Проблемы с использованием триггера в игре сверху вниз - PullRequest
1 голос
/ 25 декабря 2011

Это довольно маленькая проблема, но она меня немного раздражает.

В основном, чтобы дать немного фона, я сделал небольшой шутер сверху вниз, и игрок поворачивается к мышке.Когда они стреляют, пуля идет под углом, по которому она была выпущена, но вместо того, чтобы исходить из координат игрока, она исходит из пистолета.

Это работает хорошо, но единственная проблема заключается в том, что курсор установлен так, что он находится в координатах мыши.Пуля перемещается «под» курсором, а не прямо через него из-за смещения, подобного этому: enter image description here

Я хочу, чтобы оно выглядело так:потратил около 2 часов, пытаясь найти решение, но лучшее, что я нашел, это

Player p = Client.pList.getPlayerByName(Client.username);
int cursX = (int) (p.getX() + Math.cos(mouseAngle) * Math.abs(mousePos[0] - p.getX()));
int cursY = (int) (p.getY() + Math.sin(mouseAngle) * Math.abs(mousePos[1] - p.getY()));
g.drawLine(cursX - 4, cursY, cursX + 4, cursY);
g.drawLine(cursX, cursY - 4, cursX, cursY + 4);

Буду признателен за любую помощь

1 Ответ

0 голосов
/ 19 марта 2012

Так как вы управляете рисованием курсора, то вы можете просто нарисовать курсор как исходную позицию мыши (не от цели игрока, как вы, кажется, используете) плюс смещение пистолета от центра игрока - тогдаэто появится на линии пули.Для этого не требуется никакой тригонометрии, кроме тех же вычислений, которые вы использовали для определения начальной позиции стреляющей пули.

Другой подход - направить огонь к фактическому положению мыши.Это сложнее, но я разберусь, если тебе интересно.

...