Четверг, 18 Апреля 2024, 04:22

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Стрельба в указанном направлении
Стрельба в указанном направлении
MrIncrofДата: Пятница, 02 Сентября 2011, 13:53 | Сообщение # 1
Lite Programmer
Сейчас нет на сайте
У меня вопрос, как сделать так, чтобы при нажатии ЛКМ создавался объект пули и летел к координатам мыши (двиг HGE)
X, Y координаты мыши: MouseX, MouseY
Объект пули: oBul
Текстура пули: sBul
ЗС biggrin +Репа


Сообщение отредактировал 4aBo - Пятница, 02 Сентября 2011, 13:53
SanAVДата: Пятница, 02 Сентября 2011, 14:00 | Сообщение # 2
Alex Versus
Сейчас нет на сайте
4aBo, напиши классу пули и исползуй динамический массив. В чем проблема?

My Games:
· [2D, TDS] Death Embrace.
SanAVДата: Пятница, 02 Сентября 2011, 14:02 | Сообщение # 3
Alex Versus
Сейчас нет на сайте
А вообще, зашел бы ты сюда, скачал бы исходник и выдернул стрельбу от туда. Сделано костыльно, но работает хорошо.

My Games:
· [2D, TDS] Death Embrace.
zodiakДата: Пятница, 02 Сентября 2011, 14:20 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Минусишь от координат мыши координаты стрелка - получаешь вектор направления. Нормализуешь вектор. Создаешь в координатах стрелка пулю. В цикле прибавляешь к координатам пули вектор направления и пуля летит куда надо.
Чтобы пуля летела быстрее вводишь коэффициент ускорения, на который будешь умножать вектор направления.
Если чето непонятно, кури векторную алгебру.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
noTformaTДата: Пятница, 02 Сентября 2011, 14:46 | Сообщение # 5
Ukrainian independent game developer
Сейчас нет на сайте
позиция пули по оси х += Синус(угол до курсора)
позиция пули по оси y += Косинус(угол до курсора)

угол до курсора = Атан2(расстояние по оси у, расстояние по оси х)

еще есть простой способ - верктор. Находишь расстояние по оси х и у, нормализуешь.


@noTformaT
zodiakДата: Пятница, 02 Сентября 2011, 14:56 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Quote (noTformaT)
позиция пули по оси х += Синус(угол до курсора) позиция пули по оси y += Косинус(угол до курсора) угол до курсора = Атан2(расстояние по оси у, расстояние по оси х)


А потом сидишь и думаешь, почему при стрельбе очередями игра жутко тормозит)
Я конечно преувеличиваю, но векторами все равно и проще и быстрее.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
noTformaTДата: Пятница, 02 Сентября 2011, 15:01 | Сообщение # 7
Ukrainian independent game developer
Сейчас нет на сайте
Quote (zodiak)
почему при стрельбе очередями игра жутко тормозит)

ммммм, это был пример самого простого и самого примитивного движения пули, но можно пойти куда более простым путем
http://idea.clan.su/publ/4-1-0-32

Сомневаюсь что нормализация даст значительный прирост.


@noTformaT
MrIncrofДата: Пятница, 02 Сентября 2011, 16:59 | Сообщение # 8
Lite Programmer
Сейчас нет на сайте
SanAV, игра не помогла, там совсем другой жанр
zodiak, noTformaT, вы бы всё это по английски написали, мне не хочется гадать что вы написали dry
SanAVДата: Пятница, 02 Сентября 2011, 17:02 | Сообщение # 9
Alex Versus
Сейчас нет на сайте
4aBo, по вашему, создание пули и простейший полет пули может отличать в плафтормере и, как я понимаю, TDS? В моей TDS на этом же движке используется точно такой же код, как в вышеуказанной игре.

My Games:
· [2D, TDS] Death Embrace.
Форум игроделов » Программирование » C/C++ » Стрельба в указанном направлении
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг