Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2012, 22:10   #1
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию Стрельба в 2d игре

В универе задали лабу. Написать сетевую 2д стрелялку.

Немогу точно придумать, как реализовать сам процесс выстрелов. Пока мысль, создать заранее потоков 50 и в каждом отдельно будет лететь снаряд.

Подскажите варианты, как еще можно это сделать?

з.ы. пишу на чистом win api + opengl.
ardor вне форума Ответить с цитированием
Старый 22.02.2012, 23:13   #2
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Ни фига себе в универах что задают, даже не верится. А стоит ли делать снаряд объектом? Не лучше ли упростить и просто расценивать скорость пули запредельно большой? То есть искать пересечения не со снарядом а с траекторией его движения?(луч например)
RomiKon вне форума Ответить с цитированием
Старый 23.02.2012, 00:13   #3
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

В принципе можно. Сначала я так и сделал, но мне это не очень нравится. Снарядов не видно. Невозможно уклониться. Я же забыл написать, что стрелялка, это звездолет. Т.е. снизу и сверху экрана двигаются два корабля и стреляют по прямой вниз или вверх. и они не могут пересечь центральную линию. Так что мне остается узнать, как нормально сделать снаряды.
ardor вне форума Ответить с цитированием
Старый 23.02.2012, 00:29   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам нужен список снарядов, при тике таймера меняем их положение и проверяем на коллизии.
и никаких потоков не нужно, а то рассинхронизация будет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.03.2012, 00:51   #5
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

Спасибо за советы по стрельбе.

У меня появился другой вопрос. Чтобы не создавать лишнюю тему, спрошу здесь.

OpenGl. есть небольшая моделька. я её перемещаю по экрану с помощью glTranslatef. вращаю с помощью glRotatef. Никак не получается сделать так, чтобы при повороте оси координат, допустим, на 60 градусов, смещение происходило вдоль новой оси X.

Делал так:

//speed = sqrt(xsp*xsp + ysp*ysp); //получаю общую скорость
//xsp = cos(zrotsp)*speed; //преобразую в новую скорость по х и у
//ysp = sin(zrotsp)*speed; //zrotsp - текущий угол поворота.

Но так что-то не выходит)) Получается ерунда. Просветите, где я не прав. Или как нужно правильно сделать.
ardor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стрельба Игрушка 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