Найти - Пользователи
Полная версия: Имитация полёта пули 2d
Начало » Python для новичков » Имитация полёта пули 2d
1
Master_Sergius
Тема проезженная вроде бы, но что-то никак не могу нагуглить (
Имеется игрок с координатами playerx, playery и цель (то есть те координаты, где кликнули мышкой) targetx, targety

И нужно, чтобы пуля плавно и чётко прошла от игрока к цели.
Вот, что мне удалось своими силами:

        angle = math.atan(float((playery - targety)) / (targetx - playerx))
        self._dirx = int(round(BULLETSPEED * math.cos(angle)))
        self._diry = -int(round(BULLETSPEED * math.sin(angle)))

dirx, diry - это направление пули по осям
Естественно, оно “кострубатое”, да к тому же в некоторых “зонах” пуля летит прямо в обратную сторону.
Помогите, кто чем может )
Lexander
Читали?
http://sch119comp4.narod.ru/034.htm
Master_Sergius
В том то и дело, что не совсем это. А как в игре crimsonland, например. Тобишь игрок перемещается по экрану и пули может выпускать на все стороны, они должны плавно по данным направлениям лететь
Master_Sergius
Я нашел в чём прикол. Тут надо, блин, знаки расставлять руками, обрастает на пару ифов. Но вот, пришло ещё прозрение: а что если это сделать как-то так:
        self._dirx = int(round((targetx - playerx)/SPEED_KOEFFICIENT)))
        self._diry = -int(round((targety - playery)/SPEED_KOEFFICIENT)))

Только ещё не придумал, как правильно высчитать этот коэффициэнт, ибо ж расстояния-то разные…
FishHook
Бред какой-то
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB