Стрельба в указанном направлении
|
|
MrIncrof | Дата: Пятница, 02 Сентября 2011, 13:53 | Сообщение # 1 |
Lite Programmer
Сейчас нет на сайте
| У меня вопрос, как сделать так, чтобы при нажатии ЛКМ создавался объект пули и летел к координатам мыши (двиг HGE) X, Y координаты мыши: MouseX, MouseY Объект пули: oBul Текстура пули: sBul ЗС +Репа
Сообщение отредактировал 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, вы бы всё это по английски написали, мне не хочется гадать что вы написали
|
|
| |
SanAV | Дата: Пятница, 02 Сентября 2011, 17:02 | Сообщение # 9 |
Alex Versus
Сейчас нет на сайте
| 4aBo, по вашему, создание пули и простейший полет пули может отличать в плафтормере и, как я понимаю, TDS? В моей TDS на этом же движке используется точно такой же код, как в вышеуказанной игре.
My Games: · [2D, TDS] Death Embrace.
|
|
| |