|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2012, 22:10 | #1 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 51
|
Стрельба в 2d игре
В универе задали лабу. Написать сетевую 2д стрелялку.
Немогу точно придумать, как реализовать сам процесс выстрелов. Пока мысль, создать заранее потоков 50 и в каждом отдельно будет лететь снаряд. Подскажите варианты, как еще можно это сделать? з.ы. пишу на чистом win api + opengl. |
22.02.2012, 23:13 | #2 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Ни фига себе в универах что задают, даже не верится. А стоит ли делать снаряд объектом? Не лучше ли упростить и просто расценивать скорость пули запредельно большой? То есть искать пересечения не со снарядом а с траекторией его движения?(луч например)
|
23.02.2012, 00:13 | #3 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 51
|
В принципе можно. Сначала я так и сделал, но мне это не очень нравится. Снарядов не видно. Невозможно уклониться. Я же забыл написать, что стрелялка, это звездолет. Т.е. снизу и сверху экрана двигаются два корабля и стреляют по прямой вниз или вверх. и они не могут пересечь центральную линию. Так что мне остается узнать, как нормально сделать снаряды.
|
23.02.2012, 00:29 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вам нужен список снарядов, при тике таймера меняем их положение и проверяем на коллизии.
и никаких потоков не нужно, а то рассинхронизация будет. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.03.2012, 00:51 | #5 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 51
|
Спасибо за советы по стрельбе.
У меня появился другой вопрос. Чтобы не создавать лишнюю тему, спрошу здесь. OpenGl. есть небольшая моделька. я её перемещаю по экрану с помощью glTranslatef. вращаю с помощью glRotatef. Никак не получается сделать так, чтобы при повороте оси координат, допустим, на 60 градусов, смещение происходило вдоль новой оси X. Делал так: //speed = sqrt(xsp*xsp + ysp*ysp); //получаю общую скорость //xsp = cos(zrotsp)*speed; //преобразую в новую скорость по х и у //ysp = sin(zrotsp)*speed; //zrotsp - текущий угол поворота. Но так что-то не выходит)) Получается ерунда. Просветите, где я не прав. Или как нужно правильно сделать. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Стрельба Игрушка 2D | Anton911 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 20 | 14.10.2011 19:25 |
подредактировать античит к игре игре Nhl 09 (античит написан на дельфи) | Viper18 | Фриланс | 3 | 03.08.2011 17:37 |
Графика (стрельба из пушки по цели) перевести код с Турбопаскаля в Pascal ABC | DANTES68 | Помощь студентам | 0 | 07.04.2011 22:27 |
Движение в игре | Serg-Grin | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 16 | 17.07.2010 14:10 |
OnMouseDown в игре. | Titan123 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 10 | 29.07.2008 13:10 |