|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.03.2013, 23:24 | #1 |
Регистрация: 06.09.2012
Сообщений: 4
|
Нажатие клавиш OpenGL (c++)
Я написал каркас к игре: красный квадрат разъезжает по зелёному полю и стреляет синими точками. Так вот, проблема в том, что квадрат может ехать вперёд направо и одновременно стрелять. Если же квадрат едет вперёд налево, то он не реагирует на выстрел, т. е. либо кружиться налево и стрелять либо вперёд и налево. Аналогичная ситуация с задним ходом. Назад налево и стрелять - пожалуйста, а назад направо и стрелять - нет. Никак не могу найти, в чём подвох. Свой индусский код выкладываю архивом, ибо он состоит из 10 частей.
Так же выкладываю саму игру. |
15.03.2013, 16:54 | #2 |
Регистрация: 03.12.2012
Сообщений: 9
|
Щас посмотрю ради интереса, хотя и не особо шарю )
Но смахивает на то, что в логике твоих "танчиков" ошибки есть. |
15.03.2013, 17:01 | #3 |
Регистрация: 03.12.2012
Сообщений: 9
|
Щас по мере буду отписывать, а то на работе делать стало нечего ))
(как бы не влетело) У тебя display - функция - вызывается раз в сколько-то времени. И в ней каждый раз создается новый painter - уже странно |
15.03.2013, 17:09 | #4 |
Регистрация: 03.12.2012
Сообщений: 9
|
void Bullet::tick()
{ x += 10 * sin(angle); y += 10 * cos(angle); } Этим чего добивался, вообще непонятно ) |
15.03.2013, 17:20 | #5 |
Регистрация: 03.12.2012
Сообщений: 9
|
Программа кстати не стала твоя запускаться - нет dll-ки какой-то.
Но код вообще очень странный. Попробуй еще раз чтоле с нуля все перепиши. Подумай как следует, что такое танк, пуля. Как они себя ведут (должны вести). Ну x = 10 * cos(чего-то) - это она должна туда-сюда метаться, причем самым странным образом. (если я правильно вообще задумку понял) Наверное, координаты пули должны от координат танка зависеть изначально, а дальше уже сами по-себе меняться по определенному закону. Т.е. там должно быть что-то типа x += const, y += const. А как выходит за пределы экрана - уничтожай объект. Короче, не ленись продумать как следует. Успехов. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нажатие клавиш C++ | Noyabr | Помощь студентам | 0 | 07.04.2012 12:54 |
Нажатие клавиш | cargo29 | Общие вопросы Delphi | 9 | 12.03.2011 11:08 |
Нажатие клавиш | свр | Общие вопросы по Java, Java SE, Kotlin | 2 | 26.09.2010 18:58 |
Нажатие клавиш | VanDerKeen | Win Api | 1 | 03.06.2007 21:13 |